aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/openstack/shaker/shaker.py
diff options
context:
space:
mode:
Diffstat (limited to 'functest/opnfv_tests/openstack/shaker/shaker.py')
-rw-r--r--functest/opnfv_tests/openstack/shaker/shaker.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/functest/opnfv_tests/openstack/shaker/shaker.py b/functest/opnfv_tests/openstack/shaker/shaker.py
index fd31ea689..917c65980 100644
--- a/functest/opnfv_tests/openstack/shaker/shaker.py
+++ b/functest/opnfv_tests/openstack/shaker/shaker.py
@@ -19,6 +19,7 @@ and list of tests to execute.
import logging
import os
+import json
import scp
from functest.core import singlevm
@@ -31,23 +32,26 @@ class Shaker(singlevm.SingleVm2):
__logger = logging.getLogger(__name__)
- filename = '/home/opnfv/functest/images/shaker-image.qcow2'
+ filename = '/home/opnfv/functest/images/shaker-image-1.3.0+stretch.qcow2'
flavor_ram = 512
flavor_vcpus = 1
flavor_disk = 3
- username = 'ubuntu'
+ username = 'debian'
port = 9000
ssh_connect_loops = 12
create_server_timeout = 300
+ check_console_loop = 12
shaker_timeout = '3600'
quota_instances = -1
+ quota_cores = -1
+ check_console_loop = 12
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_hypervisors() < 2:
self.__logger.warning("Shaker requires at least 2 hypervisors")
self.is_skipped = True
self.project.clean()
@@ -85,7 +89,8 @@ class Shaker(singlevm.SingleVm2):
domain=self.project.domain.id)
self.orig_cloud.set_compute_quotas(
self.project.project.name,
- instances=self.quota_instances)
+ 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'):
@@ -100,10 +105,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,'
@@ -127,6 +132,13 @@ class Shaker(singlevm.SingleVm2):
except scp.SCPException:
self.__logger.exception("cannot get report files")
return 1
+ with open(os.path.join(self.res_dir, 'report.json')) as json_file:
+ data = json.load(json_file)
+ for value in data["records"].values():
+ if value["status"] != "ok":
+ self.__logger.error(
+ "%s failed\n%s", value["scenario"], value["stderr"])
+ return 1
return stdout.channel.recv_exit_status()
def clean(self):