diff options
author | Ryota MIBU <r-mibu@cq.jp.nec.com> | 2016-02-20 13:08:30 +0900 |
---|---|---|
committer | Ryota MIBU <r-mibu@cq.jp.nec.com> | 2016-02-20 13:08:30 +0900 |
commit | e891316ac35f062c66b15a7ee7981016c6edcc9e (patch) | |
tree | 5e9d7ae4f16d38e6b6d8ffa422ab6f8e64747e52 /tests | |
parent | eed432fa413d3afeecdd65ef0f73559920012df9 (diff) |
test: fix bugs (ssh args and force-down in cleanup)
This patch fixes two bugs:
- ssh target hostname is wrong (it trailing by ':')
- novaclient cannot execute 'force-down' since it tries
to use v2.0 endpoint which doesn't spport the new API,
Change-Id: I5ef3a8eda5fa7a6730b4eb456d0441d40718a010
Signed-off-by: Ryota MIBU <r-mibu@cq.jp.nec.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/clean.py | 45 | ||||
-rwxr-xr-x | tests/run.sh | 4 |
2 files changed, 47 insertions, 2 deletions
diff --git a/tests/clean.py b/tests/clean.py new file mode 100644 index 00000000..af966aed --- /dev/null +++ b/tests/clean.py @@ -0,0 +1,45 @@ +############################################################################## +# Copyright (c) 2016 NEC Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import argparse +import json +import os + +import novaclient.client as novaclient + + +nova_api_version = 2.11 + +def enable_compute_host(hostname): + self.nova = novaclient.Client(self.nova_api_version, + os.environ['OS_USERNAME'], + os.environ['OS_PASSWORD'], + os.environ['OS_TENANT_NAME'], + os.environ['OS_AUTH_URL'], + connection_pool=True) + opts = {'all_tenants': True, 'host': hostname} + for server in self.nova.servers.list(detailed=False, search_opts=opts): + self.nova.servers.reset_state(server, 'active') + self.nova.services.force_down(hostname, 'nova-compute', False) + + +def get_args(): + parser = argparse.ArgumentParser(description='Doctor Test Cleaner') + parser.add_argument('hostname', metavar='HOSTNAME', type=str, nargs='?', + help='a hostname to be re-enable') + return parser.parse_args() + + +def main(): + args = get_args() + enable_compute_host(args.hostname) + + +if __name__ == '__main__': + main() diff --git a/tests/run.sh b/tests/run.sh index 80d94b3f..9bd6573b 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -144,7 +144,7 @@ sleep 1 END_TXT chmod +x disable_network.sh scp $ssh_opts_cpu disable_network.sh "heat-admin@$COMPUTE_IP:" - ssh $ssh_opts_cpu "heat-admin@$COMPUTE_IP:" 'nohup ./disable_network.sh > disable_network.log 2>&1 &' + ssh $ssh_opts_cpu "heat-admin@$COMPUTE_IP" 'nohup ./disable_network.sh > disable_network.log 2>&1 &' } calculate_notification_time() { @@ -164,7 +164,7 @@ cleanup() { ssh $ssh_opts_cpu "heat-admin@$COMPUTE_IP" \ "[ -e disable_network.log ] && cat disable_network.log" - nova service-force-down --unset "$COMPUTE_HOST" nova-compute + python ./clean.py sleep 1 nova delete "$VM_NAME" sleep 1 |