Removed image_type from GenericRawData

Added message_id to GenericRawdata
Regenerated migration
This commit is contained in:
Anuj Mathur 2013-07-15 16:21:40 +05:30 committed by Manali Latkar
parent 755e706107
commit 25baf82328
6 changed files with 69 additions and 45 deletions

View File

@ -48,6 +48,24 @@ class Migration(SchemaMigration):
)) ))
db.send_create_signal(u'stacktach', ['ImageUsage']) db.send_create_signal(u'stacktach', ['ImageUsage'])
# Adding model 'GenericRawData'
db.create_table(u'stacktach_genericrawdata', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('deployment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['stacktach.Deployment'])),
('tenant', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('json', self.gf('django.db.models.fields.TextField')()),
('routing_key', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('when', self.gf('django.db.models.fields.DecimalField')(max_digits=20, decimal_places=6, db_index=True)),
('publisher', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=100, null=True, blank=True)),
('event', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('service', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('host', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=100, null=True, blank=True)),
('instance', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('request_id', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('message_id', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
))
db.send_create_signal(u'stacktach', ['GenericRawData'])
# Adding model 'ImageExists' # Adding model 'ImageExists'
db.create_table(u'stacktach_imageexists', ( db.create_table(u'stacktach_imageexists', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
@ -67,24 +85,6 @@ class Migration(SchemaMigration):
)) ))
db.send_create_signal(u'stacktach', ['ImageExists']) db.send_create_signal(u'stacktach', ['ImageExists'])
# Adding model 'GenericRawData'
db.create_table(u'stacktach_genericrawdata', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('deployment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['stacktach.Deployment'])),
('tenant', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('json', self.gf('django.db.models.fields.TextField')()),
('routing_key', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('image_type', self.gf('django.db.models.fields.IntegerField')(default=0, null=True, db_index=True)),
('when', self.gf('django.db.models.fields.DecimalField')(max_digits=20, decimal_places=6, db_index=True)),
('publisher', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=100, null=True, blank=True)),
('event', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('service', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('host', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=100, null=True, blank=True)),
('instance', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
('request_id', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=50, null=True, blank=True)),
))
db.send_create_signal(u'stacktach', ['GenericRawData'])
def backwards(self, orm): def backwards(self, orm):
# Deleting model 'ImageDeletes' # Deleting model 'ImageDeletes'
@ -96,12 +96,12 @@ class Migration(SchemaMigration):
# Deleting model 'ImageUsage' # Deleting model 'ImageUsage'
db.delete_table(u'stacktach_imageusage') db.delete_table(u'stacktach_imageusage')
# Deleting model 'ImageExists'
db.delete_table(u'stacktach_imageexists')
# Deleting model 'GenericRawData' # Deleting model 'GenericRawData'
db.delete_table(u'stacktach_genericrawdata') db.delete_table(u'stacktach_genericrawdata')
# Deleting model 'ImageExists'
db.delete_table(u'stacktach_imageexists')
models = { models = {
u'stacktach.deployment': { u'stacktach.deployment': {
@ -115,9 +115,9 @@ class Migration(SchemaMigration):
'event': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'event': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
'host': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}), 'host': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'image_type': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'db_index': 'True'}),
'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
'json': ('django.db.models.fields.TextField', [], {}), 'json': ('django.db.models.fields.TextField', [], {}),
'message_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
'publisher': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}), 'publisher': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}),
'request_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'request_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
'routing_key': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'routing_key': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
@ -213,9 +213,14 @@ class Migration(SchemaMigration):
'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
'instance_type_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'instance_type_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}),
'launched_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), 'launched_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}),
'os_architecture': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'os_distro': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'os_version': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'rax_options': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'row_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'row_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'row_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'row_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'source': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '150', 'null': 'True', 'blank': 'True'}) 'source': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '150', 'null': 'True', 'blank': 'True'}),
'tenant': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'})
}, },
u'stacktach.instanceusage': { u'stacktach.instanceusage': {
'Meta': {'object_name': 'InstanceUsage'}, 'Meta': {'object_name': 'InstanceUsage'},

View File

@ -1,3 +1,18 @@
# Copyright 2012 - Dark Secret Software Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from django import forms from django import forms
from django.db import models from django.db import models
@ -16,7 +31,6 @@ class GenericRawData(models.Model):
json = models.TextField() json = models.TextField()
routing_key = models.CharField(max_length=50, null=True, routing_key = models.CharField(max_length=50, null=True,
blank=True, db_index=True) blank=True, db_index=True)
image_type = models.IntegerField(null=True, default=0, db_index=True)
when = models.DecimalField(max_digits=20, decimal_places=6, when = models.DecimalField(max_digits=20, decimal_places=6,
db_index=True) db_index=True)
publisher = models.CharField(max_length=100, null=True, publisher = models.CharField(max_length=100, null=True,
@ -31,6 +45,8 @@ class GenericRawData(models.Model):
blank=True, db_index=True) blank=True, db_index=True)
request_id = models.CharField(max_length=50, null=True, request_id = models.CharField(max_length=50, null=True,
blank=True, db_index=True) blank=True, db_index=True)
message_id = models.CharField(max_length=50, null=True,
blank=True, db_index=True)
@staticmethod @staticmethod
def get_name(): def get_name():

View File

@ -72,18 +72,23 @@ class Notification(object):
instance = self.payload.get('instance', {}).get('uuid') instance = self.payload.get('instance', {}).get('uuid')
return instance return instance
@property
def message_id(self):
return self.body.get('message_id', None)
def save(self): def save(self):
return db.create_generic_rawdata(deployment=self.deployment, return db.create_generic_rawdata(deployment=self.deployment,
routing_key=self.routing_key, routing_key=self.routing_key,
tenant=self.tenant, tenant=self.tenant,
json=self.json, json=self.json,
when=self.when, when=self.when,
publisher=self.publisher, publisher=self.publisher,
event=self.event, event=self.event,
service=self.service, service=self.service,
host=self.host, host=self.host,
instance=self.instance, instance=self.instance,
request_id=self.request_id) request_id=self.request_id,
message_id=self.message_id)
class GlanceNotification(Notification): class GlanceNotification(Notification):
@ -179,6 +184,7 @@ class GlanceNotification(Notification):
} }
db.create_image_delete(**values) 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):
super(NovaNotification, self).__init__(body, deployment, routing_key, super(NovaNotification, self).__init__(body, deployment, routing_key,
@ -203,8 +209,6 @@ class NovaNotification(Notification):
'audit_period_beginning', None) 'audit_period_beginning', None)
self.audit_period_ending = self.payload.get( self.audit_period_ending = self.payload.get(
'audit_period_ending', None) 'audit_period_ending', None)
self.message = self.payload.get('message', None)
self.message_id = self.body.get('message_id', None)
@property @property
def host(self): def host(self):

View File

@ -142,13 +142,13 @@ class GenericRawDataTestCase(TransactionTestCase):
'tenant': '1234567', 'tenant': '1234567',
'json': '{}', 'json': '{}',
'routing_key': 'monitor.info', 'routing_key': 'monitor.info',
'image_type': 1,
'publisher': 'publisher', 'publisher': 'publisher',
'event': 'event', 'event': 'event',
'service': 'service', 'service': 'service',
'host': 'host', 'host': 'host',
'instance': '1234-5678-9012-3456', 'instance': '1234-5678-9012-3456',
'request_id': '1234'} 'request_id': '1234',
'message_id': 'message_id'}
db.create_generic_rawdata(**kwargs) db.create_generic_rawdata(**kwargs)
rawdata = GenericRawData.objects.all()[0] rawdata = GenericRawData.objects.all()[0]

View File

@ -349,7 +349,7 @@ def post_process_glancerawdata(raw, notification):
aggregate_glance_usage(raw, notification) aggregate_glance_usage(raw, notification)
def post_process_genericrawdata(raw, body, notification): def post_process_genericrawdata(raw, notification):
pass pass

View File

@ -35,6 +35,7 @@ from tests.unit.utils import DUMMY_TIME
from tests.unit.utils import TIMESTAMP_1 from tests.unit.utils import TIMESTAMP_1
from tests.unit.utils import TENANT_ID_1 from tests.unit.utils import TENANT_ID_1
from tests.unit.utils import INSTANCE_ID_1 from tests.unit.utils import INSTANCE_ID_1
from tests.unit.utils import MESSAGE_ID_1
class NovaNotificationTestCase(unittest.TestCase): class NovaNotificationTestCase(unittest.TestCase):
@ -422,7 +423,6 @@ class GlanceNotificationTestCase(unittest.TestCase):
self.mox.VerifyAll() self.mox.VerifyAll()
class NotificationTestCase(unittest.TestCase): class NotificationTestCase(unittest.TestCase):
def setUp(self): def setUp(self):
self.mox = mox.Mox() self.mox = mox.Mox()
@ -437,14 +437,12 @@ class NotificationTestCase(unittest.TestCase):
'_context_project_id': TENANT_ID_1, '_context_project_id': TENANT_ID_1,
"timestamp": TIMESTAMP_1, "timestamp": TIMESTAMP_1,
"publisher_id": "glance-api01-r2961.global.preprod-ord.ohthree.com", "publisher_id": "glance-api01-r2961.global.preprod-ord.ohthree.com",
"message_id": MESSAGE_ID_1,
"payload": { "payload": {
'instance_id': INSTANCE_ID_1, 'instance_id': INSTANCE_ID_1,
"status": "saving", "status": "saving",
"container_format": "ovf", "container_format": "ovf",
"properties": { "tenant": "5877054"
"image_type": "snapshot",
},
"tenant": "5877054",
} }
} }
deployment = "1" deployment = "1"
@ -463,7 +461,8 @@ class NotificationTestCase(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=REQUEST_ID_1).AndReturn(raw) request_id=REQUEST_ID_1,
message_id=MESSAGE_ID_1).AndReturn(raw)
self.mox.ReplayAll() self.mox.ReplayAll()