summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenguo Niu <Niu.ZGlinux@gmail.com>2017-10-27 17:41:47 +0800
committerZhenguo Niu <Niu.ZGlinux@gmail.com>2017-10-28 09:44:04 +0800
commit448556bab0209766b68876747d6c318459a5afad (patch)
tree53912958e0cf2703b4fe9a84e5d7dcb4f1e40e0d
parent452f57176156f1bf6abd3d94c6ea661692338f89 (diff)
Remove 'locked' from server object
locked_by can be used to check the lock status, there's no need to keep locked field. Change-Id: I3761ab710cf67d56163a39add4c51ee48f940a36 Closes-Bug: #1727944
Notes
Notes (review): Code-Review+1: wanghao <sxmatch1986@gmail.com> Code-Review+1: Xinran WANG <xin-ran.wang@intel.com> Code-Review+2: ShaoHe Feng <shaohe.feng@intel.com> Code-Review+1: liuluyang <1120773382@qq.com> Code-Review+2: liusheng <liusheng2048@gmail.com> Workflow+1: liusheng <liusheng2048@gmail.com> Verified+2: Zuul Submitted-by: Zuul Submitted-at: Thu, 23 Nov 2017 06:30:50 +0000 Reviewed-on: https://review.openstack.org/515667 Project: openstack/mogan Branch: refs/heads/master
-rw-r--r--doc/notification_samples/server-create-end.json1
-rw-r--r--doc/notification_samples/server-create-error.json1
-rw-r--r--doc/notification_samples/server-create-start.json1
-rw-r--r--doc/notification_samples/server-delete-end.json1
-rw-r--r--doc/notification_samples/server-delete-start.json1
-rw-r--r--mogan/api/controllers/v1/servers.py3
-rw-r--r--mogan/db/sqlalchemy/alembic/versions/91941bf1ebc9_initial_migration.py1
-rw-r--r--mogan/db/sqlalchemy/models.py1
-rw-r--r--mogan/engine/api.py8
-rw-r--r--mogan/notifications/objects/server.py2
-rw-r--r--mogan/objects/server.py1
-rw-r--r--mogan/tests/unit/db/utils.py1
-rw-r--r--mogan/tests/unit/engine/test_engine_api.py20
-rw-r--r--mogan/tests/unit/notifications/test_notification.py4
-rw-r--r--mogan/tests/unit/objects/test_objects.py2
15 files changed, 16 insertions, 32 deletions
diff --git a/doc/notification_samples/server-create-end.json b/doc/notification_samples/server-create-end.json
index 6d268b89..6d9012d 100644
--- a/doc/notification_samples/server-create-end.json
+++ b/doc/notification_samples/server-create-end.json
@@ -41,7 +41,6 @@
41 "description": null, 41 "description": null,
42 "key_name": null, 42 "key_name": null,
43 "partitions": {}, 43 "partitions": {},
44 "locked": false,
45 "name": "test", 44 "name": "test",
46 "fault": null, 45 "fault": null,
47 "created_at": "2017-09-13T08:36:06Z", 46 "created_at": "2017-09-13T08:36:06Z",
diff --git a/doc/notification_samples/server-create-error.json b/doc/notification_samples/server-create-error.json
index ea09866..0803e37 100644
--- a/doc/notification_samples/server-create-error.json
+++ b/doc/notification_samples/server-create-error.json
@@ -7,7 +7,6 @@
7 "mogan_object.data": { 7 "mogan_object.data": {
8 "status": "error", 8 "status": "error",
9 "node": "node-0", 9 "node": "node-0",
10 "locked": false,
11 "uuid": "c6e12c34-8917-4b95-938e-e146faf1de97", 10 "uuid": "c6e12c34-8917-4b95-938e-e146faf1de97",
12 "availability_zone": null, 11 "availability_zone": null,
13 "fault": { 12 "fault": {
diff --git a/doc/notification_samples/server-create-start.json b/doc/notification_samples/server-create-start.json
index 76cf676..7efc856 100644
--- a/doc/notification_samples/server-create-start.json
+++ b/doc/notification_samples/server-create-start.json
@@ -22,7 +22,6 @@
22 "description": null, 22 "description": null,
23 "key_name": null, 23 "key_name": null,
24 "partitions": {}, 24 "partitions": {},
25 "locked": false,
26 "name": "test", 25 "name": "test",
27 "fault": null, 26 "fault": null,
28 "created_at": "2017-09-13T08:36:06Z", 27 "created_at": "2017-09-13T08:36:06Z",
diff --git a/doc/notification_samples/server-delete-end.json b/doc/notification_samples/server-delete-end.json
index 1391a0e..9e5efc5 100644
--- a/doc/notification_samples/server-delete-end.json
+++ b/doc/notification_samples/server-delete-end.json
@@ -41,7 +41,6 @@
41 "description": null, 41 "description": null,
42 "key_name": null, 42 "key_name": null,
43 "partitions": {}, 43 "partitions": {},
44 "locked": false,
45 "name": "test", 44 "name": "test",
46 "fault": null, 45 "fault": null,
47 "created_at": "2017-09-13T08:15:21Z", 46 "created_at": "2017-09-13T08:15:21Z",
diff --git a/doc/notification_samples/server-delete-start.json b/doc/notification_samples/server-delete-start.json
index 3503db1..c5ccc42 100644
--- a/doc/notification_samples/server-delete-start.json
+++ b/doc/notification_samples/server-delete-start.json
@@ -41,7 +41,6 @@
41 "description": null, 41 "description": null,
42 "key_name": null, 42 "key_name": null,
43 "partitions": {}, 43 "partitions": {},
44 "locked": false,
45 "name": "test", 44 "name": "test",
46 "fault": null, 45 "fault": null,
47 "created_at": "2017-09-13T08:15:21Z", 46 "created_at": "2017-09-13T08:15:21Z",
diff --git a/mogan/api/controllers/v1/servers.py b/mogan/api/controllers/v1/servers.py
index c9750c3..99b1696 100644
--- a/mogan/api/controllers/v1/servers.py
+++ b/mogan/api/controllers/v1/servers.py
@@ -449,6 +449,9 @@ class Server(base.APIBase):
449 if not pecan.request.context.is_admin: 449 if not pecan.request.context.is_admin:
450 setattr(self, field, wtypes.Unset) 450 setattr(self, field, wtypes.Unset)
451 continue 451 continue
452 if field == 'locked_by':
453 setattr(self, 'locked', bool(kwargs.get('locked_by')))
454 continue
452 # Skip fields we do not expose. 455 # Skip fields we do not expose.
453 if not hasattr(self, field): 456 if not hasattr(self, field):
454 continue 457 continue
diff --git a/mogan/db/sqlalchemy/alembic/versions/91941bf1ebc9_initial_migration.py b/mogan/db/sqlalchemy/alembic/versions/91941bf1ebc9_initial_migration.py
index 62aef56..d46c93b 100644
--- a/mogan/db/sqlalchemy/alembic/versions/91941bf1ebc9_initial_migration.py
+++ b/mogan/db/sqlalchemy/alembic/versions/91941bf1ebc9_initial_migration.py
@@ -82,7 +82,6 @@ def upgrade():
82 sa.Column('node_uuid', sa.String(length=36), nullable=True), 82 sa.Column('node_uuid', sa.String(length=36), nullable=True),
83 sa.Column('extra', sa.Text(), nullable=True), 83 sa.Column('extra', sa.Text(), nullable=True),
84 sa.Column('partitions', sa.Text(), nullable=True), 84 sa.Column('partitions', sa.Text(), nullable=True),
85 sa.Column('locked', sa.Boolean(), nullable=True),
86 sa.Column('affinity_zone', sa.String(length=255), nullable=True), 85 sa.Column('affinity_zone', sa.String(length=255), nullable=True),
87 sa.Column('locked_by', sa.Enum('admin', 'owner'), nullable=True), 86 sa.Column('locked_by', sa.Enum('admin', 'owner'), nullable=True),
88 sa.Column('key_name', sa.String(length=255), nullable=True), 87 sa.Column('key_name', sa.String(length=255), nullable=True),
diff --git a/mogan/db/sqlalchemy/models.py b/mogan/db/sqlalchemy/models.py
index 3148e61..d58eb7c 100644
--- a/mogan/db/sqlalchemy/models.py
+++ b/mogan/db/sqlalchemy/models.py
@@ -90,7 +90,6 @@ class Server(Base):
90 launched_at = Column(DateTime, nullable=True) 90 launched_at = Column(DateTime, nullable=True)
91 extra = Column(db_types.JsonEncodedDict) 91 extra = Column(db_types.JsonEncodedDict)
92 partitions = Column(db_types.JsonEncodedDict) 92 partitions = Column(db_types.JsonEncodedDict)
93 locked = Column(Boolean)
94 locked_by = Column(Enum('owner', 'admin')) 93 locked_by = Column(Enum('owner', 'admin'))
95 affinity_zone = Column(String(255), nullable=True) 94 affinity_zone = Column(String(255), nullable=True)
96 key_name = Column(String(255), nullable=True) 95 key_name = Column(String(255), nullable=True)
diff --git a/mogan/engine/api.py b/mogan/engine/api.py
index 730d710..7d51871 100644
--- a/mogan/engine/api.py
+++ b/mogan/engine/api.py
@@ -46,7 +46,7 @@ MAX_USERDATA_SIZE = 65535
46def check_server_lock(function): 46def check_server_lock(function):
47 @six.wraps(function) 47 @six.wraps(function)
48 def inner(self, context, server, *args, **kwargs): 48 def inner(self, context, server, *args, **kwargs):
49 if server.locked and not context.is_admin: 49 if server.locked_by and not context.is_admin:
50 raise exception.ServerIsLocked(server_uuid=server.uuid) 50 raise exception.ServerIsLocked(server_uuid=server.uuid)
51 return function(self, context, server, *args, **kwargs) 51 return function(self, context, server, *args, **kwargs)
52 return inner 52 return inner
@@ -118,7 +118,6 @@ class API(object):
118 'flavor_uuid': flavor['uuid'], 118 'flavor_uuid': flavor['uuid'],
119 'name': name, 119 'name': name,
120 'description': description, 120 'description': description,
121 'locked': False,
122 'metadata': metadata or {}, 121 'metadata': metadata or {},
123 'partitions': partitions or {}, 122 'partitions': partitions or {},
124 'availability_zone': availability_zone, 123 'availability_zone': availability_zone,
@@ -476,11 +475,10 @@ class API(object):
476 """Lock the given server.""" 475 """Lock the given server."""
477 476
478 is_owner = server.project_id == context.project_id 477 is_owner = server.project_id == context.project_id
479 if server.locked and is_owner: 478 if server.locked_by and is_owner:
480 return 479 return
481 480
482 LOG.debug('Locking server: %s', server.uuid) 481 LOG.debug('Locking server: %s', server.uuid)
483 server.locked = True
484 server.locked_by = 'owner' if is_owner else 'admin' 482 server.locked_by = 'owner' if is_owner else 'admin'
485 server.save() 483 server.save()
486 484
@@ -488,7 +486,6 @@ class API(object):
488 """Unlock the given server.""" 486 """Unlock the given server."""
489 487
490 LOG.debug('Unlocking server: %s', server.uuid) 488 LOG.debug('Unlocking server: %s', server.uuid)
491 server.locked = False
492 server.locked_by = None 489 server.locked_by = None
493 server.save() 490 server.save()
494 491
@@ -700,7 +697,6 @@ class API(object):
700 'power_state': states.NOSTATE, 697 'power_state': states.NOSTATE,
701 'name': name, 698 'name': name,
702 'description': description, 699 'description': description,
703 'locked': False,
704 'metadata': metadata or {}, 700 'metadata': metadata or {},
705 'availability_zone': None} 701 'availability_zone': None}
706 702
diff --git a/mogan/notifications/objects/server.py b/mogan/notifications/objects/server.py
index 2eeabbf..6b41dc8 100644
--- a/mogan/notifications/objects/server.py
+++ b/mogan/notifications/objects/server.py
@@ -31,7 +31,6 @@ class ServerPayload(base.NotificationPayloadBase):
31 'power_state': ('server', 'power_state'), 31 'power_state': ('server', 'power_state'),
32 'flavor_uuid': ('server', 'flavor_uuid'), 32 'flavor_uuid': ('server', 'flavor_uuid'),
33 'description': ('server', 'description'), 33 'description': ('server', 'description'),
34 'locked': ('server', 'locked'),
35 'locked_by': ('server', 'locked_by'), 34 'locked_by': ('server', 'locked_by'),
36 'affinity_zone': ('server', 'affinity_zone'), 35 'affinity_zone': ('server', 'affinity_zone'),
37 'metadata': ('server', 'metadata'), 36 'metadata': ('server', 'metadata'),
@@ -55,7 +54,6 @@ class ServerPayload(base.NotificationPayloadBase):
55 'launched_at': fields.DateTimeField(nullable=True), 54 'launched_at': fields.DateTimeField(nullable=True),
56 'updated_at': fields.DateTimeField(nullable=True), 55 'updated_at': fields.DateTimeField(nullable=True),
57 'status': fields.StringField(nullable=True), 56 'status': fields.StringField(nullable=True),
58 'locked': fields.BooleanField(nullable=True),
59 'locked_by': fields.StringField(nullable=True), 57 'locked_by': fields.StringField(nullable=True),
60 'affinity_zone': fields.StringField(nullable=True), 58 'affinity_zone': fields.StringField(nullable=True),
61 'metadata': fields.FlexibleDictField(nullable=True), 59 'metadata': fields.FlexibleDictField(nullable=True),
diff --git a/mogan/objects/server.py b/mogan/objects/server.py
index f033f74..ee4e3cc 100644
--- a/mogan/objects/server.py
+++ b/mogan/objects/server.py
@@ -54,7 +54,6 @@ class Server(base.MoganObject, object_base.VersionedObjectDictCompat):
54 'launched_at': object_fields.DateTimeField(nullable=True), 54 'launched_at': object_fields.DateTimeField(nullable=True),
55 'metadata': object_fields.FlexibleDictField(nullable=True), 55 'metadata': object_fields.FlexibleDictField(nullable=True),
56 'partitions': object_fields.FlexibleDictField(nullable=True), 56 'partitions': object_fields.FlexibleDictField(nullable=True),
57 'locked': object_fields.BooleanField(default=False),
58 'locked_by': object_fields.StringField(nullable=True), 57 'locked_by': object_fields.StringField(nullable=True),
59 'affinity_zone': object_fields.StringField(nullable=True), 58 'affinity_zone': object_fields.StringField(nullable=True),
60 'key_name': object_fields.StringField(nullable=True), 59 'key_name': object_fields.StringField(nullable=True),
diff --git a/mogan/tests/unit/db/utils.py b/mogan/tests/unit/db/utils.py
index 133188d..f147ee5 100644
--- a/mogan/tests/unit/db/utils.py
+++ b/mogan/tests/unit/db/utils.py
@@ -64,7 +64,6 @@ def get_test_server(**kw):
64 'partitions': kw.get('partitions', {}), 64 'partitions': kw.get('partitions', {}),
65 'updated_at': kw.get('updated_at'), 65 'updated_at': kw.get('updated_at'),
66 'created_at': kw.get('created_at'), 66 'created_at': kw.get('created_at'),
67 'locked': kw.get('locked', False),
68 'locked_by': kw.get('locked_by', None), 67 'locked_by': kw.get('locked_by', None),
69 'affinity_zone': kw.get('affinity_zone', 'ZON1'), 68 'affinity_zone': kw.get('affinity_zone', 'ZON1'),
70 'key_name': kw.get('key_name', 'test_key') 69 'key_name': kw.get('key_name', 'test_key')
diff --git a/mogan/tests/unit/engine/test_engine_api.py b/mogan/tests/unit/engine/test_engine_api.py
index c6e7aad..fe6c0c4 100644
--- a/mogan/tests/unit/engine/test_engine_api.py
+++ b/mogan/tests/unit/engine/test_engine_api.py
@@ -237,16 +237,14 @@ class ComputeAPIUnitTest(base.DbTestCase):
237 user_id=self.user_id, project_id=self.project_id) 237 user_id=self.user_id, project_id=self.project_id)
238 fake_server_obj = self._create_fake_server_obj(fake_server) 238 fake_server_obj = self._create_fake_server_obj(fake_server)
239 self.engine_api.lock(self.context, fake_server_obj) 239 self.engine_api.lock(self.context, fake_server_obj)
240 self.assertTrue(fake_server_obj.locked)
241 self.assertEqual('owner', fake_server_obj.locked_by) 240 self.assertEqual('owner', fake_server_obj.locked_by)
242 241
243 def test_unlock_by_owner(self): 242 def test_unlock_by_owner(self):
244 fake_server = db_utils.get_test_server( 243 fake_server = db_utils.get_test_server(
245 user_id=self.user_id, project_id=self.project_id, 244 user_id=self.user_id, project_id=self.project_id,
246 locked=True, locked_by='owner') 245 locked_by='owner')
247 fake_server_obj = self._create_fake_server_obj(fake_server) 246 fake_server_obj = self._create_fake_server_obj(fake_server)
248 self.engine_api.unlock(self.context, fake_server_obj) 247 self.engine_api.unlock(self.context, fake_server_obj)
249 self.assertFalse(fake_server_obj.locked)
250 self.assertIsNone(fake_server_obj.locked_by) 248 self.assertIsNone(fake_server_obj.locked_by)
251 249
252 def test_lock_by_admin(self): 250 def test_lock_by_admin(self):
@@ -255,24 +253,22 @@ class ComputeAPIUnitTest(base.DbTestCase):
255 fake_server_obj = self._create_fake_server_obj(fake_server) 253 fake_server_obj = self._create_fake_server_obj(fake_server)
256 admin_context = context.get_admin_context() 254 admin_context = context.get_admin_context()
257 self.engine_api.lock(admin_context, fake_server_obj) 255 self.engine_api.lock(admin_context, fake_server_obj)
258 self.assertTrue(fake_server_obj.locked)
259 self.assertEqual('admin', fake_server_obj.locked_by) 256 self.assertEqual('admin', fake_server_obj.locked_by)
260 257
261 def test_unlock_by_admin(self): 258 def test_unlock_by_admin(self):
262 fake_server = db_utils.get_test_server( 259 fake_server = db_utils.get_test_server(
263 user_id=self.user_id, project_id=self.project_id, 260 user_id=self.user_id, project_id=self.project_id,
264 locked=True, locked_by='owner') 261 locked_by='owner')
265 fake_server_obj = self._create_fake_server_obj(fake_server) 262 fake_server_obj = self._create_fake_server_obj(fake_server)
266 admin_context = context.get_admin_context() 263 admin_context = context.get_admin_context()
267 self.engine_api.unlock(admin_context, fake_server_obj) 264 self.engine_api.unlock(admin_context, fake_server_obj)
268 self.assertFalse(fake_server_obj.locked)
269 self.assertIsNone(fake_server_obj.locked_by) 265 self.assertIsNone(fake_server_obj.locked_by)
270 266
271 @mock.patch('mogan.engine.api.API._delete_server') 267 @mock.patch('mogan.engine.api.API._delete_server')
272 def test_delete_locked_server_with_non_admin(self, mock_deleted): 268 def test_delete_locked_server_with_non_admin(self, mock_deleted):
273 fake_server = db_utils.get_test_server( 269 fake_server = db_utils.get_test_server(
274 user_id=self.user_id, project_id=self.project_id, 270 user_id=self.user_id, project_id=self.project_id,
275 locked=True, locked_by='owner') 271 locked_by='owner')
276 fake_server_obj = self._create_fake_server_obj(fake_server) 272 fake_server_obj = self._create_fake_server_obj(fake_server)
277 self.assertRaises(exception.ServerIsLocked, 273 self.assertRaises(exception.ServerIsLocked,
278 self.engine_api.delete, 274 self.engine_api.delete,
@@ -283,7 +279,7 @@ class ComputeAPIUnitTest(base.DbTestCase):
283 def test_power_locked_server_with_non_admin(self, mock_powered): 279 def test_power_locked_server_with_non_admin(self, mock_powered):
284 fake_server = db_utils.get_test_server( 280 fake_server = db_utils.get_test_server(
285 user_id=self.user_id, project_id=self.project_id, 281 user_id=self.user_id, project_id=self.project_id,
286 locked=True, locked_by='owner') 282 locked_by='owner')
287 fake_server_obj = self._create_fake_server_obj(fake_server) 283 fake_server_obj = self._create_fake_server_obj(fake_server)
288 self.assertRaises(exception.ServerIsLocked, 284 self.assertRaises(exception.ServerIsLocked,
289 self.engine_api.power, 285 self.engine_api.power,
@@ -294,7 +290,7 @@ class ComputeAPIUnitTest(base.DbTestCase):
294 def test_delete_locked_server_with_admin(self, mock_deleted): 290 def test_delete_locked_server_with_admin(self, mock_deleted):
295 fake_server = db_utils.get_test_server( 291 fake_server = db_utils.get_test_server(
296 user_id=self.user_id, project_id=self.project_id, 292 user_id=self.user_id, project_id=self.project_id,
297 locked=True, locked_by='owner') 293 locked_by='owner')
298 fake_server_obj = self._create_fake_server_obj(fake_server) 294 fake_server_obj = self._create_fake_server_obj(fake_server)
299 admin_context = context.get_admin_context() 295 admin_context = context.get_admin_context()
300 self.engine_api.delete(admin_context, fake_server_obj) 296 self.engine_api.delete(admin_context, fake_server_obj)
@@ -304,7 +300,7 @@ class ComputeAPIUnitTest(base.DbTestCase):
304 def test_power_locked_server_with_admin(self, mock_powered): 300 def test_power_locked_server_with_admin(self, mock_powered):
305 fake_server = db_utils.get_test_server( 301 fake_server = db_utils.get_test_server(
306 user_id=self.user_id, project_id=self.project_id, 302 user_id=self.user_id, project_id=self.project_id,
307 locked=True, locked_by='owner') 303 locked_by='owner')
308 fake_server_obj = self._create_fake_server_obj(fake_server) 304 fake_server_obj = self._create_fake_server_obj(fake_server)
309 admin_context = context.get_admin_context() 305 admin_context = context.get_admin_context()
310 self.engine_api.power(admin_context, fake_server_obj, 'reboot') 306 self.engine_api.power(admin_context, fake_server_obj, 'reboot')
@@ -314,7 +310,7 @@ class ComputeAPIUnitTest(base.DbTestCase):
314 def test_rebuild_locked_server_with_non_admin(self, mock_rebuild): 310 def test_rebuild_locked_server_with_non_admin(self, mock_rebuild):
315 fake_server = db_utils.get_test_server( 311 fake_server = db_utils.get_test_server(
316 user_id=self.user_id, project_id=self.project_id, 312 user_id=self.user_id, project_id=self.project_id,
317 locked=True, locked_by='owner') 313 locked_by='owner')
318 fake_server_obj = self._create_fake_server_obj(fake_server) 314 fake_server_obj = self._create_fake_server_obj(fake_server)
319 self.assertRaises(exception.ServerIsLocked, 315 self.assertRaises(exception.ServerIsLocked,
320 self.engine_api.rebuild, 316 self.engine_api.rebuild,
@@ -327,7 +323,7 @@ class ComputeAPIUnitTest(base.DbTestCase):
327 mock_get_image): 323 mock_get_image):
328 fake_server = db_utils.get_test_server( 324 fake_server = db_utils.get_test_server(
329 user_id=self.user_id, project_id=self.project_id, 325 user_id=self.user_id, project_id=self.project_id,
330 locked=True, locked_by='owner') 326 locked_by='owner')
331 fake_server_obj = self._create_fake_server_obj(fake_server) 327 fake_server_obj = self._create_fake_server_obj(fake_server)
332 admin_context = context.get_admin_context() 328 admin_context = context.get_admin_context()
333 mock_get_image.side_effect = None 329 mock_get_image.side_effect = None
diff --git a/mogan/tests/unit/notifications/test_notification.py b/mogan/tests/unit/notifications/test_notification.py
index 34fe536..5b42216 100644
--- a/mogan/tests/unit/notifications/test_notification.py
+++ b/mogan/tests/unit/notifications/test_notification.py
@@ -226,9 +226,9 @@ class TestNotificationBase(test_base.TestCase):
226 226
227 227
228notification_object_data = { 228notification_object_data = {
229 'ServerPayload': '1.0-55ce3a2c615a32c80b152aaf2b905703', 229 'ServerPayload': '1.0-30fefa8478f1b9b35c66868377fb6dfd',
230 'ServerAddressesPayload': '1.0-69caf4c36f36756bb1f6970d093ee1f6', 230 'ServerAddressesPayload': '1.0-69caf4c36f36756bb1f6970d093ee1f6',
231 'ServerActionPayload': '1.0-a22c2f18b8dd17a3990e5b4c64989d26', 231 'ServerActionPayload': '1.0-8dc4429afa34d86ab92c9387e3ccd0c3',
232 'ServerActionNotification': '1.0-20087e599436bd9db62ae1fb5e2dfef2', 232 'ServerActionNotification': '1.0-20087e599436bd9db62ae1fb5e2dfef2',
233 'ExceptionPayload': '1.0-7c31986d8d78bed910c324965c431e18', 233 'ExceptionPayload': '1.0-7c31986d8d78bed910c324965c431e18',
234 'EventType': '1.0-93493dd78bdfed806fca70c91d85cbb4', 234 'EventType': '1.0-93493dd78bdfed806fca70c91d85cbb4',
diff --git a/mogan/tests/unit/objects/test_objects.py b/mogan/tests/unit/objects/test_objects.py
index dabff02..a106039 100644
--- a/mogan/tests/unit/objects/test_objects.py
+++ b/mogan/tests/unit/objects/test_objects.py
@@ -382,7 +382,7 @@ class _TestObject(object):
382# version bump. It is md5 hash of object fields and remotable methods. 382# version bump. It is md5 hash of object fields and remotable methods.
383# The fingerprint values should only be changed if there is a version bump. 383# The fingerprint values should only be changed if there is a version bump.
384expected_object_fingerprints = { 384expected_object_fingerprints = {
385 'Server': '1.0-6b13b984cd3656a977456a12d3d1c167', 385 'Server': '1.0-1480ee88a244bf44492f61f20a022a6f',
386 'ServerFault': '1.0-74349ff701259e4834b4e9dc2dac1b12', 386 'ServerFault': '1.0-74349ff701259e4834b4e9dc2dac1b12',
387 'ServerFaultList': '1.0-43e8aad0258652921f929934e9e048fd', 387 'ServerFaultList': '1.0-43e8aad0258652921f929934e9e048fd',
388 'Flavor': '1.0-9f7166aa387d89ec40cd699019d0c9a9', 388 'Flavor': '1.0-9f7166aa387d89ec40cd699019d0c9a9',