Finishing unordered-deletes, modifying db queries for low resolution timestamps from Nova
This commit is contained in:
parent
1d8e18e865
commit
05b4cb38dd
@ -1,43 +1,71 @@
|
|||||||
import models
|
import models
|
||||||
|
|
||||||
|
|
||||||
def get_or_create_deployment(name):
|
def get_or_create_deployment(name):
|
||||||
return models.Deployment.objects.get_or_create(name=name)
|
return models.Deployment.objects.get_or_create(name=name)
|
||||||
|
|
||||||
|
|
||||||
def create_rawdata(**kwargs):
|
def create_rawdata(**kwargs):
|
||||||
return models.RawData(**kwargs)
|
return models.RawData(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def create_lifecycle(**kwargs):
|
def create_lifecycle(**kwargs):
|
||||||
return models.Lifecycle(**kwargs)
|
return models.Lifecycle(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def find_lifecycles(**kwargs):
|
def find_lifecycles(**kwargs):
|
||||||
return models.Lifecycle.objects.select_related().filter(**kwargs)
|
return models.Lifecycle.objects.select_related().filter(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def create_timing(**kwargs):
|
def create_timing(**kwargs):
|
||||||
return models.Timing(**kwargs)
|
return models.Timing(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def find_timings(**kwargs):
|
def find_timings(**kwargs):
|
||||||
return models.Timing.objects.select_related().filter(**kwargs)
|
return models.Timing.objects.select_related().filter(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def create_request_tracker(**kwargs):
|
def create_request_tracker(**kwargs):
|
||||||
return models.RequestTracker(**kwargs)
|
return models.RequestTracker(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def find_request_trackers(**kwargs):
|
def find_request_trackers(**kwargs):
|
||||||
return models.RequestTracker.objects.filter(**kwargs)
|
return models.RequestTracker.objects.filter(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def create_instance_usage(**kwargs):
|
def create_instance_usage(**kwargs):
|
||||||
return models.InstanceUsage(**kwargs)
|
return models.InstanceUsage(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def get_or_create_instance_usage(**kwargs):
|
def get_or_create_instance_usage(**kwargs):
|
||||||
return models.InstanceUsage.objects.get_or_create(**kwargs)
|
return models.InstanceUsage.objects.get_or_create(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def get_instance_usage(**kwargs):
|
def get_instance_usage(**kwargs):
|
||||||
return models.InstanceUsage.objects.get(**kwargs)
|
usage = None
|
||||||
|
try:
|
||||||
|
usage = models.InstanceUsage.objects.get(**kwargs)
|
||||||
|
except models.InstanceUsage.DoesNotExist:
|
||||||
|
pass
|
||||||
|
return usage
|
||||||
|
|
||||||
|
|
||||||
def create_instance_delete(**kwargs):
|
def create_instance_delete(**kwargs):
|
||||||
return models.InstanceDeletes(**kwargs)
|
return models.InstanceDeletes(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def get_instance_delete(**kwargs):
|
||||||
|
delete = None
|
||||||
|
try:
|
||||||
|
delete = models.InstanceDeletes.objects.get(**kwargs)
|
||||||
|
except models.InstanceDeletes.DoesNotExist:
|
||||||
|
pass
|
||||||
|
return delete
|
||||||
|
|
||||||
|
|
||||||
def create_instance_exists(**kwargs):
|
def create_instance_exists(**kwargs):
|
||||||
return models.InstanceExists(**kwargs)
|
return models.InstanceExists(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
def save(obj):
|
def save(obj):
|
||||||
obj.save()
|
obj.save()
|
@ -103,10 +103,8 @@ class InstanceExists(models.Model):
|
|||||||
]
|
]
|
||||||
instance = models.CharField(max_length=50, null=True,
|
instance = models.CharField(max_length=50, null=True,
|
||||||
blank=True, db_index=True)
|
blank=True, db_index=True)
|
||||||
#launched_at = models.IntegerField(null=True, db_index=True)
|
|
||||||
launched_at = models.DecimalField(null=True, max_digits=20,
|
launched_at = models.DecimalField(null=True, max_digits=20,
|
||||||
decimal_places=6)
|
decimal_places=6)
|
||||||
#deleted_at = models.IntegerField(null=True, db_index=True)
|
|
||||||
deleted_at = models.DecimalField(null=True, max_digits=20,
|
deleted_at = models.DecimalField(null=True, max_digits=20,
|
||||||
decimal_places=6)
|
decimal_places=6)
|
||||||
message_id = models.CharField(max_length=50, null=True,
|
message_id = models.CharField(max_length=50, null=True,
|
||||||
@ -120,6 +118,7 @@ class InstanceExists(models.Model):
|
|||||||
default=PENDING)
|
default=PENDING)
|
||||||
raw = models.ForeignKey(RawData, related_name='+', null=True)
|
raw = models.ForeignKey(RawData, related_name='+', null=True)
|
||||||
usage = models.ForeignKey(InstanceUsage, related_name='+', null=True)
|
usage = models.ForeignKey(InstanceUsage, related_name='+', null=True)
|
||||||
|
delete = models.ForeignKey(InstanceDeletes, related_name='+', null=True)
|
||||||
|
|
||||||
|
|
||||||
class Timing(models.Model):
|
class Timing(models.Model):
|
||||||
|
@ -270,16 +270,21 @@ def _process_exists(raw):
|
|||||||
notif = json.loads(raw.json)
|
notif = json.loads(raw.json)
|
||||||
payload = notif[1]['payload']
|
payload = notif[1]['payload']
|
||||||
instance_id = payload['instance_id']
|
instance_id = payload['instance_id']
|
||||||
launched_at = payload['launched_at']
|
launched_at = str_time_to_unix(payload['launched_at'])
|
||||||
launched_at = str_time_to_unix(launched_at)
|
launched_range = (launched_at, launched_at+1)
|
||||||
usage = STACKDB.get_instance_usage(instance=instance_id,
|
usage = STACKDB.get_instance_usage(instance=instance_id,
|
||||||
launched_at=launched_at)
|
launched_at__range=launched_range)
|
||||||
|
delete = STACKDB.get_instance_delete(instance=instance_id,
|
||||||
|
launched_at__range=launched_range)
|
||||||
values = {}
|
values = {}
|
||||||
values['message_id'] = notif[1]['message_id']
|
values['message_id'] = notif[1]['message_id']
|
||||||
values['instance'] = instance_id
|
values['instance'] = instance_id
|
||||||
values['launched_at'] = launched_at
|
values['launched_at'] = launched_at
|
||||||
values['instance_type_id'] = payload['instance_type_id']
|
values['instance_type_id'] = payload['instance_type_id']
|
||||||
values['usage'] = usage
|
if usage:
|
||||||
|
values['usage'] = usage
|
||||||
|
if delete:
|
||||||
|
values['delete'] = delete
|
||||||
values['raw'] = raw
|
values['raw'] = raw
|
||||||
|
|
||||||
deleted_at = payload.get('deleted_at')
|
deleted_at = payload.get('deleted_at')
|
||||||
|
@ -537,9 +537,13 @@ class StacktackUsageParsingTestCase(unittest.TestCase):
|
|||||||
raw = utils.create_raw(self.mox, current_decimal, event=event,
|
raw = utils.create_raw(self.mox, current_decimal, event=event,
|
||||||
json_str=json_str)
|
json_str=json_str)
|
||||||
usage = self.mox.CreateMockAnything()
|
usage = self.mox.CreateMockAnything()
|
||||||
|
launched_range = (launch_decimal, launch_decimal+1)
|
||||||
views.STACKDB.get_instance_usage(instance=INSTANCE_ID_1,
|
views.STACKDB.get_instance_usage(instance=INSTANCE_ID_1,
|
||||||
launched_at=launch_decimal)\
|
launched_at__range=launched_range)\
|
||||||
.AndReturn(usage)
|
.AndReturn(usage)
|
||||||
|
views.STACKDB.get_instance_delete(instance=INSTANCE_ID_1,
|
||||||
|
launched_at__range=launched_range)\
|
||||||
|
.AndReturn(None)
|
||||||
exists_values = {
|
exists_values = {
|
||||||
'message_id': MESSAGE_ID_1,
|
'message_id': MESSAGE_ID_1,
|
||||||
'instance': INSTANCE_ID_1,
|
'instance': INSTANCE_ID_1,
|
||||||
@ -569,9 +573,14 @@ class StacktackUsageParsingTestCase(unittest.TestCase):
|
|||||||
raw = utils.create_raw(self.mox, current_decimal, event=event,
|
raw = utils.create_raw(self.mox, current_decimal, event=event,
|
||||||
json_str=json_str)
|
json_str=json_str)
|
||||||
usage = self.mox.CreateMockAnything()
|
usage = self.mox.CreateMockAnything()
|
||||||
|
launched_range = (launch_decimal, launch_decimal+1)
|
||||||
views.STACKDB.get_instance_usage(instance=INSTANCE_ID_1,
|
views.STACKDB.get_instance_usage(instance=INSTANCE_ID_1,
|
||||||
launched_at=launch_decimal)\
|
launched_at__range=launched_range)\
|
||||||
.AndReturn(usage)
|
.AndReturn(usage)
|
||||||
|
delete = self.mox.CreateMockAnything()
|
||||||
|
views.STACKDB.get_instance_delete(instance=INSTANCE_ID_1,
|
||||||
|
launched_at__range=launched_range)\
|
||||||
|
.AndReturn(delete)
|
||||||
exists_values = {
|
exists_values = {
|
||||||
'message_id': MESSAGE_ID_1,
|
'message_id': MESSAGE_ID_1,
|
||||||
'instance': INSTANCE_ID_1,
|
'instance': INSTANCE_ID_1,
|
||||||
@ -579,6 +588,7 @@ class StacktackUsageParsingTestCase(unittest.TestCase):
|
|||||||
'deleted_at': deleted_decimal,
|
'deleted_at': deleted_decimal,
|
||||||
'instance_type_id': '1',
|
'instance_type_id': '1',
|
||||||
'usage': usage,
|
'usage': usage,
|
||||||
|
'delete': delete,
|
||||||
'raw': raw,
|
'raw': raw,
|
||||||
}
|
}
|
||||||
exists = self.mox.CreateMockAnything()
|
exists = self.mox.CreateMockAnything()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user