Merge "Use EnumField for instance external event name"

This commit is contained in:
Jenkins
2015-05-22 01:00:03 +00:00
committed by Gerrit Code Review
4 changed files with 21 additions and 10 deletions

View File

@@ -37,7 +37,7 @@ class InstanceExternalEvent(obj_base.NovaObject,
fields = {
'instance_uuid': fields.UUIDField(),
'name': fields.StringField(),
'name': fields.EnumField(valid_values=EVENT_NAMES),
'status': fields.StringField(),
'tag': fields.StringField(nullable=True),
'data': fields.DictOfStringsField(),

View File

@@ -1616,11 +1616,11 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
event = eventlet_event.Event()
self.compute.instance_events._events = {
'foo': {
'test-event': event,
'network-vif-plugged': event,
}
}
inst_obj = objects.Instance(uuid='foo')
event_obj = objects.InstanceExternalEvent(name='test-event',
event_obj = objects.InstanceExternalEvent(name='network-vif-plugged',
tag=None)
result = self.compute.instance_events.pop_instance_event(inst_obj,
event_obj)
@@ -1666,11 +1666,12 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
event = eventlet_event.Event()
self.compute.instance_events._events = {
'foo': {
'test-event': event,
'network-vif-plugged': event,
}
}
inst_obj = objects.Instance(uuid='foo')
event_obj = objects.InstanceExternalEvent(name='test-event', tag=None)
event_obj = objects.InstanceExternalEvent(name='network-vif-plugged',
tag=None)
self.compute._process_instance_event(inst_obj, event_obj)
self.assertTrue(event.ready())
self.assertEqual(event_obj, event.wait())
@@ -1684,7 +1685,8 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
objects.InstanceExternalEvent(name='network-changed',
tag='tag1',
instance_uuid='uuid1'),
objects.InstanceExternalEvent(name='foo', instance_uuid='uuid2',
objects.InstanceExternalEvent(name='network-vif-plugged',
instance_uuid='uuid2',
tag='tag2')]
@mock.patch.object(self.compute.network_api, 'get_instance_nw_info')

View File

@@ -28,12 +28,21 @@ class _TestInstanceExternalEventObject(object):
self.assertEqual('foo', key)
def test_key(self):
event = external_event_obj.InstanceExternalEvent(name='foo',
tag='bar')
event = external_event_obj.InstanceExternalEvent(
name='network-changed',
tag='bar')
with mock.patch.object(event, 'make_key') as make_key:
make_key.return_value = 'key'
self.assertEqual('key', event.key)
make_key.assert_called_once_with('foo', 'bar')
make_key.assert_called_once_with('network-changed', 'bar')
def test_event_names(self):
for event in external_event_obj.EVENT_NAMES:
external_event_obj.InstanceExternalEvent(name=event, tag='bar')
self.assertRaises(ValueError,
external_event_obj.InstanceExternalEvent,
name='foo', tag='bar')
class TestInstanceExternalEventObject(test_objects._LocalTest,

View File

@@ -1136,7 +1136,7 @@ object_data = {
'InstanceActionEvent': '1.1-538698f30974064543134784c5da6056',
'InstanceActionEventList': '1.0-3510dc5bc494bcf2468f54249366164f',
'InstanceActionList': '1.0-7f3f14a6c16fa16113c112a3b2ffffdd',
'InstanceExternalEvent': '1.0-f1134523654407a875fd59b80f759ee7',
'InstanceExternalEvent': '1.0-2c5d816a6447594d9ba91cc44834f685',
'InstanceFault': '1.2-090c74b3833c715845ec2cf24a686aaf',
'InstanceFaultList': '1.1-94f71c64972f25ba5675704bf2087fdb',
'InstanceGroup': '1.9-a77a59735d62790dcaa413a21acfaa73',