Merge "Add TestRail reporting stage for devcloud deployments"
diff --git a/build-mirror-image.groovy b/build-mirror-image.groovy
index d9169b4..822d398 100644
--- a/build-mirror-image.groovy
+++ b/build-mirror-image.groovy
@@ -4,6 +4,7 @@
*
* Expected parameters:
* CLUSTER_MODEL - An URL to the Reclass model for the mirror VM.
+ * CLUSTER_MODEL_REF - Branch or tag to use for cluster model
* CLUSTER_NAME - Cluster name used in the above model.
* IMAGE_NAME - Name of the result image.
* OS_CREDENTIALS_ID - ID of credentials for OpenStack API stored in Jenkins.
@@ -33,7 +34,7 @@
def openstack = new com.mirantis.mk.Openstack()
def date = new Date()
def dateTime = date.format("ddMMyyyy-HHmmss")
-def venvPepper = "venvPepper"
+def venvPepper = ""
def privateKey = ""
def floatingIP = ""
def openstackServer = ""
@@ -61,8 +62,9 @@
node("python&&disk-xl") {
try {
def workspace = common.getWorkspace()
- rcFile = openstack.createOpenstackEnv(OS_URL, OS_CREDENTIALS_ID, OS_PROJECT, "default", "", "default", "2", "")
openstackEnv = String.format("%s/venv", workspace)
+ venvPepper = String.format("%s/venvPepper", workspace)
+ rcFile = openstack.createOpenstackEnv(openstackEnv, OS_URL, OS_CREDENTIALS_ID, OS_PROJECT, "default", "", "default", "2", "")
def openstackVersion = OS_VERSION
VM_IP_DELAY = VM_IP_DELAY as Integer
@@ -88,7 +90,7 @@
floatingIP = openstack.runOpenstackCommand("openstack ip floating create --format value -c floating_ip_address ${VM_FLOATING_IP_POOL}", rcFile, openstackEnv)
- withEnv(["CLUSTER_NAME=${CLUSTER_NAME}", "CLUSTER_MODEL=${CLUSTER_MODEL}"]) {
+ withEnv(["CLUSTER_NAME=${CLUSTER_NAME}", "CLUSTER_MODEL=${CLUSTER_MODEL}", "CLUSTER_MODEL_REF=${CLUSTER_MODEL_REF}", "MCP_VERSION=${MCP_VERSION}"]) {
sh "envsubst < salt-bootstrap.sh > salt-bootstrap.sh.temp;mv salt-bootstrap.sh.temp salt-bootstrap.sh; cat salt-bootstrap.sh"
}
@@ -226,4 +228,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/ceph-remove-osd.groovy b/ceph-remove-osd.groovy
index 04a176b..71946b7 100644
--- a/ceph-remove-osd.groovy
+++ b/ceph-remove-osd.groovy
@@ -75,7 +75,11 @@
// get list of osd disks of the host
salt.runSaltProcessStep(pepperEnv, HOST, 'saltutil.sync_grains', [], null, true, 5)
- def ceph_disks = salt.getGrain(pepperEnv, HOST, 'ceph')['return'][0].values()[0].values()[0]['ceph_disk']
+ def cephGrain = salt.getGrain(pepperEnv, HOST, 'ceph')['return']
+ if(cephGrain['return'].isEmpty()){
+ throw new Exception("Ceph salt grain cannot be found!")
+ }
+ def ceph_disks = cephGrain['return'][0].values()[0].values()[0]['ceph_disk']
common.prettyPrint(ceph_disks)
for (i in ceph_disks) {
@@ -89,7 +93,7 @@
}
// wait for healthy cluster
- if (WAIT_FOR_HEALTHY.toBoolean() == true) {
+ if (WAIT_FOR_HEALTHY.toBoolean()) {
waitForHealthy(pepperEnv)
}
@@ -99,7 +103,7 @@
}
// wait for healthy cluster
- if (WAIT_FOR_HEALTHY.toBoolean() == true) {
+ if (WAIT_FOR_HEALTHY.toBoolean()) {
sleep(5)
waitForHealthy(pepperEnv)
}
diff --git a/cicd-lab-pipeline.groovy b/cicd-lab-pipeline.groovy
index d985b3f..6236f2a 100644
--- a/cicd-lab-pipeline.groovy
+++ b/cicd-lab-pipeline.groovy
@@ -80,7 +80,7 @@
}
stage('Connect to OpenStack cloud') {
- openstackCloud = openstack.createOpenstackEnv(
+ openstackCloud = openstack.createOpenstackEnv(openstackEnv,
OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS,
OPENSTACK_API_PROJECT, OPENSTACK_API_PROJECT_DOMAIN,
OPENSTACK_API_PROJECT_ID, OPENSTACK_API_USER_DOMAIN,
diff --git a/cleanup-pipeline.groovy b/cleanup-pipeline.groovy
index ec3e19d..001e6c0 100644
--- a/cleanup-pipeline.groovy
+++ b/cleanup-pipeline.groovy
@@ -28,8 +28,8 @@
salt = new com.mirantis.mk.Salt()
timeout(time: 12, unit: 'HOURS') {
node {
-
- def venv_path = "${env.WORKSPACE}/venv"
+ def workspace = common.getWorkspace()
+ def venv_path = "${workspace}/venv"
def env_vars
// default STACK_TYPE is heat
@@ -56,7 +56,7 @@
stage('Delete stack') {
if (STACK_TYPE == 'heat') {
- def openstackCloud = openstack.createOpenstackEnv(
+ def openstackCloud = openstack.createOpenstackEnv(venv_path,
OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS,
OPENSTACK_API_PROJECT,OPENSTACK_API_PROJECT_DOMAIN,
OPENSTACK_API_PROJECT_ID, OPENSTACK_API_USER_DOMAIN,
diff --git a/cloud-deploy-pipeline.groovy b/cloud-deploy-pipeline.groovy
index 947904a..fa30579 100644
--- a/cloud-deploy-pipeline.groovy
+++ b/cloud-deploy-pipeline.groovy
@@ -98,8 +98,9 @@
node(slave_node) {
try {
// Set build-specific variables
- venv = "${env.WORKSPACE}/venv"
- venvPepper = "${env.WORKSPACE}/venvPepper"
+ def workspace = common.getWorkspace()
+ venv = "${workspace}/venv"
+ venvPepper = "${workspace}/venvPepper"
//
// Prepare machines
@@ -143,7 +144,7 @@
// create openstack env
openstack.setupOpenstackVirtualenv(venv, OPENSTACK_API_CLIENT)
- openstackCloud = openstack.createOpenstackEnv(
+ openstackCloud = openstack.createOpenstackEnv(venv,
OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS,
OPENSTACK_API_PROJECT, OPENSTACK_API_PROJECT_DOMAIN,
OPENSTACK_API_PROJECT_ID, OPENSTACK_API_USER_DOMAIN,
diff --git a/cvp-sanity.groovy b/cvp-sanity.groovy
index ed87cd6..7adca5a 100644
--- a/cvp-sanity.groovy
+++ b/cvp-sanity.groovy
@@ -1,6 +1,6 @@
/**
*
- * Launch sanity validation of the cloud
+ * Launch sanity verification of the cloud
*
* Expected parameters:
* SALT_MASTER_URL URL of Salt master
@@ -8,6 +8,7 @@
*
* SANITY_TESTS_SET Leave empty for full run or choose a file (test), e.g. test_mtu.py
* SANITY_TESTS_REPO CVP-sanity-checks repo to clone
+ * SANITY_TESTS_SETTINGS Additional envrionment variables for cvp-sanity-checks
* PROXY Proxy to use for cloning repo or for pip
*
*/
@@ -24,7 +25,7 @@
stage('Run Infra tests') {
sh "mkdir -p ${artifacts_dir}"
- validate.runSanityTests(SALT_MASTER_URL, SALT_MASTER_CREDENTIALS, SANITY_TESTS_SET, artifacts_dir)
+ validate.runSanityTests(SALT_MASTER_URL, SALT_MASTER_CREDENTIALS, SANITY_TESTS_SET, artifacts_dir, SANITY_TESTS_SETTINGS)
}
stage ('Publish results') {
archiveArtifacts artifacts: "${artifacts_dir}/*"
diff --git a/delete-broken-stacks-pipeline.groovy b/delete-broken-stacks-pipeline.groovy
index c68fe9e..df938ed 100644
--- a/delete-broken-stacks-pipeline.groovy
+++ b/delete-broken-stacks-pipeline.groovy
@@ -22,14 +22,15 @@
def openstackCloud
// value defaults
def openstackVersion = OPENSTACK_API_CLIENT ? OPENSTACK_API_CLIENT : 'liberty'
- def openstackEnv = "${env.WORKSPACE}/venv"
+ def workspace = common.getWorkspace()
+ def openstackEnv = "${workspace}/venv"
stage('Install OpenStack env') {
openstack.setupOpenstackVirtualenv(openstackEnv, openstackVersion)
}
stage('Connect to OpenStack cloud') {
- openstackCloud = openstack.createOpenstackEnv(OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
+ openstackCloud = openstack.createOpenstackEnv(openstackEnv, OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
openstack.getKeystoneToken(openstackCloud, openstackEnv)
}
diff --git a/generate-cookiecutter-products.groovy b/generate-cookiecutter-products.groovy
index 1fa3c43..a4b646e 100644
--- a/generate-cookiecutter-products.groovy
+++ b/generate-cookiecutter-products.groovy
@@ -45,7 +45,7 @@
print("Using context:\n" + COOKIECUTTER_TEMPLATE_CONTEXT)
stage ('Download Cookiecutter template') {
- if (COOKIECUTTER_TEMPLATE_BRANCH.startsWith('refs/changes/')) {
+ if (COOKIECUTTER_TEMPLATE_BRANCH.startsWith('refs/')) {
git.checkoutGitRepository(templateEnv, COOKIECUTTER_TEMPLATE_URL, 'master', COOKIECUTTER_TEMPLATE_CREDENTIALS)
dir(templateEnv) {
diff --git a/ironic-node-provision-pipeline.groovy b/ironic-node-provision-pipeline.groovy
index 1826100..3d2717b 100644
--- a/ironic-node-provision-pipeline.groovy
+++ b/ironic-node-provision-pipeline.groovy
@@ -40,7 +40,7 @@
test = new com.mirantis.mk.Test()
def python = new com.mirantis.mk.Python()
-def pepperEnv = "pepperEnv"
+def pepperEnv
def venv
def outputs = [:]
@@ -76,7 +76,9 @@
node("python") {
try {
// Set build-specific variables
- venv = "${env.WORKSPACE}/venv"
+ def workspace = common.getWorkspace()
+ venv = "${workspace}/venv"
+ venvPepper = "${workspace}/venvPepper"
def required_params = ['IRONIC_AUTHORIZATION_PROFILE', 'IRONIC_DEPLOY_NODES']
def missed_params = []
@@ -112,7 +114,7 @@
// create openstack env
openstack.setupOpenstackVirtualenv(venv, OPENSTACK_API_CLIENT)
- openstackCloud = openstack.createOpenstackEnv(
+ openstackCloud = openstack.createOpenstackEnv(venv,
OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS,
OPENSTACK_API_PROJECT, OPENSTACK_API_PROJECT_DOMAIN,
OPENSTACK_API_PROJECT_ID, OPENSTACK_API_USER_DOMAIN,
diff --git a/mk-k8s-cleanup-pipeline.groovy b/mk-k8s-cleanup-pipeline.groovy
index db5aa8a..b907709 100644
--- a/mk-k8s-cleanup-pipeline.groovy
+++ b/mk-k8s-cleanup-pipeline.groovy
@@ -25,14 +25,15 @@
// value defaults
def openstackVersion = OPENSTACK_API_CLIENT ? OPENSTACK_API_CLIENT : 'liberty'
- def openstackEnv = "${env.WORKSPACE}/venv"
+ def workspace = common.getWorkspace()
+ def openstackEnv = "${workspace}/venv"
stage('Install OpenStack env') {
openstack.setupOpenstackVirtualenv(openstackEnv, openstackVersion)
}
stage('Connect to OpenStack cloud') {
- openstackCloud = openstack.createOpenstackEnv(OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
+ openstackCloud = openstack.createOpenstackEnv(openstackEnv, OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
openstack.getKeystoneToken(openstackCloud, openstackEnv)
}
diff --git a/mk-k8s-simple-deploy-pipeline.groovy b/mk-k8s-simple-deploy-pipeline.groovy
index 39ddc9c..2a3653c 100644
--- a/mk-k8s-simple-deploy-pipeline.groovy
+++ b/mk-k8s-simple-deploy-pipeline.groovy
@@ -31,7 +31,6 @@
test = new com.mirantis.mk.Test()
def python = new com.mirantis.mk.Python()
-def pepperEnv = "pepperEnv"
artifacts_dir = "_artifacts"
timeout(time: 12, unit: 'HOURS') {
node {
@@ -41,8 +40,9 @@
// value defaults
def openstackVersion = OPENSTACK_API_CLIENT ? OPENSTACK_API_CLIENT : 'liberty'
- def openstackEnv = "${env.WORKSPACE}/venv"
-
+ def workspace = common.getWorkspace()
+ def openstackEnv = "${workspace}/venv"
+ def pepperEnv = "${workspace}/pepperEnv"
if (HEAT_STACK_NAME == "") {
HEAT_STACK_NAME = BUILD_TAG
}
@@ -56,7 +56,7 @@
}
stage('Connect to OpenStack cloud') {
- openstackCloud = openstack.createOpenstackEnv(OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT,
+ openstackCloud = openstack.createOpenstackEnv(openstackEnv, OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT,
"", OPENSTACK_API_PROJECT_DOMAIN_ID, OPENSTACK_API_USER_DOMAIN_ID, OPENSTACK_API_VERSION)
openstack.getKeystoneToken(openstackCloud, openstackEnv)
}
diff --git a/mk-maaas-deploy-pipeline.groovy b/mk-maaas-deploy-pipeline.groovy
index 924019e..9a2244e 100644
--- a/mk-maaas-deploy-pipeline.groovy
+++ b/mk-maaas-deploy-pipeline.groovy
@@ -32,8 +32,9 @@
def saltMaster
// value defaults
+ def workspace = common.getWorkspace()
def openstackVersion = OPENSTACK_API_CLIENT ? OPENSTACK_API_CLIENT : "liberty"
- def openstackEnv = "${env.WORKSPACE}/venv"
+ def openstackEnv = "${workspace}/venv"
stage ('Download Heat templates') {
git.checkoutGitRepository('template', HEAT_TEMPLATE_URL, HEAT_TEMPLATE_BRANCH, HEAT_TEMPLATE_CREDENTIALS)
@@ -44,7 +45,7 @@
}
stage('Connect to OpenStack cloud') {
- openstackCloud = openstack.createOpenstackEnv(OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
+ openstackCloud = openstack.createOpenstackEnv(openstackEnv, OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
openstack.getKeystoneToken(openstackCloud, openstackEnv)
}
diff --git a/test-salt-models-pipeline.groovy b/test-salt-models-pipeline.groovy
index 3ac1275..fa784ea 100644
--- a/test-salt-models-pipeline.groovy
+++ b/test-salt-models-pipeline.groovy
@@ -158,12 +158,9 @@
stage("test-nodes") {
if(checkouted) {
def modifiedClusters = null
-
- if (gerritRef) {
- checkChange = sh(script: "git diff-tree --no-commit-id --name-only -r HEAD | grep -v classes/cluster", returnStatus: true)
- if (checkChange == 1) {
- modifiedClusters = sh(script: "git diff-tree --no-commit-id --name-only -r HEAD | grep classes/cluster/ | awk -F/ '{print \$3}' | uniq", returnStdout: true).tokenize()
- }
+ def checkChange = sh(script: "git diff-tree --no-commit-id --name-only -r HEAD | grep -v classes/cluster", returnStatus: true)
+ if (checkChange == 1) {
+ modifiedClusters = sh(script: "git diff-tree --no-commit-id --name-only -r HEAD | grep classes/cluster/ | awk -F/ '{print \$3}' | uniq", returnStdout: true).tokenize()
}
def infraYMLs = sh(script: "find ./classes/ -regex '.*cluster/[-_a-zA-Z0-9]*/[infra/]*init\\.yml' -exec grep -il 'cluster_name' {} \\;", returnStdout: true).tokenize()