summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-06-14 17:26:06 +0000
committerGerrit Code Review <review@openstack.org>2013-06-14 17:26:06 +0000
commit75ece85aec3ca794e34bcd03ef90b463528318fe (patch)
tree95619a598bdd8beba4e029eb186ae088c59a06df
parent7b18e1433f5d4649ecb513995742b15f1d5ea851 (diff)
parente1f8198af688b6d3746c6354a5d5d4b0e104830a (diff)
downloadnova-75ece85aec3ca794e34bcd03ef90b463528318fe.tar.gz
nova-75ece85aec3ca794e34bcd03ef90b463528318fe.tar.xz
nova-75ece85aec3ca794e34bcd03ef90b463528318fe.zip
Merge "Refactored tests for instance_actions_*"
-rw-r--r--nova/tests/db/test_db_api.py576
1 files changed, 289 insertions, 287 deletions
diff --git a/nova/tests/db/test_db_api.py b/nova/tests/db/test_db_api.py
index 4d01e8e0a..75df3400a 100644
--- a/nova/tests/db/test_db_api.py
+++ b/nova/tests/db/test_db_api.py
@@ -589,293 +589,6 @@ class DbApiTestCase(DbTestCase):
# Ensure that metadata is updated during instance_update
self._test_instance_update_updates_metadata('metadata')
- def test_instance_action_start(self):
- """Create an instance action."""
- ctxt = context.get_admin_context()
- uuid = str(stdlib_uuid.uuid4())
-
- start_time = timeutils.utcnow()
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'user_id': ctxt.user_id,
- 'project_id': ctxt.project_id,
- 'start_time': start_time}
- db.action_start(ctxt, action_values)
-
- # Retrieve the action to ensure it was successfully added
- actions = db.actions_get(ctxt, uuid)
- self.assertEqual(1, len(actions))
- self.assertEqual('run_instance', actions[0]['action'])
- self.assertEqual(start_time, actions[0]['start_time'])
- self.assertEqual(ctxt.request_id, actions[0]['request_id'])
- self.assertEqual(ctxt.user_id, actions[0]['user_id'])
- self.assertEqual(ctxt.project_id, actions[0]['project_id'])
-
- def test_instance_action_finish(self):
- """Create an instance action."""
- ctxt = context.get_admin_context()
- uuid = str(stdlib_uuid.uuid4())
-
- start_time = timeutils.utcnow()
- action_start_values = {'action': 'run_instance',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'user_id': ctxt.user_id,
- 'project_id': ctxt.project_id,
- 'start_time': start_time}
- db.action_start(ctxt, action_start_values)
-
- finish_time = timeutils.utcnow() + datetime.timedelta(seconds=5)
- action_finish_values = {'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'finish_time': finish_time}
- db.action_finish(ctxt, action_finish_values)
-
- # Retrieve the action to ensure it was successfully added
- actions = db.actions_get(ctxt, uuid)
- self.assertEqual(1, len(actions))
- self.assertEqual('run_instance', actions[0]['action'])
- self.assertEqual(start_time, actions[0]['start_time'])
- self.assertEqual(finish_time, actions[0]['finish_time'])
- self.assertEqual(ctxt.request_id, actions[0]['request_id'])
- self.assertEqual(ctxt.user_id, actions[0]['user_id'])
- self.assertEqual(ctxt.project_id, actions[0]['project_id'])
-
- def test_instance_actions_get_by_instance(self):
- """Ensure we can get actions by UUID."""
- ctxt1 = context.get_admin_context()
- ctxt2 = context.get_admin_context()
- uuid1 = str(stdlib_uuid.uuid4())
- uuid2 = str(stdlib_uuid.uuid4())
-
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid1,
- 'request_id': ctxt1.request_id,
- 'user_id': ctxt1.user_id,
- 'project_id': ctxt1.project_id,
- 'start_time': timeutils.utcnow()}
- db.action_start(ctxt1, action_values)
- action_values['action'] = 'resize'
- db.action_start(ctxt1, action_values)
-
- action_values = {'action': 'reboot',
- 'instance_uuid': uuid2,
- 'request_id': ctxt2.request_id,
- 'user_id': ctxt2.user_id,
- 'project_id': ctxt2.project_id,
- 'start_time': timeutils.utcnow()}
- db.action_start(ctxt2, action_values)
- db.action_start(ctxt2, action_values)
-
- # Retrieve the action to ensure it was successfully added
- actions = db.actions_get(ctxt1, uuid1)
- self.assertEqual(2, len(actions))
- self.assertEqual('resize', actions[0]['action'])
- self.assertEqual('run_instance', actions[1]['action'])
-
- def test_instance_action_get_by_instance_and_action(self):
- """Ensure we can get an action by instance UUID and action id."""
- ctxt1 = context.get_admin_context()
- ctxt2 = context.get_admin_context()
- uuid1 = str(stdlib_uuid.uuid4())
- uuid2 = str(stdlib_uuid.uuid4())
-
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid1,
- 'request_id': ctxt1.request_id,
- 'user_id': ctxt1.user_id,
- 'project_id': ctxt1.project_id,
- 'start_time': timeutils.utcnow()}
- db.action_start(ctxt1, action_values)
- action_values['action'] = 'resize'
- db.action_start(ctxt1, action_values)
-
- action_values = {'action': 'reboot',
- 'instance_uuid': uuid2,
- 'request_id': ctxt2.request_id,
- 'user_id': ctxt2.user_id,
- 'project_id': ctxt2.project_id,
- 'start_time': timeutils.utcnow()}
- db.action_start(ctxt2, action_values)
- db.action_start(ctxt2, action_values)
-
- actions = db.actions_get(ctxt1, uuid1)
- request_id = actions[0]['request_id']
- action = db.action_get_by_request_id(ctxt1, uuid1, request_id)
- self.assertEqual('run_instance', action['action'])
- self.assertEqual(ctxt1.request_id, action['request_id'])
-
- def test_instance_action_event_start(self):
- """Create an instance action event."""
- ctxt = context.get_admin_context()
- uuid = str(stdlib_uuid.uuid4())
-
- start_time = timeutils.utcnow()
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'user_id': ctxt.user_id,
- 'project_id': ctxt.project_id,
- 'start_time': start_time}
- action = db.action_start(ctxt, action_values)
-
- event_values = {'event': 'schedule',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'start_time': start_time}
- db.action_event_start(ctxt, event_values)
-
- # Retrieve the event to ensure it was successfully added
- events = db.action_events_get(ctxt, action['id'])
- self.assertEqual(1, len(events))
- self.assertEqual('schedule', events[0]['event'])
- self.assertEqual(start_time, events[0]['start_time'])
-
- def test_instance_action_event_finish_success(self):
- """Finish an instance action event."""
- ctxt = context.get_admin_context()
- uuid = str(stdlib_uuid.uuid4())
-
- start_time = timeutils.utcnow()
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'user_id': ctxt.user_id,
- 'project_id': ctxt.project_id,
- 'start_time': start_time}
- action = db.action_start(ctxt, action_values)
-
- event_values = {'event': 'schedule',
- 'request_id': ctxt.request_id,
- 'instance_uuid': uuid,
- 'start_time': start_time}
- db.action_event_start(ctxt, event_values)
-
- finish_time = timeutils.utcnow() + datetime.timedelta(seconds=5)
- event_finish_values = {'event': 'schedule',
- 'request_id': ctxt.request_id,
- 'instance_uuid': uuid,
- 'finish_time': finish_time,
- 'result': 'Success'}
- db.action_event_finish(ctxt, event_finish_values)
-
- # Retrieve the event to ensure it was successfully added
- events = db.action_events_get(ctxt, action['id'])
- action = db.action_get_by_request_id(ctxt, uuid, ctxt.request_id)
- self.assertEqual(1, len(events))
- self.assertEqual('schedule', events[0]['event'])
- self.assertEqual(start_time, events[0]['start_time'])
- self.assertEqual(finish_time, events[0]['finish_time'])
- self.assertNotEqual(action['message'], 'Error')
-
- def test_instance_action_event_finish_error(self):
- """Finish an instance action event with an error."""
- ctxt = context.get_admin_context()
- uuid = str(stdlib_uuid.uuid4())
-
- start_time = timeutils.utcnow()
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'user_id': ctxt.user_id,
- 'project_id': ctxt.project_id,
- 'start_time': start_time}
- action = db.action_start(ctxt, action_values)
-
- event_values = {'event': 'schedule',
- 'request_id': ctxt.request_id,
- 'instance_uuid': uuid,
- 'start_time': start_time}
- db.action_event_start(ctxt, event_values)
-
- finish_time = timeutils.utcnow() + datetime.timedelta(seconds=5)
- event_finish_values = {'event': 'schedule',
- 'request_id': ctxt.request_id,
- 'instance_uuid': uuid,
- 'finish_time': finish_time,
- 'result': 'Error'}
- db.action_event_finish(ctxt, event_finish_values)
-
- # Retrieve the event to ensure it was successfully added
- events = db.action_events_get(ctxt, action['id'])
- action = db.action_get_by_request_id(ctxt, uuid, ctxt.request_id)
- self.assertEqual(1, len(events))
- self.assertEqual('schedule', events[0]['event'])
- self.assertEqual(start_time, events[0]['start_time'])
- self.assertEqual(finish_time, events[0]['finish_time'])
- self.assertEqual(action['message'], 'Error')
-
- def test_instance_action_and_event_start_string_time(self):
- """Create an instance action and event with a string start_time."""
- ctxt = context.get_admin_context()
- uuid = str(stdlib_uuid.uuid4())
-
- start_time = timeutils.utcnow()
- start_time_str = timeutils.strtime(start_time)
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'user_id': ctxt.user_id,
- 'project_id': ctxt.project_id,
- 'start_time': start_time_str}
- action = db.action_start(ctxt, action_values)
-
- event_values = {'event': 'schedule',
- 'instance_uuid': uuid,
- 'request_id': ctxt.request_id,
- 'start_time': start_time_str}
- db.action_event_start(ctxt, event_values)
-
- # Retrieve the event to ensure it was successfully added
- events = db.action_events_get(ctxt, action['id'])
- self.assertEqual(1, len(events))
- self.assertEqual('schedule', events[0]['event'])
- # db api still returns models with datetime, not str, values
- self.assertEqual(start_time, events[0]['start_time'])
-
- def test_instance_action_event_get_by_id(self):
- """Get a specific instance action event."""
- ctxt1 = context.get_admin_context()
- ctxt2 = context.get_admin_context()
- uuid1 = str(stdlib_uuid.uuid4())
- uuid2 = str(stdlib_uuid.uuid4())
-
- action_values = {'action': 'run_instance',
- 'instance_uuid': uuid1,
- 'request_id': ctxt1.request_id,
- 'user_id': ctxt1.user_id,
- 'project_id': ctxt1.project_id,
- 'start_time': timeutils.utcnow()}
- added_action = db.action_start(ctxt1, action_values)
-
- action_values = {'action': 'reboot',
- 'instance_uuid': uuid2,
- 'request_id': ctxt2.request_id,
- 'user_id': ctxt2.user_id,
- 'project_id': ctxt2.project_id,
- 'start_time': timeutils.utcnow()}
- db.action_start(ctxt2, action_values)
-
- start_time = timeutils.utcnow()
- event_values = {'event': 'schedule',
- 'instance_uuid': uuid1,
- 'request_id': ctxt1.request_id,
- 'start_time': start_time}
- added_event = db.action_event_start(ctxt1, event_values)
-
- event_values = {'event': 'reboot',
- 'instance_uuid': uuid2,
- 'request_id': ctxt2.request_id,
- 'start_time': timeutils.utcnow()}
- db.action_event_start(ctxt2, event_values)
-
- # Retrieve the event to ensure it was successfully added
- event = db.action_event_get_by_id(ctxt1, added_action['id'],
- added_event['id'])
- self.assertEqual('schedule', event['event'])
- self.assertEqual(start_time, event['start_time'])
-
def test_add_key_pair(self, name=None):
"""Check if keypair creation work as expected."""
keypair = {
@@ -2102,6 +1815,295 @@ class BaseInstanceTypeTestCase(test.TestCase, ModelsObjectComparatorMixin):
return db.instance_type_create(self.ctxt, v)
+class InstanceActionTestCase(test.TestCase, ModelsObjectComparatorMixin):
+ def test_instance_action_start(self):
+ """Create an instance action."""
+ ctxt = context.get_admin_context()
+ uuid = str(stdlib_uuid.uuid4())
+
+ start_time = timeutils.utcnow()
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'user_id': ctxt.user_id,
+ 'project_id': ctxt.project_id,
+ 'start_time': start_time}
+ db.action_start(ctxt, action_values)
+
+ # Retrieve the action to ensure it was successfully added
+ actions = db.actions_get(ctxt, uuid)
+ self.assertEqual(1, len(actions))
+ self.assertEqual('run_instance', actions[0]['action'])
+ self.assertEqual(start_time, actions[0]['start_time'])
+ self.assertEqual(ctxt.request_id, actions[0]['request_id'])
+ self.assertEqual(ctxt.user_id, actions[0]['user_id'])
+ self.assertEqual(ctxt.project_id, actions[0]['project_id'])
+
+ def test_instance_action_finish(self):
+ """Create an instance action."""
+ ctxt = context.get_admin_context()
+ uuid = str(stdlib_uuid.uuid4())
+
+ start_time = timeutils.utcnow()
+ action_start_values = {'action': 'run_instance',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'user_id': ctxt.user_id,
+ 'project_id': ctxt.project_id,
+ 'start_time': start_time}
+ db.action_start(ctxt, action_start_values)
+
+ finish_time = timeutils.utcnow() + datetime.timedelta(seconds=5)
+ action_finish_values = {'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'finish_time': finish_time}
+ db.action_finish(ctxt, action_finish_values)
+
+ # Retrieve the action to ensure it was successfully added
+ actions = db.actions_get(ctxt, uuid)
+ self.assertEqual(1, len(actions))
+ self.assertEqual('run_instance', actions[0]['action'])
+ self.assertEqual(start_time, actions[0]['start_time'])
+ self.assertEqual(finish_time, actions[0]['finish_time'])
+ self.assertEqual(ctxt.request_id, actions[0]['request_id'])
+ self.assertEqual(ctxt.user_id, actions[0]['user_id'])
+ self.assertEqual(ctxt.project_id, actions[0]['project_id'])
+
+ def test_instance_actions_get_by_instance(self):
+ """Ensure we can get actions by UUID."""
+ ctxt1 = context.get_admin_context()
+ ctxt2 = context.get_admin_context()
+ uuid1 = str(stdlib_uuid.uuid4())
+ uuid2 = str(stdlib_uuid.uuid4())
+
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid1,
+ 'request_id': ctxt1.request_id,
+ 'user_id': ctxt1.user_id,
+ 'project_id': ctxt1.project_id,
+ 'start_time': timeutils.utcnow()}
+ db.action_start(ctxt1, action_values)
+ action_values['action'] = 'resize'
+ db.action_start(ctxt1, action_values)
+
+ action_values = {'action': 'reboot',
+ 'instance_uuid': uuid2,
+ 'request_id': ctxt2.request_id,
+ 'user_id': ctxt2.user_id,
+ 'project_id': ctxt2.project_id,
+ 'start_time': timeutils.utcnow()}
+ db.action_start(ctxt2, action_values)
+ db.action_start(ctxt2, action_values)
+
+ # Retrieve the action to ensure it was successfully added
+ actions = db.actions_get(ctxt1, uuid1)
+ self.assertEqual(2, len(actions))
+ self.assertEqual('resize', actions[0]['action'])
+ self.assertEqual('run_instance', actions[1]['action'])
+
+ def test_instance_action_get_by_instance_and_action(self):
+ """Ensure we can get an action by instance UUID and action id."""
+ ctxt1 = context.get_admin_context()
+ ctxt2 = context.get_admin_context()
+ uuid1 = str(stdlib_uuid.uuid4())
+ uuid2 = str(stdlib_uuid.uuid4())
+
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid1,
+ 'request_id': ctxt1.request_id,
+ 'user_id': ctxt1.user_id,
+ 'project_id': ctxt1.project_id,
+ 'start_time': timeutils.utcnow()}
+ db.action_start(ctxt1, action_values)
+ action_values['action'] = 'resize'
+ db.action_start(ctxt1, action_values)
+
+ action_values = {'action': 'reboot',
+ 'instance_uuid': uuid2,
+ 'request_id': ctxt2.request_id,
+ 'user_id': ctxt2.user_id,
+ 'project_id': ctxt2.project_id,
+ 'start_time': timeutils.utcnow()}
+ db.action_start(ctxt2, action_values)
+ db.action_start(ctxt2, action_values)
+
+ actions = db.actions_get(ctxt1, uuid1)
+ request_id = actions[0]['request_id']
+ action = db.action_get_by_request_id(ctxt1, uuid1, request_id)
+ self.assertEqual('run_instance', action['action'])
+ self.assertEqual(ctxt1.request_id, action['request_id'])
+
+ def test_instance_action_event_start(self):
+ """Create an instance action event."""
+ ctxt = context.get_admin_context()
+ uuid = str(stdlib_uuid.uuid4())
+
+ start_time = timeutils.utcnow()
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'user_id': ctxt.user_id,
+ 'project_id': ctxt.project_id,
+ 'start_time': start_time}
+ action = db.action_start(ctxt, action_values)
+
+ event_values = {'event': 'schedule',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'start_time': start_time}
+ db.action_event_start(ctxt, event_values)
+
+ # Retrieve the event to ensure it was successfully added
+ events = db.action_events_get(ctxt, action['id'])
+ self.assertEqual(1, len(events))
+ self.assertEqual('schedule', events[0]['event'])
+ self.assertEqual(start_time, events[0]['start_time'])
+
+ def test_instance_action_event_finish_success(self):
+ """Finish an instance action event."""
+ ctxt = context.get_admin_context()
+ uuid = str(stdlib_uuid.uuid4())
+
+ start_time = timeutils.utcnow()
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'user_id': ctxt.user_id,
+ 'project_id': ctxt.project_id,
+ 'start_time': start_time}
+ action = db.action_start(ctxt, action_values)
+
+ event_values = {'event': 'schedule',
+ 'request_id': ctxt.request_id,
+ 'instance_uuid': uuid,
+ 'start_time': start_time}
+ db.action_event_start(ctxt, event_values)
+
+ finish_time = timeutils.utcnow() + datetime.timedelta(seconds=5)
+ event_finish_values = {'event': 'schedule',
+ 'request_id': ctxt.request_id,
+ 'instance_uuid': uuid,
+ 'finish_time': finish_time,
+ 'result': 'Success'}
+ db.action_event_finish(ctxt, event_finish_values)
+
+ # Retrieve the event to ensure it was successfully added
+ events = db.action_events_get(ctxt, action['id'])
+ action = db.action_get_by_request_id(ctxt, uuid, ctxt.request_id)
+ self.assertEqual(1, len(events))
+ self.assertEqual('schedule', events[0]['event'])
+ self.assertEqual(start_time, events[0]['start_time'])
+ self.assertEqual(finish_time, events[0]['finish_time'])
+ self.assertNotEqual(action['message'], 'Error')
+
+ def test_instance_action_event_finish_error(self):
+ """Finish an instance action event with an error."""
+ ctxt = context.get_admin_context()
+ uuid = str(stdlib_uuid.uuid4())
+
+ start_time = timeutils.utcnow()
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'user_id': ctxt.user_id,
+ 'project_id': ctxt.project_id,
+ 'start_time': start_time}
+ action = db.action_start(ctxt, action_values)
+
+ event_values = {'event': 'schedule',
+ 'request_id': ctxt.request_id,
+ 'instance_uuid': uuid,
+ 'start_time': start_time}
+ db.action_event_start(ctxt, event_values)
+
+ finish_time = timeutils.utcnow() + datetime.timedelta(seconds=5)
+ event_finish_values = {'event': 'schedule',
+ 'request_id': ctxt.request_id,
+ 'instance_uuid': uuid,
+ 'finish_time': finish_time,
+ 'result': 'Error'}
+ db.action_event_finish(ctxt, event_finish_values)
+
+ # Retrieve the event to ensure it was successfully added
+ events = db.action_events_get(ctxt, action['id'])
+ action = db.action_get_by_request_id(ctxt, uuid, ctxt.request_id)
+ self.assertEqual(1, len(events))
+ self.assertEqual('schedule', events[0]['event'])
+ self.assertEqual(start_time, events[0]['start_time'])
+ self.assertEqual(finish_time, events[0]['finish_time'])
+ self.assertEqual(action['message'], 'Error')
+
+ def test_instance_action_and_event_start_string_time(self):
+ """Create an instance action and event with a string start_time."""
+ ctxt = context.get_admin_context()
+ uuid = str(stdlib_uuid.uuid4())
+
+ start_time = timeutils.utcnow()
+ start_time_str = timeutils.strtime(start_time)
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'user_id': ctxt.user_id,
+ 'project_id': ctxt.project_id,
+ 'start_time': start_time_str}
+ action = db.action_start(ctxt, action_values)
+
+ event_values = {'event': 'schedule',
+ 'instance_uuid': uuid,
+ 'request_id': ctxt.request_id,
+ 'start_time': start_time_str}
+ db.action_event_start(ctxt, event_values)
+
+ # Retrieve the event to ensure it was successfully added
+ events = db.action_events_get(ctxt, action['id'])
+ self.assertEqual(1, len(events))
+ self.assertEqual('schedule', events[0]['event'])
+ # db api still returns models with datetime, not str, values
+ self.assertEqual(start_time, events[0]['start_time'])
+
+ def test_instance_action_event_get_by_id(self):
+ """Get a specific instance action event."""
+ ctxt1 = context.get_admin_context()
+ ctxt2 = context.get_admin_context()
+ uuid1 = str(stdlib_uuid.uuid4())
+ uuid2 = str(stdlib_uuid.uuid4())
+
+ action_values = {'action': 'run_instance',
+ 'instance_uuid': uuid1,
+ 'request_id': ctxt1.request_id,
+ 'user_id': ctxt1.user_id,
+ 'project_id': ctxt1.project_id,
+ 'start_time': timeutils.utcnow()}
+ added_action = db.action_start(ctxt1, action_values)
+
+ action_values = {'action': 'reboot',
+ 'instance_uuid': uuid2,
+ 'request_id': ctxt2.request_id,
+ 'user_id': ctxt2.user_id,
+ 'project_id': ctxt2.project_id,
+ 'start_time': timeutils.utcnow()}
+ db.action_start(ctxt2, action_values)
+
+ start_time = timeutils.utcnow()
+ event_values = {'event': 'schedule',
+ 'instance_uuid': uuid1,
+ 'request_id': ctxt1.request_id,
+ 'start_time': start_time}
+ added_event = db.action_event_start(ctxt1, event_values)
+
+ event_values = {'event': 'reboot',
+ 'instance_uuid': uuid2,
+ 'request_id': ctxt2.request_id,
+ 'start_time': timeutils.utcnow()}
+ db.action_event_start(ctxt2, event_values)
+
+ # Retrieve the event to ensure it was successfully added
+ event = db.action_event_get_by_id(ctxt1, added_action['id'],
+ added_event['id'])
+ self.assertEqual('schedule', event['event'])
+ self.assertEqual(start_time, event['start_time'])
+
+
class InstanceFaultTestCase(test.TestCase, ModelsObjectComparatorMixin):
def setUp(self):
super(InstanceFaultTestCase, self).setUp()