Пример #1
0
 def test_usage_01_delete_after_create(self):
     """ Delete one instance after 10 minutes """
     tc_name = "Usage 01 tests"
     tc_num = 01
     instance_id = self.instance_id_list[0]
     # Sleep for 10 minutes
     running_time = (datetime.utcnow() - self.starttime_list[tc_num]).seconds
     if 10 * self.ONEMIN > running_time:
         time.sleep((10 * self.ONEMIN) - running_time)
     # delete the ACTIVE instance
     if testutil.getInstanceStatus(self.client, instance_id) == "ACTIVE":
         self.client.instances.get(instance_id).delete()
         self.instance_id_list.remove(instance_id)
     duration = datetime.utcnow() - self.starttime_list[tc_num]
     rootAction = "reddwarf.instance.delete"
     # AH Event Sent - Check AH data data AFTER the DELETE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
Пример #2
0
 def test_usage_02_resize_flavor_up(self):
     """ Dynamically increase the memory size of an instance """
     tc_name = "Usage 02 tests"
     tc_num = 02
     NEW_FLAVOR_UP = 4
     instance_id = self.instance_id_list[0]
     # insure instance was ACTIVE for 10 minutes
     running_time = (datetime.utcnow() - self.starttime_list[tc_num]).seconds
     if 10 * self.ONEMIN > running_time:
         time.sleep((10 * self.ONEMIN) - running_time)
     # resize the instance UP
     rootAction = "reddwarf.instance.modify_flavor"
     response = self.client.instances.resize_instance(instance_id, NEW_FLAVOR_UP)
     self.assertEqual(
         str(testutil.get_last_response_code(self.client)),
         "202",
         "Error: Resize instance. Unexpected resp code: %r != %r"
         % (str(testutil.get_last_response_code(self.client)), "202"),
     )
     # wait for it to return to Active
     testutil.wait_for_status(self.client, instance_id, "RESIZE")
     status, elapsed_time = testutil.waitForActive(self.client, instanceId=instance_id)
     self.fixture_log.debug("Inst: %r is: %r after: %r seconds" % (instance_id, status, elapsed_time))
     duration = datetime.utcnow() - self.starttime_list[tc_num]
     startTime = datetime.utcnow()
     # AH Event Sent - Check instance as a result of RESIZE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
     self.instance = self.client.instances.get(instance_id)
     self.assertEqual(
         str(NEW_FLAVOR_UP),
         self.instance.flavor["id"],
         "Error: Expected flavor of: %r != Actual flavor: %r" % (str(NEW_FLAVOR_UP), self.instance.flavor["id"]),
     )
     time.sleep(5 * self.ONEMIN)
     # Capture the duration and delete the instance
     if testutil.getInstanceStatus(self.client, instance_id) == "ACTIVE":
         self.client.instances.get(instance_id).delete()
         self.instance_id_list.remove(instance_id)
     duration = datetime.utcnow() - startTime
     rootAction = "reddwarf.instance.delete"
     # AH Event Sent - Check instance data AFTER the DELETE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
Пример #3
0
 def test_usage_08_duplicate_create(self):
     """ Delete one instance then recreate it, ensure separate AH events """
     tc_name = "Usage 08 tests"
     tc_num = 8
     instance_id = self.instance_id_list[0]
     inst_name = self.client.instances.get(instance_id).name
     # delete the existing instance
     if testutil.getInstanceStatus(self.client, instance_id) == "ACTIVE":
         self.client.instances.get(instance_id).delete()
         self.instance_id_list.remove(instance_id)
     duration = datetime.utcnow() - self.starttime_list[tc_num]
     rootAction = "reddwarf.instance.delete"
     # AH Event Sent - Check AH data data AFTER the DELETE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
     # now create an exact duplicate instance
     startTime1 = datetime.utcnow()
     instance_id1, elapsed_time = testutil.create_active_instance(
         self.client, name=inst_name, flavor_id=2, volume={"size": 2}, databases=[{"name": "db_name"}]
     )
     httpCode = testutil.get_last_response_code(self.client)
     if httpCode != "200":
         raise Exception("Create instance failed with code %s" % httpCode)
     self.fixture_log.debug(
         "Inst: %r is: %r after: %r seconds"
         % (instance_id, self.client.instances.get(instance_id).status, elapsed_time)
     )
     running_time = (datetime.utcnow() - self.starttime_list[tc_num]).seconds
     if 5 * self.ONEMIN > running_time:
         time.sleep((5 * self.ONEMIN) - running_time)
     # delete the ACTIVE instance
     if testutil.getInstanceStatus(self.client, instance_id1) == "ACTIVE":
         self.client.instances.get(instance_id1).delete()
     duration = datetime.utcnow() - self.starttime_list[tc_num]
     rootAction = "reddwarf.instance.delete"
     # AH Event Sent - Check AH data data AFTER the DELETE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id1)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id1,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id1),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
Пример #4
0
 def test_usage_05_restart_mysql(self):
     """ Restart MySQL then Delete one instance after 10 minutes """
     tc_name = "Usage 05 tests"
     tc_num = 05
     instance_id = self.instance_id_list[0]
     self.client.instances.restart(instance_id)
     self.assertEqual(
         str(testutil.get_last_response_code(self.client)),
         "202",
         "Error: Resize instance. Unexpected resp code: %r != %r"
         % (str(testutil.get_last_response_code(self.client)), "202"),
     )
     # check interim status of REBOOT
     testutil.wait_for_status(self.client, instance_id, "REBOOT")
     # wait for active, ensure time elapsed, record the duration
     status, elapsed_time = testutil.waitForActive(self.client, instanceId=instance_id)
     self.fixture_log.debug("Inst: %r is: %r after: %r seconds" % (instance_id, status, elapsed_time))
     running_time = (datetime.utcnow() - self.starttime_list[tc_num]).seconds
     if 10 * self.ONEMIN > running_time:
         time.sleep((10 * self.ONEMIN) - running_time)
     # delete the ACTIVE instance
     if testutil.getInstanceStatus(self.client, instance_id) == "ACTIVE":
         self.client.instances.get(instance_id).delete()
         self.instance_id_list.remove(instance_id)
     duration = datetime.utcnow() - self.starttime_list[tc_num]
     rootAction = "reddwarf.instance.delete"
     # AH Event Sent - Check AH data data AFTER the DELETE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
Пример #5
0
 def test_usage_06_resize_reboot_volume_up(self):
     """ Resize the Volume Storage and then reboot, ensure only two AH events """
     tc_name = "Usage 06 tests"
     tc_num = 06
     NEW_VOLUME = 6
     instance_id = self.instance_id_list[0]
     running_time = (datetime.utcnow() - self.starttime_list[tc_num]).seconds
     if 10 * self.ONEMIN > running_time:
         time.sleep((10 * self.ONEMIN) - running_time)
     # resize the instance UP
     rootAction = "reddwarf.instance.modify_volume"
     response = self.client.instances.resize_volume(instance_id, NEW_VOLUME)
     self.assertEqual(
         str(testutil.get_last_response_code(self.client)),
         "202",
         "Error: Resize instance. Unexpected resp code: %r != %r"
         % (str(testutil.get_last_response_code(self.client)), "202"),
     )
     testutil.wait_for_status(self.client, instance_id, "RESIZE")
     status, elapsed_time = testutil.waitForActive(self.client, instanceId=instance_id)
     self.fixture_log.debug("Inst: %r is: %r after: %r seconds" % (instance_id, status, elapsed_time))
     duration = datetime.utcnow() - self.starttime_list[tc_num]
     startTime = datetime.utcnow()
     # AH Event Sent - Check instance as a result of RESIZE
     time.sleep(self.AHDELAY * 2)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)
     self.instance = self.client.instances.get(instance_id)
     # confirm the new flavor
     self.assertEqual(
         NEW_VOLUME,
         self.instance.volume["size"],
         "Error: Expected flavor of: %r != Actual flavor: %r" % (NEW_VOLUME, self.instance.volume["size"]),
     )
     time.sleep(2 * self.ONEMIN)
     # restart the instance
     self.mgmt_client.management.reboot(instance_id)
     self.assertEqual(
         str(testutil.get_last_response_code(self.client)),
         "200",
         "Error: Resize instance. Unexpected resp code: %r != %r"
         % (str(testutil.get_last_response_code(self.client)), "200"),
     )
     testutil.wait_for_status(self.client, instance_id, "REBOOT")
     status, elapsed_time = testutil.waitForActive(self.client, instanceId=instance_id)
     self.fixture_log.debug("Inst: %r is: %r after: %r seconds" % (instance_id, status, elapsed_time))
     time.sleep(2 * self.ONEMIN)
     # Capture the duration and delete the instance
     if testutil.getInstanceStatus(self.client, instance_id) == "ACTIVE":
         self.client.instances.get(instance_id).delete()
         self.instance_id_list.remove(instance_id)
     duration = datetime.utcnow() - startTime
     rootAction = "reddwarf.instance.delete"
     # AH Event Sent - Check instance data AFTER the DELETE
     time.sleep(self.AHDELAY)
     AHEventsList = self.dbaas_atomhopper_provider.events_by_resourceId(instance_id)
     single_event = [event for event in AHEventsList if event.rootAction == rootAction].pop()
     self.assertEqual(
         single_event.resourceId,
         instance_id,
         "AH resourceID:%r != created instanceID:%r" % (single_event.resourceId, instance_id),
     )
     testutil.valid_duration(duration, single_event, self.dateFormat)