Extracted save methods for image_usage and image_delete to glance_notification
This commit is contained in:

committed by
Manali Latkar

parent
5589c27a67
commit
f227803dd5
@@ -161,6 +161,26 @@ class GlanceNotification(Notification):
|
|||||||
stacklog.warn("Ignoring exists without created_at. GlanceRawData(%s)"
|
stacklog.warn("Ignoring exists without created_at. GlanceRawData(%s)"
|
||||||
% raw.id)
|
% raw.id)
|
||||||
|
|
||||||
|
def save_usage(self, raw):
|
||||||
|
values = {
|
||||||
|
'uuid': self.uuid,
|
||||||
|
'created_at': self.created_at,
|
||||||
|
'owner': self.owner,
|
||||||
|
'size': self.size,
|
||||||
|
'last_raw': raw
|
||||||
|
}
|
||||||
|
db.create_image_usage(**values)
|
||||||
|
|
||||||
|
def save_delete(self, raw):
|
||||||
|
values = {
|
||||||
|
'uuid': self.uuid,
|
||||||
|
'created_at': self.created_at,
|
||||||
|
'owner': self.owner,
|
||||||
|
'size': self.size,
|
||||||
|
'raw': raw,
|
||||||
|
'deleted_at': self.deleted_at
|
||||||
|
}
|
||||||
|
db.create_image_delete(**values)
|
||||||
|
|
||||||
class NovaNotification(Notification):
|
class NovaNotification(Notification):
|
||||||
def __init__(self, body, deployment, routing_key, json):
|
def __init__(self, body, deployment, routing_key, json):
|
||||||
|
@@ -286,26 +286,10 @@ def _process_exists(raw, notification):
|
|||||||
|
|
||||||
|
|
||||||
def _process_glance_usage(raw, notification):
|
def _process_glance_usage(raw, notification):
|
||||||
values = {
|
notification.save_usage(raw)
|
||||||
'uuid': notification.uuid,
|
|
||||||
'created_at': notification.created_at,
|
|
||||||
'owner': notification.owner,
|
|
||||||
'size': notification.size,
|
|
||||||
'last_raw': raw
|
|
||||||
}
|
|
||||||
STACKDB.create_image_usage(**values)
|
|
||||||
|
|
||||||
|
|
||||||
def _process_glance_delete(raw, notification):
|
def _process_glance_delete(raw, notification):
|
||||||
values = {
|
notification.save_delete(raw)
|
||||||
'uuid': notification.uuid,
|
|
||||||
'created_at': notification.created_at,
|
|
||||||
'owner': notification.owner,
|
|
||||||
'size': notification.size,
|
|
||||||
'raw': raw,
|
|
||||||
'deleted_at': notification.deleted_at
|
|
||||||
}
|
|
||||||
STACKDB.create_image_delete(**values)
|
|
||||||
|
|
||||||
|
|
||||||
def _process_glance_exists(raw, notification):
|
def _process_glance_exists(raw, notification):
|
||||||
|
@@ -187,7 +187,7 @@ class GlanceNotificationTestCase(unittest.TestCase):
|
|||||||
service="glance-api01-r2961",
|
service="glance-api01-r2961",
|
||||||
host="global.preprod-ord.ohthree.com",
|
host="global.preprod-ord.ohthree.com",
|
||||||
instance=INSTANCE_ID_1,
|
instance=INSTANCE_ID_1,
|
||||||
request_id=None,
|
request_id='',
|
||||||
image_type=0,
|
image_type=0,
|
||||||
status="saving",
|
status="saving",
|
||||||
uuid="2df2ccf6-bc1b-4853-aab0-25fda346b3bb").AndReturn(raw)
|
uuid="2df2ccf6-bc1b-4853-aab0-25fda346b3bb").AndReturn(raw)
|
||||||
@@ -199,8 +199,7 @@ class GlanceNotificationTestCase(unittest.TestCase):
|
|||||||
self.assertEquals(notification.save(), raw)
|
self.assertEquals(notification.save(), raw)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
def test_process_image_exists(self):
|
def test_save_image_exists(self):
|
||||||
usage = self.mox.CreateMockAnything()
|
|
||||||
raw = self.mox.CreateMockAnything()
|
raw = self.mox.CreateMockAnything()
|
||||||
audit_period_beginning = "2013-05-20 17:31:57.939614"
|
audit_period_beginning = "2013-05-20 17:31:57.939614"
|
||||||
audit_period_ending = "2013-06-20 17:31:57.939614"
|
audit_period_ending = "2013-06-20 17:31:57.939614"
|
||||||
@@ -251,9 +250,8 @@ class GlanceNotificationTestCase(unittest.TestCase):
|
|||||||
notification.save_exists(raw)
|
notification.save_exists(raw)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
def test_process_image_exists_with_delete_not_none(self):
|
def test_save_image_exists_with_delete_not_none(self):
|
||||||
raw = self.mox.CreateMockAnything()
|
raw = self.mox.CreateMockAnything()
|
||||||
usage = self.mox.CreateMockAnything()
|
|
||||||
delete = self.mox.CreateMockAnything()
|
delete = self.mox.CreateMockAnything()
|
||||||
audit_period_beginning = "2013-05-20 17:31:57.939614"
|
audit_period_beginning = "2013-05-20 17:31:57.939614"
|
||||||
audit_period_ending = "2013-06-20 17:31:57.939614"
|
audit_period_ending = "2013-06-20 17:31:57.939614"
|
||||||
@@ -311,7 +309,7 @@ class GlanceNotificationTestCase(unittest.TestCase):
|
|||||||
notification.save_exists(raw)
|
notification.save_exists(raw)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
def test_process_image_exists_with_usage_not_none(self):
|
def test_save_image_exists_with_usage_not_none(self):
|
||||||
raw = self.mox.CreateMockAnything()
|
raw = self.mox.CreateMockAnything()
|
||||||
usage = self.mox.CreateMockAnything()
|
usage = self.mox.CreateMockAnything()
|
||||||
audit_period_beginning = "2013-05-20 17:31:57.939614"
|
audit_period_beginning = "2013-05-20 17:31:57.939614"
|
||||||
@@ -364,6 +362,74 @@ class GlanceNotificationTestCase(unittest.TestCase):
|
|||||||
notification.save_exists(raw)
|
notification.save_exists(raw)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
|
def test_save_usage_should_persist_image_usage(self):
|
||||||
|
raw = self.mox.CreateMockAnything()
|
||||||
|
size = 123
|
||||||
|
uuid = "2df2ccf6-bc1b-4853-aab0-25fda346b3bb"
|
||||||
|
body = {
|
||||||
|
"event_type": "image.upload",
|
||||||
|
"timestamp": "2013-06-20 18:31:57.939614",
|
||||||
|
"publisher_id": "glance-api01-r2961.global.preprod-ord.ohthree.com",
|
||||||
|
"payload": {
|
||||||
|
"created_at": str(DUMMY_TIME),
|
||||||
|
"size": size,
|
||||||
|
"owner": TENANT_ID_1,
|
||||||
|
"id": "2df2ccf6-bc1b-4853-aab0-25fda346b3bb",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deployment = "1"
|
||||||
|
routing_key = "glance_monitor.info"
|
||||||
|
json = '{["routing_key", {%s}]}' % body
|
||||||
|
|
||||||
|
self.mox.StubOutWithMock(db, 'create_image_usage')
|
||||||
|
db.create_image_usage(
|
||||||
|
created_at=utils.str_time_to_unix(str(DUMMY_TIME)),
|
||||||
|
owner=TENANT_ID_1,
|
||||||
|
last_raw=raw,
|
||||||
|
size=size,
|
||||||
|
uuid=uuid).AndReturn(raw)
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
notification = GlanceNotification(body, deployment, routing_key, json)
|
||||||
|
notification.save_usage(raw)
|
||||||
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
|
def test_save_delete_should_persist_image_delete(self):
|
||||||
|
raw = self.mox.CreateMockAnything()
|
||||||
|
size = 123
|
||||||
|
uuid = "2df2ccf6-bc1b-4853-aab0-25fda346b3bb"
|
||||||
|
deleted_at = "2013-06-20 14:31:57.939614"
|
||||||
|
body = {
|
||||||
|
"event_type": "image.delete",
|
||||||
|
"timestamp": "2013-06-20 18:31:57.939614",
|
||||||
|
"publisher_id": "glance-api01-r2961.global.preprod-ord.ohthree.com",
|
||||||
|
"payload": {
|
||||||
|
"created_at": str(DUMMY_TIME),
|
||||||
|
"size": size,
|
||||||
|
"owner": TENANT_ID_1,
|
||||||
|
"id": "2df2ccf6-bc1b-4853-aab0-25fda346b3bb",
|
||||||
|
"deleted_at": deleted_at
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deployment = "1"
|
||||||
|
routing_key = "glance_monitor.info"
|
||||||
|
json = '{["routing_key", {%s}]}' % body
|
||||||
|
|
||||||
|
self.mox.StubOutWithMock(db, 'create_image_delete')
|
||||||
|
db.create_image_delete(
|
||||||
|
created_at=utils.str_time_to_unix(str(DUMMY_TIME)),
|
||||||
|
owner=TENANT_ID_1,
|
||||||
|
raw=raw,
|
||||||
|
size=size,
|
||||||
|
uuid=uuid,
|
||||||
|
deleted_at=utils.str_time_to_unix(deleted_at)).AndReturn(raw)
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
notification = GlanceNotification(body, deployment, routing_key, json)
|
||||||
|
notification.save_delete(raw)
|
||||||
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class NotificationTestCase(unittest.TestCase):
|
class NotificationTestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@@ -838,50 +838,25 @@ class StacktachImageUsageParsingTestCase(unittest.TestCase):
|
|||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.mox.UnsetStubs()
|
self.mox.UnsetStubs()
|
||||||
|
|
||||||
def test_process_image_usage_for_new_launch(self):
|
def test_save_image_usage(self):
|
||||||
raw = self.mox.CreateMockAnything()
|
raw = self.mox.CreateMockAnything()
|
||||||
values = {
|
|
||||||
'created_at': str(DUMMY_TIME),
|
|
||||||
'owner': TENANT_ID_1,
|
|
||||||
'uuid': IMAGE_UUID_1,
|
|
||||||
'size': 1234,
|
|
||||||
'last_raw': raw
|
|
||||||
}
|
|
||||||
notification = self.mox.CreateMockAnything()
|
notification = self.mox.CreateMockAnything()
|
||||||
notification.created_at = values['created_at']
|
notification.save_usage(raw)
|
||||||
notification.owner = values['owner']
|
|
||||||
notification.uuid = values['uuid']
|
|
||||||
notification.size = values['size']
|
|
||||||
notification.raw = values['last_raw']
|
|
||||||
views.STACKDB.create_image_usage(**values)
|
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
views._process_glance_usage(raw, notification)
|
views._process_glance_usage(raw, notification)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
def test_process_image_deletes(self):
|
def test_save_image_delete(self):
|
||||||
raw = self.mox.CreateMockAnything()
|
raw = self.mox.CreateMockAnything()
|
||||||
values = {
|
|
||||||
'uuid': IMAGE_UUID_1,
|
|
||||||
'created_at': str(DUMMY_TIME),
|
|
||||||
'deleted_at': str(DUMMY_TIME),
|
|
||||||
'owner': TENANT_ID_1,
|
|
||||||
'size': 1234,
|
|
||||||
'raw': raw
|
|
||||||
}
|
|
||||||
|
|
||||||
notification = self.mox.CreateMockAnything()
|
notification = self.mox.CreateMockAnything()
|
||||||
notification.created_at = values['created_at']
|
notification.save_delete(raw)
|
||||||
notification.deleted_at = values['deleted_at']
|
|
||||||
notification.owner = values['owner']
|
|
||||||
notification.uuid = values['uuid']
|
|
||||||
notification.size = values['size']
|
|
||||||
notification.raw = values['raw']
|
|
||||||
views.STACKDB.create_image_delete(**values)
|
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
views._process_glance_delete(raw, notification)
|
views._process_glance_delete(raw, notification)
|
||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
|
|
||||||
def test_process_image_exists(self):
|
def test_save_image_exists(self):
|
||||||
raw = self.mox.CreateMockAnything()
|
raw = self.mox.CreateMockAnything()
|
||||||
notification = self.mox.CreateMockAnything()
|
notification = self.mox.CreateMockAnything()
|
||||||
notification.save_exists(raw)
|
notification.save_exists(raw)
|
||||||
|
Reference in New Issue
Block a user