Ease debugging Shaker
[functest.git] / functest / opnfv_tests / openstack / shaker / shaker.py
index 995a10b..d7f97c1 100644 (file)
@@ -40,13 +40,15 @@ class Shaker(singlevm.SingleVm2):
     ssh_connect_loops = 12
     create_server_timeout = 300
     shaker_timeout = '3600'
+    quota_instances = -1
+    quota_cores = -1
 
     def __init__(self, **kwargs):
         super(Shaker, self).__init__(**kwargs)
         self.role = None
 
     def check_requirements(self):
-        if len(self.orig_cloud.list_hypervisors()) < 2:
+        if self.count_active_hypervisors() < 2:
             self.__logger.warning("Shaker requires at least 2 hypervisors")
             self.is_skipped = True
             self.project.clean()
@@ -82,6 +84,10 @@ class Shaker(singlevm.SingleVm2):
             "heat_stack_owner", user=self.project.user.id,
             project=self.project.project.id,
             domain=self.project.domain.id)
+        self.orig_cloud.set_compute_quotas(
+            self.project.project.name,
+            instances=self.quota_instances,
+            cores=self.quota_cores)
         scpc = scp.SCPClient(self.ssh.get_transport())
         scpc.put('/home/opnfv/functest/conf/env_file', remote_path='~/')
         if os.environ.get('OS_CACERT'):
@@ -96,10 +102,10 @@ class Shaker(singlevm.SingleVm2):
             'unset OS_TENANT_NAME && '
             'unset OS_TENANT_ID && '
             'unset OS_ENDPOINT_TYPE && '
-            'export OS_PASSWORD={} && '
+            'export OS_PASSWORD="{}" && '
             '{}'
             'env && '
-            'timeout {} shaker --image-name {} --flavor-name {} '
+            'timeout {} shaker --debug --image-name {} --flavor-name {} '
             '--server-endpoint {}:9000 --external-net {} --dns-nameservers {} '
             '--scenario openstack/full_l2,'
             'openstack/full_l3_east_west,'
@@ -113,8 +119,8 @@ class Shaker(singlevm.SingleVm2):
                 self.shaker_timeout, self.image.name, self.flavor.name,
                 self.fip.floating_ip_address, self.ext_net.id,
                 env.get('NAMESERVER')))
-        self.__logger.info("output:\n%s", stdout.read())
-        self.__logger.info("error:\n%s", stderr.read())
+        self.__logger.info("output:\n%s", stdout.read().decode("utf-8"))
+        self.__logger.info("error:\n%s", stderr.read().decode("utf-8"))
         if not os.path.exists(self.res_dir):
             os.makedirs(self.res_dir)
         try: