Merge "[CVP,master] Replace hardcode in runCVPrally method"
diff --git a/src/com/mirantis/mcp/Common.groovy b/src/com/mirantis/mcp/Common.groovy
index df3ef30..b83a714 100644
--- a/src/com/mirantis/mcp/Common.groovy
+++ b/src/com/mirantis/mcp/Common.groovy
@@ -1,10 +1,12 @@
package com.mirantis.mcp
+import static org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK
import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream
@Grab(group='org.yaml', module='snakeyaml', version='1.17')
import org.yaml.snakeyaml.Yaml
+import org.yaml.snakeyaml.DumperOptions
/**
* https://issues.jenkins-ci.org/browse/JENKINS-26481
@@ -53,7 +55,10 @@
*/
@NonCPS
def dumpYAML(Map map) {
- def yaml = new Yaml()
+ DumperOptions options = new DumperOptions()
+ options.setPrettyFlow(true)
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK)
+ def yaml = new Yaml(options)
return yaml.dump(map)
}
diff --git a/src/com/mirantis/mcp/Validate.groovy b/src/com/mirantis/mcp/Validate.groovy
index a1079ca..d67cd96 100644
--- a/src/com/mirantis/mcp/Validate.groovy
+++ b/src/com/mirantis/mcp/Validate.groovy
@@ -475,10 +475,9 @@
*
*/
def runRallyTests(
- platform, scenarios = '',
- sl_scenarios = '', tasks_args_file = '',
- db_connection_str = '', tags = [],
- trends = false, skip_list = ''
+ platform, scenarios = '', sl_scenarios = '',
+ tasks_args_file = '', db_connection_str = '', tags = [],
+ trends = false, skip_list = '', generateReport = true
) {
def dest_folder = '/home/rally'
@@ -509,20 +508,25 @@
def cmd_rally_start
def cmd_rally_stacklight
def cmd_rally_task_args = tasks_args_file ?: 'job-params-light.yaml'
- def cmd_rally_report = 'rally task export ' +
- '--uuid $(rally task list --uuids-only --status finished) ' +
- "--type junit-xml --to ${resultsDir}/report-rally.xml; " +
- 'rally task report --uuid $(rally task list --uuids-only --status finished) ' +
- "--out ${resultsDir}/report-rally.html"
+ def cmd_rally_report = ''
def cmd_filter_tags = ''
def trends_limit = 20
+ // generate html report if required
+ if (generateReport) {
+ cmd_rally_report = 'rally task export ' +
+ '--uuid $(rally task list --uuids-only --status finished) ' +
+ "--type junit-xml --to ${resultsDir}/report-rally.xml; " +
+ 'rally task report --uuid $(rally task list --uuids-only --status finished) ' +
+ "--out ${resultsDir}/report-rally.html; "
+ }
+
// build rally trends if required
if (trends && db_connection_str) {
if (tags) {
cmd_filter_tags = "--tag " + tags.join(' ')
}
- cmd_rally_report += '; rally task trends --tasks ' +
+ cmd_rally_report += 'rally task trends --tasks ' +
'$(rally task list ' + cmd_filter_tags +
' --all-deployments --uuids-only --status finished ' +
"| head -${trends_limit} ) " +
@@ -611,7 +615,7 @@
'002_init_rally': cmd_rally_init,
'003_start_rally': cmd_rally_start ?: "echo no tasks to run",
'004_start_rally_stacklight': cmd_rally_stacklight ?: "echo no tasks to run",
- '005_rally_report': cmd_rally_report,
+ '005_rally_report': cmd_rally_report ?: "echo no tasks to run",
]
return full_cmd
diff --git a/src/com/mirantis/mk/Debian.groovy b/src/com/mirantis/mk/Debian.groovy
index d6c82db..6bb1f50 100644
--- a/src/com/mirantis/mk/Debian.groovy
+++ b/src/com/mirantis/mk/Debian.groovy
@@ -265,8 +265,8 @@
common.infoMsg("Running upgrade on ${target}")
salt.runSaltProcessStep(env, target, 'pkg.refresh_db', [], null, true)
- def cmd = 'export DEBIAN_FRONTEND=noninteractive; apt-get -y -q --allow-downgrades -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" upgrade;'
- salt.runSaltProcessStep(env, target, 'cmd.run', [cmd])
+ def cmd = 'export DEBIAN_FRONTEND=noninteractive; apt-get -y -q --allow-downgrades -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" upgrade'
+ salt.cmdRun(env, target, cmd)
}
/**
@@ -281,8 +281,8 @@
common.infoMsg("Running dist-upgrade on ${target}")
salt.runSaltProcessStep(env, target, 'pkg.refresh_db', [], null, true)
- def cmd = 'export DEBIAN_FRONTEND=noninteractive; apt-get -y -q --allow-downgrades -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" dist-upgrade;'
- salt.runSaltProcessStep(env, target, 'cmd.run', [cmd])
+ def cmd = 'export DEBIAN_FRONTEND=noninteractive; apt-get -y -q --allow-downgrades -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" dist-upgrade'
+ salt.cmdRun(env, target, cmd)
}
/**
diff --git a/src/com/mirantis/mk/Orchestrate.groovy b/src/com/mirantis/mk/Orchestrate.groovy
index 15de301..2795248 100644
--- a/src/com/mirantis/mk/Orchestrate.groovy
+++ b/src/com/mirantis/mk/Orchestrate.groovy
@@ -876,26 +876,29 @@
salt.enforceStateWithTest([saltId: master, target: "I@kibana:server:enabled:true ${extra_tgt}", state: 'kibana.server'])
// Check ES health cluster status
- def pillar = salt.getPillar(master, "I@elasticsearch:client ${extra_tgt}", 'elasticsearch:client:server:host')
+ def pillar = salt.getReturnValues(salt.getPillar(master, "I@elasticsearch:client ${extra_tgt}", 'elasticsearch:client:server:host'))
def elasticsearch_vip
- if(!pillar['return'].isEmpty()) {
- elasticsearch_vip = pillar['return'][0].values()[0]
+ if(pillar) {
+ elasticsearch_vip = pillar
} else {
common.errorMsg('[ERROR] Elasticsearch VIP address could not be retrieved')
}
- pillar = salt.getPillar(master, "I@elasticsearch:client ${extra_tgt}", 'elasticsearch:client:server:port')
+
+ pillar = salt.getReturnValues(salt.getPillar(master, "I@elasticsearch:client ${extra_tgt}", 'elasticsearch:client:server:port'))
def elasticsearch_port
- if(!pillar['return'].isEmpty()) {
- elasticsearch_port = pillar['return'][0].values()[0]
+ if(pillar) {
+ elasticsearch_port = pillar
} else {
common.errorMsg('[ERROR] Elasticsearch VIP port could not be retrieved')
}
- pillar = salt.getPillar(master, "I@elasticsearch:client ${extra_tgt}", 'elasticsearch:client:server:scheme')
+
+ pillar = salt.getReturnValues(salt.getPillar(master, "I@elasticsearch:client ${extra_tgt}", 'elasticsearch:client:server:scheme'))
def elasticsearch_scheme
- if(!pillar['return'].isEmpty()) {
- elasticsearch_scheme = pillar['return'][0].values()[0]
+ if(pillar) {
+ elasticsearch_scheme = pillar
+ common.infoMsg("[INFO] Using elasticsearch scheme: ${elasticsearch_scheme}")
} else {
- common.infoMsg('No pillar with Elasticsearch server scheme, using http')
+ common.infoMsg('[INFO] No pillar with Elasticsearch server scheme, using scheme: http')
elasticsearch_scheme = "http"
}
@@ -948,7 +951,7 @@
salt.enforceState([saltId: master, target: "I@docker:swarm and I@prometheus:server ${extra_tgt}", state: 'prometheus'])
//Configure Remote Collector in Docker Swarm for Openstack deployments
- if (!common.checkContains('STACK_INSTALL', 'k8s')) {
+ if (salt.testTarget(master, "I@heka:remote_collector ${extra_tgt}")) {
salt.enforceState([saltId: master, target: "I@docker:swarm and I@prometheus:server ${extra_tgt}", state: 'heka.remote_collector', failOnError: false])
}
diff --git a/src/com/mirantis/mk/Test.groovy b/src/com/mirantis/mk/Test.groovy
index aadeb8a..404c6f8 100644
--- a/src/com/mirantis/mk/Test.groovy
+++ b/src/com/mirantis/mk/Test.groovy
@@ -133,6 +133,7 @@
def target = config.get('target', 'I@kubernetes:master and ctl01*')
def status = config.get('status')
def ctl_target = config.get('ctl_target', 'I@kubernetes:master')
+ def k8s_pool_target = config.get('k8s_pool_target', 'I@kubernetes:pool')
def results_dir = config.get('results_dir', '/tmp/conformance')
def artifacts_dir = config.get('artifacts_dir', '_artifacts/')
def output_file = config.get('output_file', 'conformance.tar')
@@ -142,7 +143,7 @@
def short_node = locateConformancePod(master, target)
print("Pod located on $short_node")
- minions = salt.getMinionsSorted(master, ctl_target)
+ minions = salt.getMinionsSorted(master, k8s_pool_target)
conformance_target = minions.find {it =~ short_node}
if (status == 'NOTEXECUTED') {
@@ -183,12 +184,13 @@
// Listing defaults
def master = config.get('master', 'pepperVenv')
def target = config.get('target', 'I@kubernetes:master and ctl01*')
+ def ctl_target = config.get('ctl_target', 'I@kubernetes:master and ctl01*')
def pod_path = config.get('pod_path', '/srv/kubernetes/conformance.yml')
def results_dir = config.get('results_dir', '/tmp/conformance')
def output_file = config.get('output_file', )
// End listing defaults
- salt.cmdRun(master, target, "kubectl delete -f ${pod_path}")
+ salt.cmdRun(master, ctl_target, "kubectl delete -f ${pod_path}")
salt.cmdRun(master, target, "rm -rf ${results_dir}", false)
salt.cmdRun(master, target, "rm -f ${output_file}", false)
}