假设我在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,并将其传递给下一个清单。有可能吗?
答案 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