summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/inspector.py25
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()