Improved generating cookiecutter with custom py script

Change-Id: I81583691625294cbd041db5b050be73305962fc0
diff --git a/generate-cookiecutter-products-auto.groovy b/generate-cookiecutter-products-auto.groovy
index 2a8f0ff..dfd3118 100644
--- a/generate-cookiecutter-products-auto.groovy
+++ b/generate-cookiecutter-products-auto.groovy
@@ -24,8 +24,9 @@
 
         try {
             def templateContext = readYaml text: COOKIECUTTER_TEMPLATE_CONTEXT
+            def templateBaseDir = "${env.WORKSPACE}/template"
             def templateDir = "${templateEnv}/template/dir"
-            def templateOutputDir = "${env.WORKSPACE}/template"
+            def templateOutputDir = templateBaseDir
             def cutterEnv = "${env.WORKSPACE}/cutter"
             def jinjaEnv = "${env.WORKSPACE}/jinja"
             def clusterName = templateContext.default_context.cluster_name
@@ -52,7 +53,7 @@
                 sh "mkdir -p ${templateOutputDir}"
                 sh "mkdir -p ${outputDestination}"
                 python.setupCookiecutterVirtualenv(cutterEnv)
-                python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                 sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
             }
 
@@ -62,7 +63,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/cicd"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -73,7 +74,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/opencontrail"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -84,7 +85,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/kubernetes"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -95,7 +96,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/openstack"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -106,7 +107,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/stacklight"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
diff --git a/generate-cookiecutter-products.groovy b/generate-cookiecutter-products.groovy
index 4092068..cf40b14 100644
--- a/generate-cookiecutter-products.groovy
+++ b/generate-cookiecutter-products.groovy
@@ -30,7 +30,8 @@
         try {
             def templateContext = readYaml text: COOKIECUTTER_TEMPLATE_CONTEXT
             def templateDir = "${templateEnv}/template/dir"
-            def templateOutputDir = "${env.WORKSPACE}/template"
+            def templateBaseDir = "${env.WORKSPACE}/template"
+            def templateOutputDir = templateBaseDir
             def cutterEnv = "${env.WORKSPACE}/cutter"
             def jinjaEnv = "${env.WORKSPACE}/jinja"
             def clusterName = templateContext.default_context.cluster_name
@@ -57,7 +58,7 @@
                 sh "mkdir -p ${templateOutputDir}"
                 sh "mkdir -p ${outputDestination}"
                 python.setupCookiecutterVirtualenv(cutterEnv)
-                python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                 sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
             }
 
@@ -67,7 +68,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/cicd"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -78,7 +79,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/opencontrail"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -89,7 +90,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/kubernetes"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -100,7 +101,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/openstack"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }
@@ -111,7 +112,7 @@
                     templateOutputDir = "${env.WORKSPACE}/template/output/stacklight"
                     sh "mkdir -p ${templateOutputDir}"
                     python.setupCookiecutterVirtualenv(cutterEnv)
-                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv)
+                    python.buildCookiecutterTemplate(templateDir, COOKIECUTTER_TEMPLATE_CONTEXT, templateOutputDir, cutterEnv, templateBaseDir)
                     sh "mv -v ${templateOutputDir}/${clusterName}/* ${outputDestination}"
                 }
             }