Merge "Add check of metadata structure"
diff --git a/src/com/mirantis/mk/ReleaseWorkflow.groovy b/src/com/mirantis/mk/ReleaseWorkflow.groovy
index da17fb9..8da3c6d 100644
--- a/src/com/mirantis/mk/ReleaseWorkflow.groovy
+++ b/src/com/mirantis/mk/ReleaseWorkflow.groovy
@@ -62,6 +62,10 @@
     checkoutReleaseMetadataRepo(params)
 
     docker.image(appDockerImage).inside("--volume ${repoDir}:/workspace") {
+        checkResult = sh(script: "metadata-app --path /workspace/metadata ${opts} validate --structure", returnStatus: true)
+        if (checkResult != 0) {
+            throw new Exception("Invalid metadata structure")
+        }
         result = sh(script: "metadata-app --path /workspace/metadata ${opts} get --key ${key}", returnStdout: true).trim()
     }
     common.infoMsg("""
@@ -161,6 +165,10 @@
                     }
                     try {
                         sh "metadata-app --path /workspace/metadata update --create --key '${keyArr[i]}' ${valueExpression}"
+                        checkResult = sh(script: "metadata-app --path /workspace/metadata ${opts} validate --structure", returnStatus: true)
+                        if (checkResult != 0) {
+                            throw new Exception("Invalid metadata structure")
+                        }
                     } finally {
                         if (valuesFromFile){
                             sh "rm ${tmpFile}"