Added checking of already created stacks to deploy pipeline
Change-Id: I192b6111639ef8d4824b955dc9f601c4128de9a5
diff --git a/lab-pipeline.groovy b/lab-pipeline.groovy
index 5a26ba5..b00c018 100644
--- a/lab-pipeline.groovy
+++ b/lab-pipeline.groovy
@@ -47,6 +47,7 @@
salt = new com.mirantis.mk.Salt()
test = new com.mirantis.mk.Test()
+_MAX_PERMITTED_STACKS = 2
overwriteFile = "/srv/salt/reclass/classes/cluster/overwrite.yml"
timestamps {
@@ -89,7 +90,15 @@
openstack.setupOpenstackVirtualenv(openstackEnv, openstackVersion)
openstackCloud = openstack.createOpenstackEnv(OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
openstack.getKeystoneToken(openstackCloud, openstackEnv)
-
+ //
+ // Verify possibility of create stack for given user and stack type
+ //
+ wrap([$class: 'BuildUser']) {
+ def existingStacks = openstack.getStacksForNameContains(openstackCloud, "${env.BUILD_USER_ID}-${JOB_NAME}", openstackEnv)
+ if(existingStacks.size() > _MAX_PERMITTED_STACKS){
+ throw new Exception("You cannot create new stack, you already have ${_MAX_PERMITTED_STACKS} stacks of this type (${JOB_NAME}). \nStack names: ${existingStacks}")
+ }
+ }
// launch stack
if (HEAT_STACK_REUSE.toBoolean() == false) {
stage('Launch new Heat stack') {