Example #1
0
    def test_resize_to_xxlarge_instance(self):
        """
        Resize the instance to xxlarge

        """

        dbaas = self.dbaas_provider.client.reddwarfclient
        if testutil.isInstanceActive(dbaas, instanceId=self.instance_id):
            dbaas.instances.resize_instance(self.instance_id, self.flavorTypes.xxlarge)

        httpCode = testutil.get_last_response_code(dbaas)
        self.assertTrue(httpCode == '202',
                        "Create instance failed with code %s" % httpCode)
        testutil.waitForActive(dbaas, instanceId=self.instance_id)
        self.assertTrue(testutil.getInstanceStatus(dbaas, instanceId=self.instance_id) == 'ACTIVE',
                        "Instance is not in Active statue")

        newFlavorSize = dbaas.instances.get(self.instance_id).flavor['id']
        self.assertTrue(newFlavorSize == str(self.flavorTypes.xxlarge),
                        "Unexpected flavor size for resize: %s" % newFlavorSize)

        #Resize back to tiny
        if testutil.isInstanceActive(dbaas, instanceId=self.instance_id):
            dbaas.instances.resize_instance(self.instance_id, self.flavorTypes.tiny)

        httpCode = testutil.get_last_response_code(dbaas)
        self.assertTrue(httpCode == '202',
                        "Create instance failed with code %s" % httpCode)
        testutil.waitForActive(dbaas, instanceId=self.instance_id)
        self.assertTrue(testutil.getInstanceStatus(dbaas, instanceId=self.instance_id) == 'ACTIVE',
                        "Instance is not in Active statue")
Example #2
0
    def tearDownClass(cls):
        """
        Tearing down: Deleting the instance if in active state

        """
        #Delete the instance ID created for test if active
        status = testutil.getInstanceStatus(cls.dbaas_creator, cls.creator_instance_id)
        if testutil.isInstanceActive(cls.dbaas_creator, instanceStatus=status):
            cls.dbaas_admin.instances.get(cls.creator_instance_id).delete()

        status = testutil.getInstanceStatus(cls.dbaas_admin, cls.admin_instance_id)
        if testutil.isInstanceActive(cls.dbaas_admin, instanceStatus=status):
            cls.dbaas_admin.instances.get(cls.admin_instance_id).delete()
Example #3
0
    def setUp(cls):
        """
        Run this setup for each test to ensure an active instance is available

        """
        tc_name = "Create Instance"
        instance_status = testutil.getInstanceStatus(cls.mgmt_dbaas,
                                                instanceId=cls.instance_id)
        if (testutil.isInstanceActive(cls.mgmt_dbaas,
                                    instanceStatus=instance_status) is False):
            # delete non-Active instance
            test_actions.mgmt_dbaas.instances.get(cls.instance_id).delete()
            # start a new instance and set the global instance ID
            NAME = "qe-mgmt-actions-testing"
            FLAVOR = 1
            VOLUME = 1
            try:
                instance = cls.mgmt_dbaas.instances.create(
                    name=NAME,
                    flavor_id=FLAVOR,
                    volume={"size": VOLUME},
                    databases=[{"databases": [{"name": "databaseA"}],
                                "name": "dbuser1",
                                "password": "******"}])
                httpCode = testutil.get_last_response_code(cls.mgmt_dbaas)
                if httpCode != '200':
                    raise Exception("Create instance failed with code %s" %
                                    (httpCode))
                cls.instance_id = instance.id
                cls.instance = instance
                testutil.waitForActive(cls.mgmt_dbaas,
                                       instanceId=cls.instance_id)
            except Exception as e:
                self.fixture_log.debug("\tException: %r" % (e))
                raise
Example #4
0
    def setUp(self):
        """
        Run this setup for each test to ensure an active instance is available

        """
        super(SmokeTest, self).setUp()

        tc_name = "Create Instance"
        instance_status = testutil.getInstanceStatus(self.dbaas,
                                                     instanceId=self.instance_id)
        if (testutil.isInstanceActive(self.dbaas,
                                      instanceStatus=instance_status) is False):
            #start a new instance and set the global instance ID
            NAME = "qe-smoke"
            FLAVOR = 4
            VOLUME = 1
            try:
                instance = self.dbaas.instances.create(
                    name=NAME,
                    flavor_id=FLAVOR,
                    volume={"size": VOLUME},
                    databases=[{"databases": [{"name": "databaseA"}], "name": "dbuser1",
                                "password": "******"}])
                httpCode = testutil.get_last_response_code(self.dbaas)
                if httpCode != '200':
                    raise Exception("Create instance failed with code %s" % httpCode)
                self.instance_id = instance.id
                testutil.waitForActive(self.dbaas, instanceId=self.instance_id)
                if self.stability_mode:
                    testutil.write_to_report(tc_name, tc_pass=True)
            except Exception as e:
                if self.stability_mode:
                    testutil.write_to_error_report(self.instance_id, repr(e))
                    testutil.write_to_report(tc_name, tc_pass=False)
                raise
Example #5
0
    def test_resize_volume_instance(self):
        """
        Resize the volume of an instance

        """

        dbaas = self.dbaas_provider.client.reddwarfclient
        if testutil.isInstanceActive(dbaas, instanceId=self.instance_id):
            dbaas.instances.resize_volume(self.instance_id, self.ResizeUpSizes.lev1)

        httpCode = testutil.get_last_response_code(dbaas)
        self.assertTrue(httpCode == '202',
                        "Create instance failed with code %s" % httpCode)
        testutil.waitForActive(dbaas, instanceId=self.instance_id)
        self.assertTrue(testutil.getInstanceStatus(dbaas, instanceId=self.instance_id) == 'ACTIVE',
                        "Instance is not in Active statue")
        newVolume = dbaas.instances.get(self.instance_id).volume['size']
        self.assertTrue(newVolume == self.ResizeUpSizes.lev1, "Expected new volume size %s: Got %s "
                                                              % (self.ResizeUpSizes.lev1, newVolume))

        if testutil.isInstanceActive(dbaas, instanceId=self.instance_id):
            dbaas.instances.resize_volume(self.instance_id, self.ResizeUpSizes.lev2)

        httpCode = testutil.get_last_response_code(dbaas)
        self.assertTrue(httpCode == '202',
                        "Create instance failed with code %s" % httpCode)
        testutil.waitForActive(dbaas, instanceId=self.instance_id)
        self.assertTrue(testutil.getInstanceStatus(dbaas, instanceId=self.instance_id) == 'ACTIVE',
                        "Instance is not in Active statue")
        newVolume = dbaas.instances.get(self.instance_id).volume['size']
        self.assertTrue(newVolume == self.ResizeUpSizes.lev2, "Expected new volume size %s: Got %s "
                                                              % (self.ResizeUpSizes.lev2, newVolume))

        if testutil.isInstanceActive(dbaas, instanceId=self.instance_id):
            dbaas.instances.resize_volume(self.instance_id, self.ResizeUpSizes.lev3)

        httpCode = testutil.get_last_response_code(dbaas)
        self.assertTrue(httpCode == '202',
                        "Create instance failed with code %s" % httpCode)
        testutil.waitForActive(dbaas, instanceId=self.instance_id)
        self.assertTrue(testutil.getInstanceStatus(dbaas, instanceId=self.instance_id) == 'ACTIVE',
                        "Instance is not in Active statue")
        newVolume = dbaas.instances.get(self.instance_id).volume['size']
        self.assertTrue(newVolume == self.ResizeUpSizes.lev3, "Expected new volume size %s: Got %s "
                                                              % (self.ResizeUpSizes.lev3, newVolume))
Example #6
0
 def tearDownClass(cls):
     """ Tearing down: Deleting the instance if in active state """
     status = None
     # Delete the instances created for test if active
     for inst_id in cls.instance_id_list:
         status = testutil.getInstanceStatus(cls.client, inst_id)
         if testutil.isInstanceActive(cls.client, instanceStatus=status):
             # print("tearDownClass - Deleting: %r" %
             #      cls.client.instances.get(inst_id).id)
             cls.client.instances.get(inst_id).delete()
Example #7
0
    def tearDownClass(cls):
        """
        Tearing down: Deleting the instance if in active state

        """
        #Delete the instance ID created for test if active
        if cls.instance_id is not None:
            status = testutil.getInstanceStatus(cls.dbaas, instanceId=cls.instance_id)
            if testutil.isInstanceActive(cls.dbaas, instanceStatus=status):
                cls.dbaas.instances.get(cls.instance_id).delete()
Example #8
0
    def tearDownClass(cls):
        """
        Tearing down: Deleting the instance if in active state

        """
        instance_id = test_resize_volume_instances.instance_id
        dbaas = test_resize_volume_instances.dbaas
        #Delete the instance ID created for test if active
        if instance_id is not None:
            status = testutil.getInstanceStatus(dbaas, instanceId=instance_id)
            if testutil.isInstanceActive(dbaas, instanceStatus=status):
                dbaas.instances.get(instance_id).delete()
Example #9
0
    def test_performance(self):

        #Create the Instance to use
        self.fh.write("Creating the perf instance\n")
        instance_id = testutil.create_perf_instance(self.client)
        instance_hostname = testutil.getInstanceHostname(self.client, instance_id)
        self.fh.write("Connecting to the perf server %s\n" % self.config.dbaas.perf_server)
        conn = self.connection(host=self.config.dbaas.perf_server,
                               uname=self.config.dbaas.perf_server_user,
                               pw=self.config.dbaas.perf_server_password)

        time.sleep(5)
        iuser_name = "perfUser"
        iuser_password = "******"
        idb_name = "perfDB"

        #Commands
        prep = 'sysbench --test=oltp --oltp-table-size=2000000 --mysql-user='******' --mysql-password='******' --mysql-host=' \
               + instance_hostname + ' --mysql-database=' \
               + idb_name + ' --mysql-table-engine=innodb prepare'
        runtest = 'sysbench --max-time=3600 --num-threads=124 --max-requests=2000000 --test=oltp --mysql-user='******' --mysql-password='******' --mysql-host=' + \
                  instance_hostname + ' --mysql-database=' + \
                  idb_name + ' run'
        cleanup = 'sysbench --test=oltp --mysql-user='******' --mysql-host=' + \
                  instance_hostname + ' --mysql-password='******' --mysql-database=' + \
                  idb_name + ' cleanup'

        self.run_command(conn, prep)
        self.run_command(conn, runtest)
        self.run_command(conn, cleanup)

        conn.close()

        #Delete the instance
        self.fh.write("Deleting the perf instance\n")
        status = testutil.getInstanceStatus(self.client, instance_id)
        if testutil.isInstanceActive(self.client, instanceStatus=status):
            self.client.instances.get(instance_id).delete()

        self.fh.close()