summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMonsyne Dragon <mdragon@rackspace.com>2011-06-28 20:37:05 +0000
committerMonsyne Dragon <mdragon@rackspace.com>2011-06-28 20:37:05 +0000
commit498f2d671573fc19d551516f7ead5da8d052ee18 (patch)
treec7214db10cb112094b0629ce7804b54c870ba997
parent24835b0348a9a6d8bd4e40107990d1abb41538c2 (diff)
downloadnova-498f2d671573fc19d551516f7ead5da8d052ee18.tar.gz
nova-498f2d671573fc19d551516f7ead5da8d052ee18.tar.xz
nova-498f2d671573fc19d551516f7ead5da8d052ee18.zip
Refactored usage generation
-rwxr-xr-xbin/instance-usage-audit16
-rw-r--r--nova/compute/manager.py77
-rw-r--r--nova/utils.py16
3 files changed, 28 insertions, 81 deletions
diff --git a/bin/instance-usage-audit b/bin/instance-usage-audit
index 1fa2c2186..a06c6b1b3 100755
--- a/bin/instance-usage-audit
+++ b/bin/instance-usage-audit
@@ -107,19 +107,9 @@ if __name__ == '__main__':
end)
print "%s instances" % len(instances)
for instance_ref in instances:
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_ref['instance_type']['name'],
- instance_type_id=instance_ref['instance_type_id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=instance_ref['image_ref'],
- audit_period_begining=str(begin),
- audit_period_ending=str(end))
+ usage_info = utils.usage_from_instance(instance_ref,
+ audit_period_begining=str(begin),
+ audit_period_ending=str(end))
notifier_api.notify('compute.%s' % FLAGS.host,
'compute.instance.exists',
notifier_api.INFO,
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 0a0ebd768..98e02f5b2 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -345,17 +345,7 @@ class ComputeManager(manager.SchedulerDependentManager):
self._update_launched_at(context, instance_id)
self._update_state(context, instance_id)
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_ref['instance_type']['name'],
- instance_type_id=instance_ref['instance_type_id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=instance_ref['image_ref'])
+ usage_info = utils.usage_from_instance(instance_ref)
notifier_api.notify('compute.%s' % self.host,
'compute.instance.create',
notifier_api.INFO,
@@ -442,17 +432,7 @@ class ComputeManager(manager.SchedulerDependentManager):
# TODO(ja): should we keep it in a terminated state for a bit?
self.db.instance_destroy(context, instance_id)
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_ref['instance_type']['name'],
- instance_type_id=instance_ref['instance_type_id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=instance_ref['image_ref'])
+ usage_info = utils.usage_from_instance(instance_ref)
notifier_api.notify('compute.%s' % self.host,
'compute.instance.delete',
notifier_api.INFO,
@@ -493,17 +473,8 @@ class ComputeManager(manager.SchedulerDependentManager):
self._update_image_ref(context, instance_id, image_ref)
self._update_launched_at(context, instance_id)
self._update_state(context, instance_id)
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_ref['instance_type']['name'],
- instance_type_id=instance_ref['instance_type_id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=image_ref)
+ usage_info = utils.usage_from_instance(instance_ref,
+ image_ref=image_ref)
notifier_api.notify('compute.%s' % self.host,
'compute.instance.rebuild',
notifier_api.INFO,
@@ -685,17 +656,7 @@ class ComputeManager(manager.SchedulerDependentManager):
context = context.elevated()
instance_ref = self.db.instance_get(context, instance_id)
self.driver.destroy(instance_ref)
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_ref['instance_type']['name'],
- instance_type_id=instance_ref['instance_type_id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=instance_ref['image_ref'])
+ usage_info = utils.usage_from_instance(instance_ref)
notifier_api.notify('compute.%s' % self.host,
'compute.instance.resize.confirm',
notifier_api.INFO,
@@ -747,17 +708,7 @@ class ComputeManager(manager.SchedulerDependentManager):
self.driver.revert_resize(instance_ref)
self.db.migration_update(context, migration_id,
{'status': 'reverted'})
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_type['name'],
- instance_type_id=instance_type['id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=instance_ref['image_ref'])
+ usage_info = utils.usage_from_instance(instance_ref)
notifier_api.notify('compute.%s' % self.host,
'compute.instance.resize.revert',
notifier_api.INFO,
@@ -798,19 +749,9 @@ class ComputeManager(manager.SchedulerDependentManager):
'migration_id': migration_ref['id'],
'instance_id': instance_id, },
})
- usage_info = dict(
- tenant_id=instance_ref['project_id'],
- user_id=instance_ref['user_id'],
- instance_id=instance_ref['id'],
- instance_type=instance_ref['instance_type']['name'],
- instance_type_id=instance_ref['instance_type_id'],
- new_instance_type=instance_type['name'],
- new_instance_type_id=instance_type['id'],
- display_name=instance_ref['display_name'],
- created_at=str(instance_ref['created_at']),
- launched_at=str(instance_ref['launched_at']) \
- if instance_ref['launched_at'] else '',
- image_ref=instance_ref['image_ref'])
+ usage_info = utils.usage_from_instance(instance_ref,
+ new_instance_type=instance_type['name'],
+ new_instance_type_id=instance_type['id'])
notifier_api.notify('compute.%s' % self.host,
'compute.instance.resize.prep',
notifier_api.INFO,
diff --git a/nova/utils.py b/nova/utils.py
index 6d8324e5b..aee2715ba 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -279,6 +279,22 @@ EASIER_PASSWORD_SYMBOLS = ('23456789' # Removed: 0, 1
'ABCDEFGHJKLMNPQRSTUVWXYZ') # Removed: I, O
+def usage_from_instance(instance_ref, **kw):
+ usage_info = dict(
+ tenant_id=instance_ref['project_id'],
+ user_id=instance_ref['user_id'],
+ instance_id=instance_ref['id'],
+ instance_type=instance_ref['instance_type']['name'],
+ instance_type_id=instance_ref['instance_type_id'],
+ display_name=instance_ref['display_name'],
+ created_at=str(instance_ref['created_at']),
+ launched_at=str(instance_ref['launched_at']) \
+ if instance_ref['launched_at'] else '',
+ image_ref=instance_ref['image_ref'])
+ usage_info.update(kw)
+ return usage_info
+
+
def generate_password(length=20, symbols=DEFAULT_PASSWORD_SYMBOLS):
"""Generate a random password from the supplied symbols.