Merge "Added job testing to gating job"
diff --git a/cicd-lab-pipeline.groovy b/cicd-lab-pipeline.groovy
index 11fc586..b742e04 100644
--- a/cicd-lab-pipeline.groovy
+++ b/cicd-lab-pipeline.groovy
@@ -32,26 +32,6 @@
salt = new com.mirantis.mk.Salt()
orchestrate = new com.mirantis.mk.Orchestrate()
-def waitForServices(saltMaster) {
- retry(30) {
- out = salt.cmdRun(saltMaster, 'I@docker:swarm:role:master', """/bin/bash -c 'docker service ls | grep -E "0/[0-9]+"' && echo 'Some services are not running'""")
- for (int a = 0; a < out['return'].size(); a++) {
- def entry = out['return'].get(a)
- for (int i = 0; i < entry.size(); i++) {
- def node = entry.get(i)
- if (node) {
- if (node.value =~ /Some services are not running/) {
- sleep(10)
- throw new Exception("$node.key: $node.value")
- } else {
- print out
- }
- }
- }
- }
- }
-}
-
timestamps {
node {
try {
@@ -117,7 +97,7 @@
try {
saltMasterPort = SALT_MASTER_PORT
} catch (MissingPropertyException e) {
- saltMasterPort = 8000
+ saltMasterPort = 6969
}
saltMasterHost = openstack.getHeatStackOutputParam(openstackCloud, HEAT_STACK_NAME, 'salt_master_ip', openstackEnv)
saltMasterUrl = "http://${saltMasterHost}:${saltMasterPort}"
@@ -165,7 +145,6 @@
// XXX: Hack to fix dependency of gerrit on mysql
print salt.cmdRun(saltMaster, 'I@docker:swarm:role:master', "docker service rm gerrit; sleep 5; rm -rf /srv/volumes/gerrit/*")
- waitForServices(saltMaster)
timeout(10) {
salt.cmdRun(saltMaster, 'I@docker:swarm:role:master', 'apt-get install -y mysql-client')
@@ -174,11 +153,11 @@
}
salt.enforceState(saltMaster, 'I@docker:swarm:role:master', 'docker.client')
// ---- cut here (end of hack) ----
-
- waitForServices(saltMaster)
}
stage("Configure CI/CD services") {
+ salt.syncAll(saltMaster, '*')
+
// Aptly
salt.enforceState(saltMaster, 'I@aptly:server', 'aptly', true)
diff --git a/lab-pipeline.groovy b/lab-pipeline.groovy
index 6f0717d..55722af 100644
--- a/lab-pipeline.groovy
+++ b/lab-pipeline.groovy
@@ -359,8 +359,17 @@
if (INSTALL.toLowerCase().contains('contrail')) {
// Install opencontrail database services
//runSaltProcessStep(saltMaster, 'I@opencontrail:database', 'state.sls', ['opencontrail.database'], 1)
- salt.enforceState(saltMaster, 'ntw01*', 'opencontrail.database', true)
- salt.enforceState(saltMaster, 'I@opencontrail:database', 'opencontrail.database', true)
+ try {
+ salt.enforceState(saltMaster, 'ntw01*', 'opencontrail.database', true)
+ } catch (Exception e) {
+ print.warningMsg('Exception in state opencontrail.database on ntw01*')
+ }
+
+ try {
+ salt.enforceState(saltMaster, 'I@opencontrail:database', 'opencontrail.database', true)
+ } catch (Exception e) {
+ print.warningMsg('Exception in state opencontrail.database on I@opencontrail:database')
+ }
// Install opencontrail control services
//runSaltProcessStep(saltMaster, 'I@opencontrail:control', 'state.sls', ['opencontrail'], 1)
@@ -438,8 +447,10 @@
sleep(10)
- salt.enforceState(saltMaster, 'I@elasticsearch:client', 'elasticsearch.client', true)
- salt.enforceState(saltMaster, 'I@kibana:client', 'kibana.client', true)
+ salt.runSaltProcessStep(saltMaster, 'I@elasticsearch.client', 'cmd.run', ['salt-call state.sls elasticsearch.client'], null, true)
+ // salt.enforceState(saltMaster, 'I@elasticsearch:client', 'elasticsearch.client', true)
+ salt.runSaltProcessStep(saltMaster, 'I@kibana.client', 'cmd.run', ['salt-call state.sls kibana.client'], null, true)
+ // salt.enforceState(saltMaster, 'I@kibana:client', 'kibana.client', true)
// install monitor
// Restart salt-minion to make sure that it uses the latest Jinja library
@@ -457,6 +468,7 @@
// Install collectd, heka and sensu services on the nodes, this will also
// generate the metadata that goes into the grains and eventually into Salt Mine
salt.enforceState(saltMaster, '*', 'collectd', true)
+ salt.enforceState(saltMaster, '*', 'salt.minion', true)
salt.enforceState(saltMaster, '*', 'heka', true)
// Gather the Grafana metadata as grains
@@ -488,13 +500,14 @@
// Finalize the configuration of Grafana (add the dashboards...)
salt.enforceState(saltMaster, 'I@grafana:client', 'grafana.client.service', true)
// nw salt -C 'I@grafana:client' --async service.restart salt-minion; sleep 10
- salt.enforceState(saltMaster, 'I@grafana:client', 'grafana.client', true)
+
+ salt.runSaltProcessStep(saltMaster, 'I@grafana.client and *01*', 'cmd.run', ['salt-call state.sls grafana.client'], null, true)
+ // salt.enforceState(saltMaster, 'I@grafana:client and *01*', 'grafana.client', true)
// Get the StackLight monitoring VIP addres
- // TODO
//vip=$(salt-call pillar.data _param:stacklight_monitor_address --out key|grep _param: |awk '{print $2}')
//vip=${vip:=172.16.10.253}
- def pillar = salt.pillarGet(saltMaster, 'ctl01*', '_param:stacklight_monitor_address')
+ def pillar = salt.getPillar(saltMaster, 'ctl01*', '_param:stacklight_monitor_address')
print(pillar)
def stacklight_vip = pillar['return'][0]['ctl01.nfv-lab.local']
common.infoMsg("restart services on node with IP: ${stacklight_vip}")