コード例 #1
0
 def __init__(self):
     try:
         super(MultipleVMTest, self).__init__()
         random = str(uuid.uuid4())[:5]
         network_name = "net-" + random
         router_name = "router-" + random
         sec_group_name = "sg-" + random
         self.net_base = Base(network_name=network_name,
                              router_name=router_name,
                              sec_group_name=sec_group_name)
         self.compute = Compute_base()
     except Exception as e:
         LOG.warning(
             _LW('Init test env failed, msg: %(msg)s, traceback: '
                 '%(tb)s.'), {
                     'msg': e,
                     'tb': traceback.format_exc()
                 })
         raise exceptions.InitFailed
コード例 #2
0
# !/usr/bin/python
import sys
import traceback

from automation.common import exceptions
from automation import config
from automation.i18n import _LW
from oslo_log import log as logging
from testcases.compute_tests.base_compute import Base

CONF = config.CONF
LOG = logging.getLogger(__name__)

if __name__ == '__main__':
    try:
        server = Base()
    except Exception as e:
        LOG.warning(
            _LW('Init test env failed, msg: %(msg)s, traceback: '
                '%(tb)s.'), {
                    'msg': e,
                    'tb': traceback.format_exc()
                })
        raise exceptions.InitFailed
    try:
        server_created = server.create_server()
        server_details = server.show_server(server_created['id'])
        server.power_off(server_created['id'])
        server_current_qos = str(
            server.get_server_current_qos(server_created['id']))
        qos_list = server.get_qos_types()
コード例 #3
0
    def live_migration_test(self):
        try:
            compute = Base()
        except Exception as err:
            LOG.error(_LE('init env failed for %s'), str(err))
            raise exceptions.ServerFault

        try:
            instance = compute.create_server()
            compute.show_server(instance['id'])
            orig_host = compute.get_server_host(instance['id'])

            # when migrate, the status transfer from MIGRATING
            # TO ACTIVE
            # do not use block migration and no host is assigned
            self.manager.servers_client.live_migrate_server(
                instance['id'], None, False)

            compute._check_server_status_interval(instance['id'],
                                                  'ACTIVE', interval=10,
                                                  timeout=60)

            # check the host attributes
            curr_host = compute.get_server_host(instance['id'])
            LOG.debug(('the origin host %(orig)s the current host'
                       ' %(curr)s'),
                      {'orig': orig_host, 'curr': curr_host})
            if curr_host is not None and orig_host == curr_host:
                raise exceptions.ServerMigrateFailed()
            LOG.info(_LI('live migrate of %s successful'), instance['id'])
        except Exception as err:
            LOG.error(_LE('migrate server failed for %s'), str(err))
            compute.delete_all()
            raise exceptions.ServerMigrateFailed()
        finally:
            compute.delete_all()
コード例 #4
0
import traceback

from automation.common import exceptions
from automation import config
from automation.i18n import _LW
from oslo_log import log as logging
from testcases.compute_tests.base_compute import Base

CONF = config.CONF
LOG = logging.getLogger(__name__)

instance_types = [str(i) for i in range(1, 6)]

if __name__ == '__main__':
    try:
        server = Base()
    except Exception as e:
        LOG.warning(
            _LW('Init test env failed, msg: %(msg)s, traceback: '
                '%(tb)s.'), {
                    'msg': e,
                    'tb': traceback.format_exc()
                })
        raise exceptions.InitFailed
    try:
        server_created = server.create_server()
        server_details = server.show_server(server_created['id'])
        original_host = server_details.get("OS-EXT-SRV-ATTR:host")
        original_flavor = server_details.get("flavor").get("id")
        server.resize(server_created['id'], CONF.compute.flavor_name_alt)
        server_details = server.show_server(server_created['id'])
コード例 #5
0
class MultipleVMTest(Base):
    def __init__(self):
        try:
            super(MultipleVMTest, self).__init__()
            random = str(uuid.uuid4())[:5]
            network_name = "net-" + random
            router_name = "router-" + random
            sec_group_name = "sg-" + random
            self.net_base = Base(network_name=network_name,
                                 router_name=router_name,
                                 sec_group_name=sec_group_name)
            self.compute = Compute_base()
        except Exception as e:
            LOG.warning(
                _LW('Init test env failed, msg: %(msg)s, traceback: '
                    '%(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
            raise exceptions.InitFailed

    def test_multipleVM(self):
        try:
            network = self.create_network()
            subnet = self.create_subnet(network.get('id'))
            router = self.create_router()
            self.router_set_external_gw(router.get('id'))
            self.router_add_subnet(router.get('id'), subnet.get('id'))
            sg = self.create_security_group()
            self.create_security_group_rule(sg.get('id'), 'IPv4', 'ingress',
                                            '0.0.0.0/0', 'ICMP')
        except Exception as e:
            LOG.warning(
                _LW('Create network env failed, msg: %(msg)s, '
                    'traceback: %(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
            self.delete_all()
            raise e

        try:
            success_count = 0
            vm_count = random.randint(1, 10)
            for i in range(vm_count):
                try:
                    LOG.info(
                        _LI('Create and delete %(i)d of %(vm_count)d vm'
                            ' start'), {
                                'i': i + 1,
                                'vm_count': vm_count
                            })
                    vm_name = "server-" + str(uuid.uuid4())[:5]
                    server = self.compute.\
                        create_server(name=vm_name,
                                      network_id=network.get('id'),
                                      sec_grp_id=sg.get('id'))
                    interfaces = self.compute.\
                        show_server_interfaces(server['id'])
                    interfaces = interfaces.get('interfaceAttachments', [])
                    if not interfaces:
                        LOG.warning(
                            _LW('During network test server '
                                'has no port!'))
                        raise
                    port_id = interfaces[0]['port_id']
                    floatingip = self.create_floating_ip(port_id)
                    floatingip_addr = floatingip['floating_ip_address']
                    self.test_ping_floatingip(floatingip_addr)
                    success_count += 1
                    LOG.info(
                        _LI('Create and delete %(i)d of %(vm_count)d vm'
                            ' success'), {
                                'i': i + 1,
                                'vm_count': vm_count
                            })
                except Exception as e:
                    LOG.warning(
                        _LW('Create and delete %(i)d of %(vm_count)d '
                            'vm failed, msg: %(msg)s, '
                            'traceback: %(tb)s.'), {
                                'i': i + 1,
                                'vm_count': vm_count,
                                'msg': e,
                                'tb': traceback.format_exc()
                            })

            LOG.info(
                _LI(' %(success_count)d success of %(vm_count)d round '
                    'total'), {
                        'success_count': success_count,
                        'vm_count': vm_count
                    })
        except Exception as e:
            LOG.warning(
                _LW('Test multiple vm failed, msg: %(msg)s, '
                    'traceback: %(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
        finally:
            is_successfully_deleted = True
            try:
                self.compute.delete_all()
            except Exception as e:
                LOG.warning(
                    _LW('Clear compute resource failed, msg: %(msg)s, '
                        'traceback: %(tb)s.'), {
                            'msg': e,
                            'tb': traceback.format_exc()
                        })
                is_successfully_deleted = False

            try:
                self.delete_all()
            except Exception as e:
                LOG.warning(
                    _LW('Clear network resource failed, msg: %(msg)s, '
                        'traceback: %(tb)s.'), {
                            'msg': e,
                            'tb': traceback.format_exc()
                        })
                is_successfully_deleted = False

            if not is_successfully_deleted:
                raise exceptions.DeleteException
コード例 #6
0
# !/usr/bin/python
import traceback

from automation.common import exceptions
from automation import config
from automation.i18n import _LW
from oslo_log import log as logging
from testcases.compute_tests.base_compute import Base

CONF = config.CONF
LOG = logging.getLogger(__name__)

if __name__ == '__main__':
    try:
        server = Base()
    except Exception as e:
        LOG.warning(
            _LW('Init test env failed, msg: %(msg)s, traceback: '
                '%(tb)s.'), {
                    'msg': e,
                    'tb': traceback.format_exc()
                })
        raise exceptions.InitFailed
    try:
        server_created = server.create_server()
        server_details = server.show_server(server_created['id'])
    except Exception as e:
        LOG.warning(
            _LW('Test create server failed, msg: %(msg)s, traceback: '
                '%(tb)s.'), {
                    'msg': e,
コード例 #7
0
# !/usr/bin/python
import time
import traceback

from automation.common import exceptions
from automation import config
from automation.i18n import _LW
from oslo_log import log as logging
from testcases.compute_tests.base_compute import Base

CONF = config.CONF
LOG = logging.getLogger(__name__)

if __name__ == '__main__':
    try:
        server = Base()
    except Exception as e:
        LOG.warning(
            _LW('Init test env failed, msg: %(msg)s, traceback: '
                '%(tb)s.'), {
                    'msg': e,
                    'tb': traceback.format_exc()
                })
        raise exceptions.InitFailed
    try:
        server_created = server.create_server()
        server_details = server.show_server(server_created['id'])
        server.power_off(server_created['id'])
        time.sleep(1200)
        server.power_on(server_created['id'])
        time.sleep(1200)
コード例 #8
0
import traceback

from automation.common import exceptions
from automation import config
from automation.i18n import _LW
from oslo_log import log as logging
from testcases.compute_tests.base_compute import Base as BaseCompute
from testcases.volume_tests.base import Base as BaseVolume

CONF = config.CONF
LOG = logging.getLogger(__name__)

if __name__ == '__main__':
    try:
        volume = BaseVolume()
        server = BaseCompute()
    except Exception as e:
        LOG.warning(
            _LW('Init test env failed, msg: %(msg)s, traceback: '
                '%(tb)s.'), {
                    'msg': e,
                    'tb': traceback.format_exc()
                })
        raise exceptions.InitFailed
    try:
        server_created = server.create_server()
        volume_created = volume.create_volume()
        server.attach_volume(server_created['id'], volume_created['id'])
        volume.check_volume_status_interval(volume_created['id'], 'in-use')
        server.detach_volume(server_created['id'], volume_created['id'])
        volume.check_volume_status_interval(volume_created['id'], 'available')
コード例 #9
0
class SecurityGroupTest(Base):
    def __init__(self):
        try:
            super(SecurityGroupTest, self).__init__()
            random = str(uuid.uuid4())[:5]
            network_name = "net-" + random
            router_name = "router-" + random
            sec_group_name = "sg-" + random
            self.net_base = Base(network_name=network_name,
                                 router_name=router_name,
                                 sec_group_name=sec_group_name)
            self.compute = Compute_base()
        except Exception as e:
            LOG.warning(
                _LW('Init test env failed, msg: %(msg)s, traceback: '
                    '%(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
            raise exceptions.InitFailed

    def test_security_group(self):
        try:
            network = self.create_network()
            subnet = self.create_subnet(network.get('id'))
            router = self.create_router()
            self.router_set_external_gw(router.get('id'))
            self.router_add_subnet(router.get('id'), subnet.get('id'))
            sg = self.create_security_group(self.sec_group_name)
            sg_rule = self.create_security_group_rule(sg.get('id'), 'IPv4',
                                                      'ingress', '0.0.0.0/0',
                                                      'ICMP')
        except Exception as e:
            LOG.warning(
                _LW('Create network env failed, msg: %(msg)s, '
                    'traceback: %(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
            self.delete_all()
            raise e

        try:
            self.create_security_group()
            vm_name = "server-" + str(uuid.uuid4())[:5]
            server = self.compute.create_server(name=vm_name,
                                                network_id=network.get('id'),
                                                sec_grp_id=sg.get('id'))
            interfaces = self.compute.show_server_interfaces(server['id'])
            interfaces = interfaces.get('interfaceAttachments', [])
            if not interfaces:
                LOG.warning(_LW('During network test server has no port!'))
                raise
            port_id = interfaces[0]['port_id']
            floatingip = self.create_floating_ip(port_id)
            floatingip_addr = floatingip['floating_ip_address']
            self.test_ping_floatingip(floatingip_addr)

            # negative test
            self.delete_sec_group_rule(sg_rule['id'])
            try:
                time.sleep(20)
                self.test_ping_floatingip(floatingip_addr, 10, 30)
            except exceptions.TimeoutException:
                LOG.info(
                    _LI('Congratulations! Security group test '
                        'successfully!'))
            else:
                raise exceptions.SecurityGroupException
        except Exception as e:
            LOG.warning(
                _LW('Test security group failed, msg: %(msg)s, '
                    'traceback: %(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
        finally:
            is_successfully_deleted = True
            try:
                self.compute.delete_all()
            except Exception as e:
                LOG.warning(
                    _LW('Clear compute resource failed, msg: %(msg)s, '
                        'traceback: %(tb)s.'), {
                            'msg': e,
                            'tb': traceback.format_exc()
                        })
                is_successfully_deleted = False

            try:
                self.delete_all()
            except Exception as e:
                LOG.warning(
                    _LW('Clear network resource failed, msg: %(msg)s, '
                        'traceback: %(tb)s.'), {
                            'msg': e,
                            'tb': traceback.format_exc()
                        })
                is_successfully_deleted = False

            if not is_successfully_deleted:
                raise exceptions.DeleteException