Instead of "openstack server list", dumping the entire tentant's list of
instances, use "openstack server show" to show a single instance. While
"list" can accept a "--name" argument to filter, it does not have an
"--id" argument.
Signed-off-by: Zack Cerza <zack@redhat.com>
import tempfile
import teuthology
+from subprocess import CalledProcessError
+
from teuthology.contextutil import safe_while
from teuthology.config import config as teuth_config
from teuthology.orchestra import connection
Return true if the OpenStack name_or_id instance exists,
false otherwise.
"""
- servers = json.loads(misc.sh("openstack server list -f json"))
- for server in servers:
- if (server['ID'] == name_or_id or server['Name'] == name_or_id):
- return True
+ try:
+ server = json.loads(
+ misc.sh("openstack server show -f json %s" % id)
+ )
+ except CalledProcessError:
+ return False
+ if (self.get_value(server, 'Name') == name_or_id or
+ self.get_value(server, 'ID') == name_or_id):
+ return True
return False
@staticmethod