diff --git a/src/com/mirantis/mk/KaasUtils.groovy b/src/com/mirantis/mk/KaasUtils.groovy
index bc264d5..9079289 100644
--- a/src/com/mirantis/mk/KaasUtils.groovy
+++ b/src/com/mirantis/mk/KaasUtils.groovy
@@ -1110,29 +1110,36 @@
 * @return                  ([]string) List of selected metros
 *
 **/
-def getEquinixMetrosWithCapacity(nodeCount = 10, nodeType = 'c3.small.x86', version = '0.9.0') {
+def getEquinixMetrosWithCapacity(nodeCount = 50, nodeType = 'c3.small.x86', version = '0.9.0') {
     def common = new com.mirantis.mk.Common()
     def metalUrl = "https://artifactory.mcp.mirantis.net:443/artifactory/binary-dev-kaas-local/core/bin/mirror/metal-${version}-linux"
     def metros = []
     def out = ''
-    def retries = 10 // number of retries
+    def retries = 3 // number of retries
     def i = 0
     def delay = 60 // 1 minute sleep
+    def metal = './metal --config metal.yaml'
     try {
         sh "curl -o metal -# ${metalUrl} && chmod +x metal"
         withCredentials([string(credentialsId: env.KAAS_EQUINIX_API_TOKEN, variable: 'KAAS_EQUINIX_API_TOKEN')]) {
             sh 'echo "project-id: ${KAAS_EQUINIX_PROJECT_ID}\ntoken: ${KAAS_EQUINIX_API_TOKEN}" >metal.yaml'
         }
-        common.infoMsg("Selecting available Equinix metro with free ${nodeCount} ${nodeType} hosts")
         while (metros.size() == 0 && i < retries) {
-            common.infoMsg("Try ${i+1}/${retries} ...")
+            common.infoMsg("Selecting available Equinix metro with free ${nodeCount} ${nodeType} hosts, try ${i+1}/${retries} ...")
             if (i > 0 ) { // skip sleep on first step
                 sleep(delay)
             }
-            out = sh(script: "./metal --config metal.yaml capacity get -m -P ${nodeType}|awk '/${nodeType}/ {print \$2}'|paste -s -d,|xargs ./metal --config metal.yaml capacity check -P ${nodeType} -q ${nodeCount} -m|grep true|awk '{print \$2}'|paste -s -d,", returnStdout: true).trim()
+            out = sh(script: "${metal} capacity get -m -P ${nodeType}|awk '/${nodeType}/ {print \$2}'|paste -s -d,|xargs ${metal} capacity check -P ${nodeType} -q ${nodeCount} -m|grep true|awk '{print \$2}'|paste -s -d,", returnStdout: true).trim()
             metros = out.tokenize(',')
+            if (metros.size() == 0) {
+                nodeCount -= 10
+            }
             i++
         }
+        if (metros.size() > 0) {
+            m = metros.size() > 1 ? "${metros[0]},${metros[1]}" : "${metros[0]}"
+            sh "${metal} capacity check -P ${nodeType} -m ${m} -q ${nodeCount}"
+        }
     } catch (Exception e) {
         common.errorMsg "Exception: '${e}'"
         return []
