diff options
Diffstat (limited to 'nfvbench/compute.py')
-rw-r--r-- | nfvbench/compute.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/nfvbench/compute.py b/nfvbench/compute.py index 84e3774..883dc28 100644 --- a/nfvbench/compute.py +++ b/nfvbench/compute.py @@ -23,8 +23,10 @@ except ImportError: from glanceclient.v1.apiclient.exceptions import NotFound as GlanceImageNotFound import keystoneauth1 import novaclient +from novaclient.exceptions import NotFound -from log import LOG +from .log import LOG +from . import utils class Compute(object): @@ -50,7 +52,7 @@ class Compute(object): retry = 0 try: # check image is file/url based. - with open(image_file) as f_image: + with open(image_file, 'rb') as f_image: img = self.glance_client.images.create(name=str(final_image_name), disk_format="qcow2", container_format="bare", @@ -147,9 +149,17 @@ class Compute(object): servers_list = self.novaclient.servers.list() return servers_list + def instance_exists(self, server): + try: + self.novaclient.servers.get(server) + except NotFound: + return False + return True + def delete_server(self, server): """Delete a server from its object reference.""" - self.novaclient.servers.delete(server) + utils.delete_server(self.novaclient, server) + utils.waiting_servers_deletion(self.novaclient, [server]) def find_flavor(self, flavor_type): """Find a flavor by name.""" |