summaryrefslogtreecommitdiff
path: root/libs/glance.py
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-07 16:00:14 -0700
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-07 16:00:14 -0700
commit31dfd95a2d97086d3e56d524c53f4a5a2cf0eb45 (patch)
tree902116226857de989852fa05c64acfce670ba4f2 /libs/glance.py
parent3429744c92cf794383c2ddb5a33328e189304917 (diff)
adding glance gateway
Diffstat (limited to 'libs/glance.py')
-rw-r--r--libs/glance.py18
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)