小编Ber*_*ale的帖子

Ansible - 如果未定义变量,则使用默认值

users在我的角色里面定制了linux 创建.我需要让我的角色的用户自定义home_directory,group_name,name,password.

我想知道是否有更灵活的方法来应对默认值.

我知道下面的代码是可能的:

- name: Create default
  user:
    name: "default_name"
  when: my_variable is not defined

 - name: Create custom
  user:
    name: "{{my_variable}}"
  when: my_variable is defined
Run Code Online (Sandbox Code Playgroud)

但正如我所提到的,有很多可选变量,这会产生很多可能性.

是否有类似上面的代码?

user:
  name: "default_name", "{{my_variable}}"
Run Code Online (Sandbox Code Playgroud)

代码应该name="default_name"my_variable未定义时设置.

我可以设置所有变量defaults/main.yml并创建用户:

- name: Create user
  user:
    name: "{{my_variable}}"
Run Code Online (Sandbox Code Playgroud)

但是这些变量都在一个非常大的哈希中,并且哈希中有一些哈希不能作为默认值.

ansible ansible-2.x

81
推荐指数
6
解决办法
10万
查看次数

Ansible - 在Playbook内部使用过滤器收集事实

我正在研究一个只需要收集一个事实的角色.

性能这是一个问题,我知道收集事实是耗时的.

我正在寻找一些方法来过滤gather_facts剧本,这将允许我只收集所需的事实.

这可以使用安装核心模块:

ansible -m setup -a 'filter=ansible_hostname' my_host

10.200.0.127 | success >> {
    "ansible_facts": {
        "ansible_hostname": "my_host"
    },
    "changed": false
}
Run Code Online (Sandbox Code Playgroud)

在剧本中可以使用这个功能吗?像这样的东西?

- hosts: all
  sudo: yes
  gather_facts: True
    filter: "filter=ansible_*"
Run Code Online (Sandbox Code Playgroud)

PS:上面的代码抛出语法异常.

编辑1:如果有人需要获取主机名,那么还有另一个有用的变量inventory_hostname.

ansible ansible-facts

14
推荐指数
3
解决办法
5万
查看次数

动态创建GWT CellTable

我遇到了GWT CellTable的问题.我需要动态创建celltable,我没有实体(Bean)类这样做.我已经看过了celltable的所有例子,并且在没有实体类的情况下进行了很多搜索.

我需要根据存储在数据库中的一些元数据动态填充表.我能够创建表结构

考虑有两个类,一个是GRID,另一个是COLUMN,用于元数据和列定义.GRID将COLUMNS列表作为列定义

    Class GRID {
List<COLUMN> columns;
}

Class COLUMN {
  String columnName;
}
Run Code Online (Sandbox Code Playgroud)

现在我需要从数据库获取网格并循环列以填充单元格(列),如:

com.google.gwt.user.cellview.client.Column<String, String> textColumn = new Column<String, String>(
                        new EditTextCell()) {
                    @Override
                    public String getValue(String object) {
                        return object;
                    }
                };
Run Code Online (Sandbox Code Playgroud)

现在,我需要向celltable添加一些数据.但没有实体,没有例子如何填充不同的列.我试过自己的样子:( 考虑网格有3列)

List<String> data;

String a1 = "A1";
            String a2 = "A2";
            String a3 = "A3";

            data = new ArrayList<String>();
            data.add(a1);
            data.add(a2);
            data.add(a3);

final AsyncDataProvider<String> provider = new AsyncDataProvider<String>() {
            @Override
            protected void onRangeChanged(HasData<String> display) {
                updateRowData(0, data);
            }
          };
          provider.addDataDisplay(grid);
provider.updateRowCount(data.size(), true); …
Run Code Online (Sandbox Code Playgroud)

java gwt datagrid

9
推荐指数
1
解决办法
9819
查看次数

如何将String []参数设置为本机查询?

这是我的PostgreSQL函数:

salvarArquivoGeometricoCasoZeroPOINT
(dimensao text,tableName text,tuplas text[],srid text)
Run Code Online (Sandbox Code Playgroud)

它有一个text[]参数,我想String[]从我的JPQL 传递一个Java :

public String salvarGeometriaCaso0(String[] tuplas,FileDto arquivo){
        Query query =
        em().createNativeQuery("select 
salvarArquivoGeometricoCasoZeroPOINT(?1,?2,?3,?4)");
        query.setParameter(1,arquivo.getGeo());//String
        query.setParameter(2,arquivo.getTable());/String
        query.setParameter(3,tuplas);//String[]
        query.setParameter(4,arquivo.getSrid());//String
        return (String) query.getSingleResult();//function returns a Text, so cast to String
}
Run Code Online (Sandbox Code Playgroud)

上面的代码失败,但有异常:

ERROR] Internal Exception: org.postgresql.util.PSQLException: Can not infer a SQL
type to use for an instance of [Ljava.lang.String;. 
Use setObject () with an explicit Types value to specify the type to use.
Run Code Online (Sandbox Code Playgroud)

所以我不确定如何从EclipseLink调用我的函数.

java postgresql eclipselink jpql

9
推荐指数
2
解决办法
2万
查看次数

当在GWT和GWTP上调用新的Presenter时,它有一些在html加载完成后调用的方法吗?

我需要对div css做一些调整.但我无法在方法onBind()或onReveal()上执行此操作,因为调用此两个方法时不会加载html.

所以我想知道一些方法来自动调用一个方法,当我修改我的html(当一个Presenter被称为html必须修改,因为新的小部件将被添加)加载.

这是我必须调用的方法:

private void hidePopup(){
  $(".olLayerGooglePoweredBy, .olLayerGoogleV3, .gmnoprint").
    css(CSS.VISIBILITY.with
      (com.google.gwt.dom.client.Style.Visibility.HIDDEN));
}
Run Code Online (Sandbox Code Playgroud)

html gwt gwt-platform

5
推荐指数
1
解决办法
404
查看次数

如何通过Golang SDK将大文件发送到Amazon S3时使用更少的内存?

我在golang上使用AWS SDK发送大型备份文件(2GB~10GB).

当进程开始时,存在大量内存消耗.我知道这是因为代码将文件读取到缓冲区,但我是Go的新手,我不知道如何更改它.

这是我用来读取文件并发送到AWS S3 Uploader的代码:

file, err := os.Open(file_to_upload)

file_name := getFileName(file_to_upload)

if err != nil {
    fmt.Println(err)
    os.Exit(1)
}
defer file.Close()

fileInfo, _ := file.Stat()
var size int64 = fileInfo.Size()

buffer := make([]byte, size)

file.Read(buffer)

fileBytes := bytes.NewReader(buffer)

fileType := http.DetectContentType(buffer)

upparams := &s3manager.UploadInput{
    Bucket: &bucket,
    Key:    &file_name,
    Body:   fileBytes,
    ACL:    aws.String("private"),
    ContentType:   aws.String(fileType),
    Metadata: map[string]*string{
        "Key": aws.String("MetadataValue"), //required
    },
}

result, err := uploader.Upload(upparams, func(u *s3manager.Uploader){
    if partsize != 0{
        u.PartSize = int64(partsize) * 1024 * 1024 …
Run Code Online (Sandbox Code Playgroud)

memory amazon-s3 go amazon-web-services

4
推荐指数
1
解决办法
828
查看次数

选择后如何更改JButton Icon?

我想在用户按下/释放按钮时更改JButton图标.

选择JButton时的图标图像

在此输入图像描述

取消选择JButton并释放JButton时的图标图像:

未选中/释放时

我怎样才能做到这一点?

java icons applet swing jbutton

3
推荐指数
1
解决办法
4393
查看次数

处理GWT ListBox中的大量数据

当我的Presenter被显示时,我必须进行RPC调用.该调用导致String []具有大量数据.但是这个电话非常慢.完成大约需要1分钟.

经过一些测试,我发现ListBox.addItem()占用了这个调用的30%.这是在该Widget上添加String的巨大时间.

我该怎么办才能最大限度地缩短这段时间

假设我需要在我的Presenter显示时加载所有内容.

我已经完成的事情:

  • 将我的查询放在视图中(不会影响太多)
  • 服务器读取Txt文件而不是调用DB(最差,然后查看).
  • 使用集合类ArrayList,Vector ...(向量缩短时间减少5%)

我注意到GWT设计了一个LightweightCollections来改善客户端集合的使用(这是我的下一步).

但是我能对ListBox做些什么呢?

gwt listbox gwt-platform

2
推荐指数
1
解决办法
1444
查看次数