Merge "Add readYaml2 common func"
diff --git a/src/com/mirantis/mk/Ceph.groovy b/src/com/mirantis/mk/Ceph.groovy
index c959810..8660233 100644
--- a/src/com/mirantis/mk/Ceph.groovy
+++ b/src/com/mirantis/mk/Ceph.groovy
@@ -93,7 +93,7 @@
}
}
if (lvm_enabled && type != 'lockbox') {
- salt.cmdRun(master, target, "ceph-volume lvm zap ${partition_uuid} --destroy")
+ salt.cmdRun(master, target, "ceph-volume lvm zap /dev/disk/by-partuuid/${partition_uuid} --destroy")
} else if (dev != '') {
salt.cmdRun(master, target, "parted ${dev} rm ${part_id}")
} else {
diff --git a/src/com/mirantis/mk/DockerImageScanner.groovy b/src/com/mirantis/mk/DockerImageScanner.groovy
index ff4a73e..94e0dea 100644
--- a/src/com/mirantis/mk/DockerImageScanner.groovy
+++ b/src/com/mirantis/mk/DockerImageScanner.groovy
@@ -185,6 +185,9 @@
imageDict.each{
image ->
def image_key = image.key.replaceAll(/(^[a-z0-9-.]+.mirantis.(net|com)\/|:.*$)/, '')
+ // Temporary exclude kibana images, due to false positive in PRODX-5468
+ // Remove once RE-193 ticket is resolved
+ if (image_key.startsWith('stacklight/kibana')) { return }
jira_summary = "[${image_key}] Found CVEs in Docker image"
jira_description = "{noformat}${image.key}\\n"
image.value.each{
diff --git a/src/com/mirantis/mk/Gerrit.groovy b/src/com/mirantis/mk/Gerrit.groovy
index c33dc5e..88da957 100644
--- a/src/com/mirantis/mk/Gerrit.groovy
+++ b/src/com/mirantis/mk/Gerrit.groovy
@@ -173,21 +173,22 @@
* Return gerrit change object from gerrit API
* @param gerritName gerrit user name (usually GERRIT_NAME property)
* @param gerritHost gerrit host (usually GERRIT_HOST property)
+ * @param gerritPort gerrit port (usually GERRIT_PORT property, default 29418)
* @param gerritChangeNumber gerrit change number (usually GERRIT_CHANGE_NUMBER property)
* @param credentialsId jenkins credentials id for gerrit
* @param includeCurrentPatchset do you want to include current (last) patchset
* @return gerrit change object
*/
-def getGerritChange(gerritName, gerritHost, gerritChangeNumber, credentialsId, includeCurrentPatchset = false){
+def getGerritChange(gerritName, gerritHost, gerritChangeNumber, credentialsId, includeCurrentPatchset = false, gerritPort = '29418'){
def common = new com.mirantis.mk.Common()
def ssh = new com.mirantis.mk.Ssh()
ssh.prepareSshAgentKey(credentialsId)
- ssh.ensureKnownHosts(gerritHost)
+ ssh.ensureKnownHosts("${gerritHost}:${gerritPort}")
def curPatchset = "";
if(includeCurrentPatchset){
curPatchset = "--current-patch-set"
}
- return common.parseJSON(ssh.agentSh(String.format("ssh -p 29418 %s@%s gerrit query ${curPatchset} --format=JSON change:%s", gerritName, gerritHost, gerritChangeNumber)))
+ return common.parseJSON(ssh.agentSh(String.format("ssh -p %s %s@%s gerrit query ${curPatchset} --format=JSON change:%s", gerritPort, gerritName, gerritHost, gerritChangeNumber)))
}
/**
diff --git a/src/com/mirantis/mk/Git.groovy b/src/com/mirantis/mk/Git.groovy
index f699b3e..d724b8f 100644
--- a/src/com/mirantis/mk/Git.groovy
+++ b/src/com/mirantis/mk/Git.groovy
@@ -129,6 +129,12 @@
} else {
gitOpts = ''
}
+ def gitEnv = [
+ "GIT_AUTHOR_NAME=${gitName}",
+ "GIT_AUTHOR_EMAIL=${gitEmail}",
+ "GIT_COMMITTER_NAME=${gitName}",
+ "GIT_COMMITTER_EMAIL=${gitEmail}",
+ ]
dir(path) {
sh "git config ${global_arg} user.email '${gitEmail}'"
sh "git config ${global_arg} user.name '${gitName}'"
@@ -137,10 +143,12 @@
script: 'git add -A',
returnStdout: true
).trim()
- git_cmd = sh(
- script: "git commit ${gitOpts} -m '${message}'",
- returnStdout: true
- ).trim()
+ withEnv(gitEnv) {
+ git_cmd = sh(
+ script: "git commit ${gitOpts} -m '${message}'",
+ returnStdout: true
+ ).trim()
+ }
}
return git_cmd
}
diff --git a/src/com/mirantis/mk/KaasUtils.groovy b/src/com/mirantis/mk/KaasUtils.groovy
index e558131..2109dcd 100644
--- a/src/com/mirantis/mk/KaasUtils.groovy
+++ b/src/com/mirantis/mk/KaasUtils.groovy
@@ -113,11 +113,13 @@
// Available triggers and its sane defaults
def siTestsRefspec = env.SI_TESTS_REFSPEC ?: 'master'
+ def siTestsFeatureFlags = env.SI_TESTS_FEATURE_FLAGS ?: ''
def siPipelinesRefspec = env.SI_PIPELINES_REFSPEC ?: 'master'
def siTestsDockerImage = env.SI_TESTS_DOCKER_IMAGE ?: 'docker-dev-kaas-local.docker.mirantis.net/mirantis/kaas/si-test:master'
def commitMsg = env.GERRIT_CHANGE_COMMIT_MESSAGE ? new String(env.GERRIT_CHANGE_COMMIT_MESSAGE.decodeBase64()) : ''
def siTestMatches = (commitMsg =~ /(\[si-tests-ref\s*refs\/changes\/.*?\])/)
+ def siFeatureFlagsMatches = (commitMsg =~ /(\[si-feature-flags\s.*?\])/)
def siPipelinesMatches = (commitMsg =~ /(\[si-pipelines-ref\s*refs\/changes\/.*?\])/)
if (siTestMatches.size() > 0) {
@@ -125,6 +127,9 @@
siTestsDockerImage = "docker-dev-local.docker.mirantis.net/review/" +
"kaas-si-test-${siTestsRefspec.split('/')[-2]}:${siTestsRefspec.split('/')[-1]}"
}
+ if (siFeatureFlagsMatches.size() > 0) {
+ siTestsFeatureFlags = siFeatureFlagsMatches[0][0].split('si-feature-flags')[1].replaceAll('[\\[\\]]', '').trim()
+ }
if (siPipelinesMatches.size() > 0) {
siPipelinesRefspec = siPipelinesMatches[0][0].split('si-pipelines-ref')[1].replaceAll('[\\[\\]]', '').trim()
}
@@ -133,8 +138,9 @@
kaas/si-pipelines will be fetched from: ${siPipelinesRefspec}
kaas/si-tests will be fetched from: ${siTestsRefspec}
kaas/si-tests as dockerImage will be fetched from: ${siTestsDockerImage}
+ kaas/si-tests additional feature flags applied: [${siTestsFeatureFlags}]
Keywords: https://gerrit.mcp.mirantis.com/plugins/gitiles/kaas/core/+/refs/heads/master/.git-message-template#59""")
- return [siTests: siTestsRefspec, siPipelines: siPipelinesRefspec, siTestsDockerImage: siTestsDockerImage]
+ return [siTests: siTestsRefspec, siFeatureFlags: siTestsFeatureFlags, siPipelines: siPipelinesRefspec, siTestsDockerImage: siTestsDockerImage]
}
/**
@@ -195,12 +201,11 @@
def coreRefspec = checkCustomCoreRefspec()
def jobs = [:]
- // TODO manage SI_TESTS_FEATURE_FLAGS through checkCustomSIRefspec()
- //string(name: "SI_TESTS_FEATURE_FLAGS", value: env.SI_TESTS_FEATURE_FLAGS),
def parameters = [
string(name: 'GERRIT_REFSPEC', value: coreRefspec.core),
string(name: 'KAAS_PIPELINE_REFSPEC', value: coreRefspec.corePipelines),
string(name: 'SI_TESTS_REFSPEC', value: siRefspec.siTests),
+ string(name: 'SI_TESTS_FEATURE_FLAGS', value: siRefspec.siFeatureFlags),
string(name: 'SI_PIPELINES_REFSPEC', value: siRefspec.siPipelines),
string(name: 'CUSTOM_RELEASE_PATCH_SPEC', value: patchSpec),
booleanParam(name: 'UPGRADE_MGMT', value: triggers.upgradeMgmtEnabled),
@@ -216,30 +221,32 @@
jobs["kaas-core-openstack-patched-${component}"] = {
try {
common.infoMsg('Deploy: patched KaaS demo with Openstack provider')
- def job_info = build job: "kaas-testing-core-openstack-workflow-${component}", parameters: parameters, wait: true
- def build_description = job_info.getDescription()
+ os_job_info = build job: "kaas-testing-core-openstack-workflow-${component}", parameters: parameters, wait: true
+ def build_description = os_job_info.getDescription()
+ def build_result = os_job_info.getResult()
+ jobResults.add(build_result)
+
if (build_description) {
currentBuild.description += build_description
}
} finally {
- def build_result = job_info.getResult()
- common.infoMsg("Patched KaaS demo with Openstack provider finished with status: ${build_result}")
- jobResults.add(build_result)
+ common.infoMsg('Patched KaaS demo with Openstack provider finished')
}
}
if (triggers.awsOnDemandDemoEnabled) {
jobs["kaas-core-aws-patched-${component}"] = {
try {
common.infoMsg('Deploy: patched KaaS demo with AWS provider')
- def job_info = build job: "kaas-testing-core-aws-workflow-${component}", parameters: parameters, wait: true
- def build_description = job_info.getDescription()
+ aws_job_info = build job: "kaas-testing-core-aws-workflow-${component}", parameters: parameters, wait: true
+ def build_description = aws_job_info.getDescription()
+ def build_result = aws_job_info.getResult()
+ jobResults.add(build_result)
+
if (build_description) {
currentBuild.description += build_description
}
} finally {
- def build_result = job_info.getResult()
- common.infoMsg("Patched KaaS demo with AWS provider finished with status: ${build_result}")
- jobResults.add(build_result)
+ common.infoMsg('Patched KaaS demo with AWS provider finished')
}
}
}
diff --git a/src/com/mirantis/mk/Ruby.groovy b/src/com/mirantis/mk/Ruby.groovy
index 8fac324..4681d07 100644
--- a/src/com/mirantis/mk/Ruby.groovy
+++ b/src/com/mirantis/mk/Ruby.groovy
@@ -11,7 +11,7 @@
def ensureRubyEnv(rubyVersion="2.4.1"){
if (!fileExists("/var/lib/jenkins/.rbenv/versions/${rubyVersion}/bin/ruby")){
//XXX: patch ruby-build because debian package is quite old
- sh "git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build || git -C ~/.rbenv/plugins/ruby-build pull"
+ sh "git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build || git -C ~/.rbenv/plugins/ruby-build pull origin master"
sh "rbenv install ${rubyVersion} -sv";
}
sh "rbenv local ${rubyVersion};rbenv exec gem update --system"