You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.5 KiB
Groovy
57 lines
2.5 KiB
Groovy
import org.yaml.snakeyaml.Yaml
|
|
import org.yaml.snakeyaml.DumperOptions
|
|
|
|
DumperOptions options = new DumperOptions();
|
|
options.setIndent(2);
|
|
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
|
options.setIndicatorIndent(2);
|
|
options.setIndentWithIndicator(true);
|
|
|
|
def yaml = new Yaml(options)
|
|
|
|
def parameter
|
|
switch(smardigoManagementAction) {
|
|
case { it.contains('pmci-tenant') }:
|
|
parameter = [
|
|
stage : envStage,
|
|
scope_id : contextScopeId,
|
|
process_instance_id : execution.getProcessInstanceId(),
|
|
smardigo_management_action: smardigoManagementAction,
|
|
tenant : tenant,
|
|
data : binding.hasVariable('data') ? data : []
|
|
]
|
|
break;
|
|
case { it.contains('pmci-database') || it.contains('pmci-inventory') || it.contains('pmci-kibana') ||
|
|
it.contains('pmci-realm') || it.contains('pmci-server') || it.contains('pmci-service') }:
|
|
parameter = [
|
|
stage : envStage,
|
|
scope_id : contextScopeId,
|
|
process_instance_id : execution.getProcessInstanceId(),
|
|
smardigo_management_action: smardigoManagementAction,
|
|
tenant : tenant,
|
|
cluster : binding.hasVariable('service') ? service.cluster<<[features:service.connect_features]: [],
|
|
data : binding.hasVariable('data') ? data : []
|
|
]
|
|
break;
|
|
default:
|
|
parameter = [
|
|
stage : envStage,
|
|
scope_id : contextScopeId,
|
|
process_instance_id : execution.getProcessInstanceId(),
|
|
smardigo_management_action: smardigoManagementAction
|
|
]
|
|
break;
|
|
}
|
|
|
|
def filename = 'xvars-' + smardigoManagementAction + '-' + execution.getProcessInstanceId() + '.yml'
|
|
def ansibleCommand= 'ansible-playbook ' + smardigoManagementAction + '.yml --vault-password-file ~/vault-pass-' + envStage + ' -e "@' + filename + '"'
|
|
|
|
def ansibleVariables= 'cat <<EOT > ' + filename + '\n'
|
|
ansibleVariables+= '---\n'
|
|
ansibleVariables+= yaml.dump(parameter)
|
|
ansibleVariables+= 'EOT'
|
|
|
|
processes.byId(contextScopeId, contextProcessId).createComment(comment + ' gestartet')
|
|
comments.create(contextScopeId, contextProcessId, '<pre>' + ansibleVariables + '\n' + ansibleCommand + '</pre>')
|
|
|
|
ansibleCommand |