Merge "Improve downloadchange method"
diff --git a/src/com/mirantis/mk/KaasUtils.groovy b/src/com/mirantis/mk/KaasUtils.groovy
index 0044932..9ebdd9d 100644
--- a/src/com/mirantis/mk/KaasUtils.groovy
+++ b/src/com/mirantis/mk/KaasUtils.groovy
@@ -57,6 +57,7 @@
     def upgradeMgmt = env.UPGRADE_MGMT_CLUSTER ? env.UPGRADE_MGMT_CLUSTER.toBoolean() : false
     def runUie2e = env.RUN_UI_E2E ? env.RUN_UI_E2E.toBoolean() : false
     def runMgmtConformance = env.RUN_MGMT_CFM ? env.RUN_MGMT_CFM.toBoolean() : false
+    def runMgmtLMA = env.RUN_MGMT_LMA ? env.RUN_MGMT_LMA.toBoolean() : false
     def runChildConformance = env.RUN_CHILD_CFM ? env.RUN_CHILD_CFM.toBoolean() : false
     def fetchServiceBinaries = env.FETCH_BINARIES_FROM_UPSTREAM ? env.FETCH_BINARIES_FROM_UPSTREAM.toBoolean() : false
     // multiregion configuration from env variable: comma-separated string in form $mgmt_provider,$regional_provider
@@ -77,6 +78,8 @@
     def awsOnDemandDemo = env.ALLOW_AWS_ON_DEMAND ? env.ALLOW_AWS_ON_DEMAND.toBoolean() : false
     def equinixOnDemandDemo = env.ALLOW_EQUINIX_ON_DEMAND ? env.ALLOW_EQUINIX_ON_DEMAND.toBoolean() : false
     def equinixOnAwsDemo = env.EQUINIX_ON_AWS_DEMO ? env.EQUINIX_ON_AWS_DEMO.toBoolean() : false
+    def azureOnAwsDemo = env.AZURE_ON_AWS_DEMO ? env.AZURE_ON_AWS_DEMO.toBoolean() : false
+    def azureOnDemandDemo = env.ALLOW_AZURE_ON_DEMAND ? env.ALLOW_AZURE_ON_DEMAND.toBoolean() : false
     def enableVsphereDemo = true
     def enableOSDemo = true
     def enableBMDemo = true
@@ -123,6 +126,9 @@
         runChildConformance = true
         deployChild = true
     }
+    if (commitMsg ==~ /(?s).*\[mgmt-lma\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*mgmt-lma.*/) {
+        runMgmtLMA = true
+    }
     if (commitMsg ==~ /(?s).*\[child-offline\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*child-offline.*/) {
         proxyConfig['childOffline'] = true
         deployChild = true
@@ -139,15 +145,27 @@
         equinixOnAwsDemo = true
         common.warningMsg('Forced running child cluster deployment on EQUINIX METAL provider based on AWS management cluster, triggered on patchset using custom keyword: \'[equinix-on-aws]\' ')
     }
-    if (commitMsg ==~ /(?s).*\[aws-demo\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*aws-demo.*/ || attachBYO || upgradeBYO || seedMacOs || equinixOnAwsDemo) {
+    if (commitMsg ==~ /(?s).*\[azure-on-aws\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*azure-on-aws.*/) {
+        azureOnAwsDemo = true
+        common.warningMsg('Forced running child cluster deployment on Azure provider based on AWS management cluster, triggered on patchset using custom keyword: \'[azure-on-aws]\' ')
+    }
+    if (commitMsg ==~ /(?s).*\[aws-demo\].*/                 ||
+        env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*aws-demo.*/ ||
+        attachBYO                                            ||
+        upgradeBYO                                           ||
+        seedMacOs                                            ||
+        equinixOnAwsDemo                                     ||
+        azureOnAwsDemo) {
+
         awsOnDemandDemo = true
-        if (attachBYO || upgradeBYO || seedMacOs || equinixOnAwsDemo) {
-            common.warningMsg('Forced running additional kaas deployment with AWS provider, due applied trigger cross dependencies, follow docs to clarify info')
-        }
+        common.warningMsg('Running additional kaas deployment with AWS provider, may be forced due applied trigger cross dependencies, follow docs to clarify info')
     }
     if (commitMsg ==~ /(?s).*\[equinix-demo\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*equinix-demo\.*/) {
         equinixOnDemandDemo = true
     }
+    if (commitMsg ==~ /(?s).*\[azure-demo\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*azure-demo\.*/) {
+        azureOnDemandDemo = true
+    }
     if (commitMsg ==~ /(?s).*\[disable-os-demo\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*disable-os-demo\.*/) {
         enableOSDemo = false
         common.errorMsg('Openstack demo deployment will be aborted, VF -1 will be set')
@@ -211,6 +229,7 @@
             vsphere:  'internal-ci',
             aws: 'public-ci',
             equinix: 'public-ci',
+            azure: 'public-ci',
         ],
     ]
 
@@ -229,10 +248,13 @@
         Attached BYO cluster upgrade test scheduled: ${upgradeBYO}
         Mgmt cluster release upgrade scheduled: ${upgradeMgmt}
         Mgmt conformance testing scheduled: ${runMgmtConformance}
+        Mgmt LMA deployment and testing scheduled: ${runMgmtLMA}
         Mgmt UI e2e testing scheduled: ${runUie2e}
         AWS provider deployment scheduled: ${awsOnDemandDemo}
         Equinix provider deployment scheduled: ${equinixOnDemandDemo}
         Equinix@AWS child cluster deployment scheduled: ${equinixOnAwsDemo}
+        Azure provider deployment scheduled: ${azureOnDemandDemo}
+        Azure@AWS child cluster deployment scheduled: ${azureOnAwsDemo}
         VSPHERE provider deployment scheduled: ${enableVsphereDemo}
         OS provider deployment scheduled: ${enableOSDemo}
         BM provider deployment scheduled: ${enableBMDemo}
@@ -253,10 +275,13 @@
         upgradeMgmtEnabled         : upgradeMgmt,
         runUie2eEnabled            : runUie2e,
         runMgmtConformanceEnabled  : runMgmtConformance,
+        runMgmtLmaEnabled          : runMgmtLMA,
         fetchServiceBinariesEnabled: fetchServiceBinaries,
         awsOnDemandDemoEnabled     : awsOnDemandDemo,
         equinixOnDemandDemoEnabled : equinixOnDemandDemo,
         equinixOnAwsDemoEnabled    : equinixOnAwsDemo,
+        azureOnDemandDemoEnabled   : azureOnDemandDemo,
+        azureOnAwsDemoEnabled      : azureOnAwsDemo,
         vsphereDemoEnabled         : enableVsphereDemo,
         vsphereOnDemandDemoEnabled : enableVsphereDemo, // TODO: remove after MCC 2.7 is out
         bmDemoEnabled              : enableBMDemo,
@@ -490,6 +515,9 @@
         if (triggers.equinixOnDemandDemoEnabled) {
             platforms.add('equinix')
         }
+        if (triggers.azureOnDemandDemoEnabled) {
+            platforms.add('azure')
+        }
         if (triggers.vsphereDemoEnabled) {
             platforms.add('vsphere')
         }
@@ -513,6 +541,7 @@
         booleanParam(name: 'UPGRADE_MGMT_CLUSTER', value: triggers.upgradeMgmtEnabled),
         booleanParam(name: 'RUN_UI_E2E', value: triggers.runUie2eEnabled),
         booleanParam(name: 'RUN_MGMT_CFM', value: triggers.runMgmtConformanceEnabled),
+        booleanParam(name: 'RUN_MGMT_LMA', value: triggers.runMgmtLmaEnabled),
         booleanParam(name: 'DEPLOY_CHILD_CLUSTER', value: triggers.deployChildEnabled),
         booleanParam(name: 'UPGRADE_CHILD_CLUSTER', value: triggers.upgradeChildEnabled),
         booleanParam(name: 'ATTACH_BYO', value: triggers.attachBYOEnabled),
@@ -521,6 +550,8 @@
         booleanParam(name: 'ALLOW_AWS_ON_DEMAND', value: triggers.awsOnDemandDemoEnabled),
         booleanParam(name: 'ALLOW_EQUINIX_ON_DEMAND', value: triggers.equinixOnDemandDemoEnabled),
         booleanParam(name: 'EQUINIX_ON_AWS_DEMO', value: triggers.equinixOnAwsDemoEnabled),
+        booleanParam(name: 'ALLOW_AZURE_ON_DEMAND', value: triggers.azureOnDemandDemoEnabled),
+        booleanParam(name: 'AZURE_ON_AWS_DEMO', value: triggers.azureOnAwsDemoEnabled),
     ]
 
     // customize multiregional demo
@@ -537,7 +568,10 @@
         parameters.addAll(additionalParameters)
     }
 
-    if (triggers.awsOnDemandDemoEnabled || triggers.equinixOnDemandDemoEnabled) {
+    if (triggers.awsOnDemandDemoEnabled     ||
+        triggers.equinixOnDemandDemoEnabled ||
+        triggers.azureOnDemandDemoEnabled) {
+
         common.infoMsg('Public provider demo triggered, need to sync artifacts in the public-ci cdn..')
         switch (component) {
             case 'iam':