From 60eceb53f5c54268ac500dbe500aefc2a80f4d69 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Tue, 2 Oct 2012 13:21:41 +0200 Subject: [PATCH] Add quantum-usage-audit This adds a program aiming to send "$resource.exists" notifications regularly via a cronjob. We will use this in Ceilometer to meter resources usage. Change-Id: I718c67bfb54b74afb3af262bb08cbfd71531188a Signed-off-by: Julien Danjou --- bin/quantum-usage-audit | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 bin/quantum-usage-audit diff --git a/bin/quantum-usage-audit b/bin/quantum-usage-audit new file mode 100755 index 000000000..fc686e12e --- /dev/null +++ b/bin/quantum-usage-audit @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2012 New Dream Network, LLC (DreamHost) +# Author: Julien Danjou +# 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 networks, ports and +subnets. + +""" + +import sys + +from quantum import context +from quantum import manager +from quantum.common import config +from quantum.openstack.common import cfg +from quantum.openstack.common.notifier import api as notifier_api + +if __name__ == '__main__': + cfg.CONF(args=sys.argv, project='quantum') + config.setup_logging(cfg.CONF) + + context = context.get_admin_context() + plugin = manager.QuantumManager.get_plugin() + for network in plugin.get_networks(context): + notifier_api.notify(context, + notifier_api.publisher_id('network'), + 'network.exists', + notifier_api.INFO, + {'network': network}) + for subnet in plugin.get_subnets(context): + notifier_api.notify(context, + notifier_api.publisher_id('network'), + 'subnet.exists', + notifier_api.INFO, + {'subnet': subnet}) + for port in plugin.get_ports(context): + notifier_api.notify(context, + notifier_api.publisher_id('network'), + 'port.exists', + notifier_api.INFO, + {'port': port}) -- 2.45.2