diff --git a/bin/nova-instance-usage-audit b/bin/nova-instance-usage-audit deleted file mode 100755 index 1a7f34d6..00000000 --- a/bin/nova-instance-usage-audit +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright (c) 2011 Openstack, LLC. -# 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. - -"""Cron script to generate usage notifications for instances existing - during the audit period. - - Together with the notifications generated by compute on instance - create/delete/resize, over that time period, this allows an external - system consuming usage notification feeds to calculate instance usage - for each tenant. - - Time periods are specified as 'hour', 'month', 'day' or 'year' - - hour = previous hour. If run at 9:07am, will generate usage for 8-9am. - month = previous month. If the script is run April 1, it will generate - usages for March 1 through March 31. - day = previous day. if run on July 4th, it generates usages for July 3rd. - year = previous year. If run on Jan 1, it generates usages for - Jan 1 through Dec 31 of the previous year. -""" - -import datetime -import gettext -import os -import sys -import time -import traceback - -# If ../nova/__init__.py exists, add ../ to Python search path, so that -# it will override what happens to be installed in /usr/(local/)lib/python... -POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), - os.pardir, - os.pardir)) -if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'nova', '__init__.py')): - sys.path.insert(0, POSSIBLE_TOPDIR) - -gettext.install('nova', unicode=1) -import nova.compute.utils -from nova import context -from nova import db -from nova import exception -from nova import flags -from nova.openstack.common import log as logging -from nova.openstack.common import rpc -from nova import utils - - -FLAGS = flags.FLAGS - -if __name__ == '__main__': - admin_context = context.get_admin_context() - flags.parse_args(sys.argv) - logging.setup("nova") - begin, end = utils.last_completed_audit_period() - print "Starting instance usage audit" - print "Creating usages for %s until %s" % (str(begin), str(end)) - instances = db.instance_get_active_by_window_joined(admin_context, - begin, - end) - print "Found %d instances" % len(instances) - for instance_ref in instances: - try: - nova.compute.utils.notify_usage_exists( - admin_context, instance_ref, - ignore_missing_network_data=False) - except Exception, e: - print traceback.format_exc(e) - print "Instance usage audit completed" diff --git a/nova/tests/policy.json b/nova/tests/policy.json index 206cb574..b0b3114c 100644 --- a/nova/tests/policy.json +++ b/nova/tests/policy.json @@ -98,6 +98,7 @@ "compute_extension:floating_ips": [], "compute_extension:hosts": [], "compute_extension:hypervisors": [], + "compute_extension:instance_usage_audit_log": [], "compute_extension:keypairs": [], "compute_extension:multinic": [], "compute_extension:networks": [],