https enabled checking 41/36541/2
authorMatthewLi <matthew.lijun@huawei.com>
Tue, 27 Jun 2017 04:14:24 +0000 (00:14 -0400)
committerMatthewLi <matthew.lijun@huawei.com>
Tue, 27 Jun 2017 12:11:55 +0000 (08:11 -0400)
JIRA: DOVETAIL-456

before to check OS_CACERT and OS_INSECURE when using
https + credential or + no credential,
there's a need to check if https enabled.
error log
https://build.opnfv.org/ci/view/dovetail/job/dovetail-fuel-baremetal-proposed_tests-danube/37/console

Change-Id: Icdf17541fe6cf64b2f000d424c8d4dcc28cfd371
Signed-off-by: MatthewLi <matthew.lijun@huawei.com>
dovetail/container.py
dovetail/utils/dovetail_utils.py

index a1e213d..9f624f3 100644 (file)
@@ -173,18 +173,24 @@ class Container(object):
                             hosts_config_path)
 
         cacert_volume = ""
+        https_enabled = dt_utils.check_https_enabled(cls.logger)
         cacert = os.getenv('OS_CACERT',)
-        if cacert is not None:
-            if not os.path.isfile(cacert):
-                cls.logger.error("env variable 'OS_CACERT' is set to %s"
-                                 "but the file does not exist", cacert)
-                return None
-            elif not dovetail_config['config_dir'] in cacert:
-                cls.logger.error("OS_CACERT file has to be put in %s, which"
-                                 "can be mount into container",
-                                 dovetail_config['config_dir'])
-                return None
-            cacert_volume = ' -v %s:%s ' % (cacert, cacert)
+        if https_enabled == 0:
+            cls.logger.info("https enabled...")
+            if cacert is not None:
+                if not os.path.isfile(cacert):
+                    cls.logger.error("env variable 'OS_CACERT' is set to %s"
+                                     "but the file does not exist", cacert)
+                    return None
+                elif not dovetail_config['config_dir'] in cacert:
+                    cls.logger.error("credential file has to be put in %s,"
+                                     "which can be mount into container",
+                                     dovetail_config['config_dir'])
+                    return None
+                cacert_volume = ' -v %s:%s ' % (cacert, cacert)
+            else:
+                cls.logger.warn("https enabled, OS_CACERT not set, insecure"
+                                "connection used or OS_CACERT missed")
 
         result_volume = ' -v %s:%s ' % (dovetail_config['result_dir'],
                                         dovetail_config[type]['result']['dir'])
index e4284ad..aeb8ea0 100644 (file)
@@ -118,14 +118,25 @@ def source_env(env_file):
                 os.environ.update({match[0]: match[1]})
 
 
+def check_https_enabled(logger=None):
+    logger.info("checking if https enabled or not...")
+    cmd = "openstack catalog show identity |awk '/public/ {print $4}'| \
+        grep 'https'"
+    ret, msg = exec_cmd(cmd, logger)
+    return ret
+
+
 def get_ext_net_name(env_file, logger=None):
+    https_enabled = check_https_enabled(logger)
     insecure_option = ''
     insecure = os.getenv('OS_INSECURE',)
-    if insecure == "true" or insecure == "True":
-        insecure_option = ' --insecure '
-    else:
-        print "Warn: env variable OS_INSECUE is %s, if https+no credential \
-    used, it should be set as true" % insecure
+    if https_enabled == 0:
+        logger.info("https enabled...")
+        if insecure.lower() == "true":
+            insecure_option = ' --insecure '
+        else:
+            logger.warn("env variable OS_INSECURE is %s, if https + no"
+                        "credential used, should be set as True" % insecure)
 
     cmd_check = "openstack %s network list" % insecure_option
     ret, msg = exec_cmd(cmd_check, logger)