diff options
| author | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-11-07 16:00:14 -0700 |
|---|---|---|
| committer | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-11-07 16:00:14 -0700 |
| commit | 31dfd95a2d97086d3e56d524c53f4a5a2cf0eb45 (patch) | |
| tree | 902116226857de989852fa05c64acfce670ba4f2 /libs/glance.py | |
| parent | 3429744c92cf794383c2ddb5a33328e189304917 (diff) | |
adding glance gateway
Diffstat (limited to 'libs/glance.py')
| -rw-r--r-- | libs/glance.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/libs/glance.py b/libs/glance.py index b2a5c8d..3adf64b 100644 --- a/libs/glance.py +++ b/libs/glance.py @@ -2,6 +2,7 @@ from __future__ import print_function import datetime import glanceclient import json +import os import time import traceback @@ -24,15 +25,24 @@ class Glance(object): if image: self.glance.images.delete(image.id) - def upload(self, image_name, image_type, file_path, tag): + def upload(self, image_name, image_type, file_path, visibility, tag): self.delete(image_name) image = self.glance.images.create(name=image_name) if image.status != "queued": raise Exception("Image did not enter queued state upon create.") image = self.glance.images.update(image.id, disk_format=image_type) image = self.glance.images.update(image.id, container_format="bare") - image = self.glance.images.update(image.id, visibility="private") + image = self.glance.images.update(image.id, visibility=visibility) image = self.glance.images.update(image.id, tags=[str(tag)]) - with open(file_path, "rb") as myfile: - self.glance.images.upload(image.id, myfile) + with open(file_path, "rb") as stream: + self.glance.images.upload(image.id, stream) return image.id + + def download(self, image_name, file_path): + image = self.find(image_name) + if image: + data = self.glance.images.data(image.id) + os.remove(file_path) + with open(file_path, "w") as stream: + for chunk in data: + stream.write(chunk) |
