有没有办法在我的弹性清单中的单独动作中获取有关已创建环境的信息?

时间:2020-04-28 05:09:54

标签: jelastic

假设我在jps清单中执行以下操作:

 <p-editor required [(ngModel)]="comment.comment" placeholder="{{ 'comment' | translate }}" name="comment"
        class="pEditor" [style]="{ height: '180px', 'font-size': '1.2em' }">
        <p-header>

          <span class="ql-formats">
            <select class="ql-size">
              <option value="24px">24</option>
              <option value="48px">48</option>
              <option value="100px">100</option>
              <option value="200px">200</option>
            </select>
          </span>
          <span class="ql-formats">
            <button class="ql-bold" aria-label="Bold"></button>
            <button class="ql-italic" aria-label="Italic"></button>
            <button class="ql-underline" aria-label="Underline"></button>
            <button class="ql-strike" aria-label="Strike"></button>
          </span>

          <span class="ql-formats">
            <button aria-label="Link" class="ql-link"></button>
            <button aria-label="Image" class="ql-image"></button>  //Not working
          </span>
        </p-header>
      </p-editor>

在第一步中,我安装了数据库。它创建了一个单独的Jelastic环境。然后,在第二个操作中,对当前环境(而不是数据库)进行操作,我想从第一个操作中获取数据库主机名。更重要的是,我将拥有数据库主节点。我怎样才能做到这一点?在有关该主题的常规Jelastic或cloudscripting文档中,我什么也没找到。

编辑

在操作actions: installDatabase: install: jps: ${baseUrl}/jelastic/postgres/manifest.jps envName: ${settings.pgEnvName} displayName: Database cluster myOtherAction: - cmd [cp]: - doSomethingWithTheDatabaseHostname 中,我要安装另一个jps,它需要由操作myOtherAction安装的数据库的主机名。其他jps可能需要连接到该数据库。我不想手动安装多个jps清单。我想自动安装所有需要的清单。在这里描述的情况下,第一个清单安装数据库环境。我需要获取该数据库的主节点的节点ID,并将其传递给下一个清单。有可能吗?

1 个答案:

答案 0 :(得分:2)

关于如何从一个JPS使用多种环境的方法有多种选择,例如,可以安装另一个JPS:

actions:
  installDatabase:
    - install:
        jps: ${baseUrl}/jelastic/postgres/manifest.jps
        envName: ${settings.pgEnvName}
        displayName: Database cluster
    - install:
        envName: ${settings.pgEnvName}
        jps:
          type: upddate
          name: Configure Database
          onInstall:            
            - cmd [${nodes.sqldb.master.id}]: 
                - echo ${nodes.sqldb.master.address}
                - doSomethingWithTheDatabaseHostname

或者您可以使用API​​在其他环境中执行查询:

actions:
  installDatabase:
    - install:
        jps: ${baseUrl}/jelastic/postgres/manifest.jps
        envName: ${settings.pgEnvName}
        displayName: Database cluster]     

    - script: |
        var resp = api.env.control.GetEnvInfo('${settings.pgEnvName}', session);
        if (resp.result != 0) return resp;

        for (var i = 0, node; node = resp.nodes[i]; i++ ) {
          if (node.nodeGroup == "sqldb" && node.ismaster) {
            return { result: 0, node: node };
          }
        }

        return { result : "error", message: "node not found" };

    - env.control.ExecCmdById:
       envName: ${settings.pgEnvName}
       nodeId: ${response.node.id}
       commandList:
         # doSomethingWithTheDatabaseHostname:
         - command: hostname