diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/inspector.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/tests/inspector.py b/tests/inspector.py index c8fb00f9..62614158 100644 --- a/tests/inspector.py +++ b/tests/inspector.py @@ -8,10 +8,12 @@ ############################################################################## import argparse +import collections from flask import Flask from flask import request import json import os +import time import novaclient.client as novaclient @@ -23,6 +25,7 @@ class DoctorInspectorSample(object): nova_api_version = '2.11' def __init__(self): + self.servers = collections.defaultdict(list) self.nova = novaclient.Client(self.nova_api_version, os.environ['OS_USERNAME'], os.environ['OS_PASSWORD'], @@ -31,10 +34,22 @@ class DoctorInspectorSample(object): connection_pool=True) # check nova is available self.nova.servers.list(detailed=False) + self.init_servers_list() + + def init_servers_list(self): + opts = {'all_tenants': True} + servers=self.nova.servers.list(search_opts=opts) + self.servers.clear() + for server in servers: + try: + host=server.__dict__.get('OS-EXT-SRV-ATTR:host') + self.servers[host].append(server) + app.logger.debug('get hostname=%s from server=%s' % (host, server)) + except Exception as e: + app.logger.debug('can not get hostname from server=%s' % server) def disable_compute_host(self, hostname): - opts = {'all_tenants': True, 'host': hostname} - for server in self.nova.servers.list(detailed=False, search_opts=opts): + for server in self.servers[hostname]: self.nova.servers.reset_state(server, 'error') # NOTE: We use our own client here instead of this novaclient for a @@ -48,12 +63,13 @@ class DoctorInspectorSample(object): app = Flask(__name__) +app.debug = True inspector = DoctorInspectorSample() @app.route('/events', methods=['POST']) def event_posted(): - app.logger.debug('event posted') + app.logger.debug('event posted at %s' % time.time()) app.logger.debug('inspector = %s' % inspector) app.logger.debug('received data = %s' % request.data) d = json.loads(request.data) @@ -73,8 +89,7 @@ def get_args(): def main(): args = get_args() - app.run(port=args.port, debug=True) - + app.run(port=args.port) if __name__ == '__main__': main() |