Merge pull request #312 from manalilatkar/add_host_and_deployment_in_audit

RM 5495: adding host and deployment info to missing exists entries in the nova usage audit
This commit is contained in:
anujm 2014-03-25 20:09:13 +05:30
commit e2adb255b7
3 changed files with 25 additions and 12 deletions

View File

@ -29,6 +29,7 @@ sys.path.append(os.environ.get('STACKTACH_INSTALL_DIR', '/stacktach'))
import usage_audit import usage_audit
from stacktach.models import InstanceUsage
from stacktach import datetime_to_decimal as dt from stacktach import datetime_to_decimal as dt
from stacktach import models from stacktach import models
from stacktach.reconciler import Reconciler from stacktach.reconciler import Reconciler
@ -116,14 +117,24 @@ def _audit_launches_to_exists(launches, exists, beginning):
rec = reconciler.missing_exists_for_instance(*args) rec = reconciler.missing_exists_for_instance(*args)
msg = "Couldn't find exists for launch (%s, %s)" msg = "Couldn't find exists for launch (%s, %s)"
msg = msg % (instance, expected['launched_at']) msg = msg % (instance, expected['launched_at'])
fails.append(['Launch', expected['id'], msg, 'Y' if rec else 'N']) launched_at = dt.dt_from_decimal(expected['launched_at'])
usage = InstanceUsage.find(instance, launched_at)[0]
host = usage.host()
deployment = usage.deployment()
fails.append(['Launch', expected['id'], msg,
'Y' if rec else 'N', host, deployment])
else: else:
rec = False rec = False
if reconciler: if reconciler:
args = (launches[0]['id'], beginning) args = (launches[0]['id'], beginning)
rec = reconciler.missing_exists_for_instance(*args) rec = reconciler.missing_exists_for_instance(*args)
msg = "No exists for instance (%s)" % instance msg = "No exists for instance (%s)" % instance
fails.append(['Launch', '-', msg, 'Y' if rec else 'N']) launched_at = dt.dt_from_decimal(launches[0]['launched_at'])
usage = InstanceUsage.find(instance, launched_at)[0]
host = usage.host()
deployment = usage.deployment()
fails.append(['Launch', '-', msg, 'Y' if rec else 'N', host,
deployment])
return fails return fails
@ -233,7 +244,7 @@ def store_results(start, end, summary, details):
'created': dt.dt_to_decimal(datetime.datetime.utcnow()), 'created': dt.dt_to_decimal(datetime.datetime.utcnow()),
'period_start': start, 'period_start': start,
'period_end': end, 'period_end': end,
'version': 6, 'version': 7,
'name': 'nova usage audit' 'name': 'nova usage audit'
} }

View File

@ -175,11 +175,14 @@ class InstanceUsage(models.Model):
rax_options = models.TextField(null=True, blank=True) rax_options = models.TextField(null=True, blank=True)
def deployment(self): def deployment(self):
raws = RawData.objects.filter(request_id=self.request_id) return self.latest_raw_for_request_id().deployment.name
if raws.count() == 0:
return False def latest_raw_for_request_id(self):
raw = raws[0] return RawData.objects.filter(
return raw.deployment request_id=self.request_id).order_by('-id')[0]
def host(self):
return self.latest_raw_for_request_id().host
@staticmethod @staticmethod
def find(instance, launched_at): def find(instance, launched_at):

View File

@ -20,12 +20,11 @@
from datetime import datetime from datetime import datetime
import unittest import unittest
from django.db.models import Q
import mox import mox
from stacktach.models import RawData, GlanceRawData, GenericRawData, ImageDeletes, InstanceExists, ImageExists
from tests.unit.utils import IMAGE_UUID_1
from stacktach import datetime_to_decimal as dt, models
from stacktach.models import RawData, GlanceRawData, GenericRawData from stacktach.models import RawData, GlanceRawData, GenericRawData
from stacktach.models import ImageDeletes, InstanceExists, ImageExists
from tests.unit.utils import IMAGE_UUID_1
from stacktach import datetime_to_decimal as dt
from tests.unit import StacktachBaseTestCase from tests.unit import StacktachBaseTestCase