pipeline { options { ansiColor('xterm') } //label libraryBuild is available in CN JAWS and ROW JAWS, therefore this one was used; no additional intents agent {label 'libraryBuild'} parameters { string(name: 'CLUSTER', defaultValue: '', description: 'Enter the cluster name') choice(name: 'ENVIRONMENT', choices: ['euprod', 'eupreprod', 'napreprod', 'naprod', 'cnprod', 'cnpreprod'], description: 'Choose Dynatrace environment') string(name: 'OWNER', defaultValue: '', description: 'Enter e-mail address of dashboard owner') booleanParam(name: 'REMOVE', defaultValue: false, description: 'Check if dashboard for provided cluster should be removed instead of created') } environment { //ProxySettings AUTH = credentials('proxy') proxy_user = "${AUTH_USR}" proxy_pw = "${AUTH_PSW}" http_proxy="http://${proxy_user}:${proxy_pw}@proxy.muc:8080" https_proxy="http://${proxy_user}:${proxy_pw}@proxy.muc:8080" no_proxy="localhost,127.0.0.1,.muc,.bmwgroup.net" HTTP_PROXY="${http_proxy}" HTTPS_PROXY="${https_proxy}" NO_PROXY="${no_proxy}" EUPROD_TOKEN_VAR = credentials('EUPROD_TOKEN_VAR') EUPREPROD_TOKEN_VAR = credentials('EUPREPROD_TOKEN_VAR') NAPROD_TOKEN_VAR = credentials('NAPROD_TOKEN_VAR') NAPREPROD_TOKEN_VAR = credentials('NAPREPROD_TOKEN_VAR') CNPROD_TOKEN_VAR = credentials('CNPROD_TOKEN_VAR') CNPREPROD_TOKEN_VAR = credentials('CNPREPROD_TOKEN_VAR') } stages { stage('install required python packages') { steps { sh ''' pip install --user -r requirements.txt ''' print env.JENKINS_URL } } stage('Execute Dashboard script') { steps { script { boolean remove = Boolean.getBoolean(REMOVE); def SCRIPT_PARAMETER = '' if(CLUSTER.isEmpty()) { currentBuild.result = 'ABORTED' error('Aborting due to missing CLUSTER parameter') return } else if(ENVIRONMENT.isEmpty()) { currentBuild.result = 'ABORTED' error('Aborting due to missing ENVIRONMENT parameter') return } else if(OWNER.isEmpty()) { currentBuild.result = 'ABORTED' error('Aborting due to missing OWNER parameter') return } else { SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -C " + CLUSTER.toString() SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -E " + ENVIRONMENT.toString() SCRIPT_PARAMETER = SCRIPT_PARAMETER + " -O " + OWNER.toString() if(remove) { SCRIPT_PARAMETER = SCRIPT_PARAMETER + " --remove "} sh "python createDash.py ${SCRIPT_PARAMETER}" } } } } } post { always { cleanWs() } } }