Merge "Pre-create dir path with dummy file if required"
diff --git a/src/com/mirantis/mk/ReleaseWorkflow.groovy b/src/com/mirantis/mk/ReleaseWorkflow.groovy
index 51f6218..d2d0e7d 100644
--- a/src/com/mirantis/mk/ReleaseWorkflow.groovy
+++ b/src/com/mirantis/mk/ReleaseWorkflow.groovy
@@ -82,9 +82,10 @@
* - crTopic
* - crAuthorName
* - crAuthorEmail
+ * @param dirdepth level of creation dirs from key param
*/
-def updateReleaseMetadata(String key, String value, Map params) {
+def updateReleaseMetadata(String key, String value, Map params, Integer dirdepth = 0) {
String gitCredentialsId = params.get('metadataCredentialsId', 'mcp-ci-gerrit')
String metadataRepoUrl = params.get('metadataGitRepoUrl', "ssh://${gitCredentialsId}@gerrit.mcp.mirantis.net:29418/mcp/artifact-metadata")
String metadataGerritBranch = params.get('metadataGitRepoBranch', 'master')
@@ -136,6 +137,23 @@
ChangeId = ''
git.createGitBranch(repoDir, crTopic)
}
+
+ def keySize = key.split(':').size() - 1
+ if (dirdepth > 0 && dirdepth - 1 <= keySize) {
+ def dirPath = metadataDir + key.split(':')[0..dirdepth - 1].join('/')
+ if (!new File(dirPath).exists()) {
+ File newDirs = new File(dirPath)
+ newDirs.mkdirs()
+ }
+ if (dirdepth - 1 != keySize) {
+ def pathToDummyFile = dirPath + '/' + key.split(':')[dirdepth] + '.yml'
+ if (!new File(pathToDummyFile).exists()) {
+ File dummyFile = new File(pathToDummyFile)
+ dummyFile.write ''
+ }
+ }
+ }
+
cmdText = "python '${repoDir}/utils/app.py' --path '${metadataDir}' update --key '${key}' --value '${value}'"
python.runVirtualenvCommand(venvDir, cmdText)
commitMessage =