]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add quantum-usage-audit
authorJulien Danjou <julien@danjou.info>
Tue, 2 Oct 2012 11:21:41 +0000 (13:21 +0200)
committerJulien Danjou <julien@danjou.info>
Tue, 2 Oct 2012 14:17:52 +0000 (16:17 +0200)
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 <julien@danjou.info>
bin/quantum-usage-audit [new file with mode: 0755]

diff --git a/bin/quantum-usage-audit b/bin/quantum-usage-audit
new file mode 100755 (executable)
index 0000000..fc686e1
--- /dev/null
@@ -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 <julien@danjou.info>
+# 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})