Files
nova/plugins/xenserver/xenapi/etc/xapi.d/plugins/bandwidth
T
Brian Lamar 6d3d641de5 Remove * import from xenserver plugins
Recently a change was made to how/where the '_' method is imported. This
seems to have broken most xenserver plugins. These plugins shouldn't be
doing * imports anyway so I've gone in and cleaned up all places where
"from pluginlib_nova import *" was used and replaced with "import
pluginlib_nova".

Fixes bug 1207107

Change-Id: I3b2a299cf60543e0f766becfeb4740af791b3576
2013-07-31 18:17:45 -04:00

51 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python
# Copyright (c) 2012 OpenStack Foundation
# 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.
"""Fetch Bandwidth data from VIF network devices."""
import utils
import pluginlib_nova
pluginlib_nova.configure_logging('bandwidth')
def _read_proc_net():
devs = [l.strip() for l in open('/proc/net/dev', 'r').readlines()]
#ignore headers
devs = devs[2:]
dlist = [d.split(':', 1) for d in devs if d.startswith('vif')]
devmap = dict()
for name, stats in dlist:
slist = stats.split()
dom, vifnum = name[3:].split('.', 1)
dev = devmap.get(dom, {})
# Note, we deliberately swap in and out, as instance traffic
# shows up inverted due to going though the bridge. (mdragon)
dev[vifnum] = dict(bw_in=int(slist[8]), bw_out=int(slist[0]))
devmap[dom] = dev
return devmap
def fetch_all_bandwidth(session):
return _read_proc_net()
if __name__ == '__main__':
utils.register_plugin_calls(fetch_all_bandwidth)