From 128fc2d19087351b5ef50c837b41587550ae1277 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Tue, 14 Mar 2017 16:48:22 +0800 Subject: create default TestVM for Functest Change-Id: I505a0819d5f1a4350e82ceaa9e5cbee285c8fba0 Signed-off-by: SerenaFeng --- deploy/post/glance.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 deploy/post/glance.py (limited to 'deploy/post/glance.py') diff --git a/deploy/post/glance.py b/deploy/post/glance.py new file mode 100644 index 00000000..2422c7a4 --- /dev/null +++ b/deploy/post/glance.py @@ -0,0 +1,37 @@ +import os + +import glanceclient + +import keystoneauth + + +class Glance(keystoneauth.Keystoneauth): + def __init__(self, version='2', openrc=None): + super(Glance, self).__init__(openrc) + self.client = glanceclient.Client(version, session=self.session) + self.controller = self.client.images + + def create(self, name, path, + disk_format="qcow2", + container_format="bare", + visibility="public"): + if not os.path.isfile(path): + raise Exception('Error: file {} not exist'.format(path)) + image = self.controller.create(name=name, + visibility=visibility, + disk_format=disk_format, + container_format=container_format) + id = image.id + with open(path) as data: + self.controller.upload(id, data) + return id + + def get_by_name(self, name): + for image in self.list(): + if image.name == name: + return image.id + + return None + + def list(self): + return self.controller.list() -- cgit 1.2.3-korg