import scp
from functest.core import singlevm
+from functest.utils import env
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 self.count_active_hypervisors() < 2:
+ self.__logger.warning("Shaker requires at least 2 hypervisors")
+ self.is_skipped = True
+ self.project.clean()
+
def prepare(self):
super(Shaker, self).prepare()
self.cloud.create_security_group_rule(
"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'):
'export OS_PROJECT_ID={} && '
'unset OS_TENANT_NAME && '
'unset OS_TENANT_ID && '
- 'export OS_PASSWORD={} && '
+ 'unset OS_ENDPOINT_TYPE && '
+ 'export OS_PASSWORD="{}" && '
'{}'
'env && '
- 'timeout {} shaker --image-name {} --flavor-name {} '
- '--server-endpoint {}:9000 --scenario '
- 'openstack/full_l2,'
+ 'timeout {} shaker --debug --image-name {} --flavor-name {} '
+ '--server-endpoint {}:9000 --external-net {} --dns-nameservers {} '
+ '--scenario openstack/full_l2,'
'openstack/full_l3_east_west,'
'openstack/full_l3_north_south,'
'openstack/perf_l3_north_south '
'export OS_CACERT=~/os_cacert && ' if os.environ.get(
'OS_CACERT') else '',
self.shaker_timeout, self.image.name, self.flavor.name,
- self.fip.floating_ip_address))
- self.__logger.info("output:\n%s", stdout.read())
- self.__logger.info("error:\n%s", stderr.read())
+ self.fip.floating_ip_address, self.ext_net.id,
+ env.get('NAMESERVER')))
+ 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: