d.msgbox(msg, title="Image Property Changes", width=MSGBOX_WIDTH)
+def extract_metadata_string(session):
+ metadata = ['%s=%s' % (k, v) for (k, v) in session['metadata'].items()]
+
+ if 'task_metadata' in session:
+ metadata.extend("%s=yes" % m for m in session['task_metadata'])
+
+ return '\n'.join(metadata) + '\n'
+
+
def confirm_exit(d, msg=''):
return not d.yesno("%s Do you want to exit?" % msg, width=YESNO_WIDTH)
# Extract metadata file
out.output("Extracting metadata file...")
- metastring = '\n'.join(
- ['%s=%s' % (k, v) for (k, v) in session['metadata'].items()])
- metastring += '\n'
with open('%s.meta' % path, 'w') as f:
- f.write(metastring)
+ f.write(extract_metadata_string(session))
out.success('done')
# Extract md5sum file
"Uploading missing blocks")
# Upload metadata file
out.output("Uploading metadata file...")
- metastring = '\n'.join(
- ['%s=%s' % (k, v) for (k, v) in session['metadata'].items()])
- metastring += '\n'
+ metastring = extract_metadata_string(session)
kamaki.upload(StringIO.StringIO(metastring), size=len(metastring),
remote_path="%s.meta" % filename)
out.success("done")
continue
break
+ metadata = {}
+ metadata.update(session['metadata'])
+ if 'task_metadata' in session:
+ for key in session['task_metadata']:
+ metadata[key] = 'yes'
+
out = GaugeOutput(d, "Image Registration", "Registrating image...")
try:
out.output("Registring image to cyclades...")
try:
kamaki = Kamaki(session['account'], session['token'], out)
- kamaki.register(name, session['upload'], session['metadata'])
+ kamaki.register(name, session['upload'], metadata)
out.success('done')
except ClientError as e:
d.msgbox("Error in pithos+ client: %s" % e.message)
if not d.yesno("%s\n\nDo you want to continue?" % msg, width=70,
height=12, title="Image Shrinking"):
with metadata_monitor(session, dev.meta):
- dev.out = InfoBoxOutput(d, "Image Shrinking", height=3)
+ dev.out = InfoBoxOutput(d, "Image Shrinking", height=4)
dev.shrink()
dev.out.finalize()
snapshot = disk.snapshot()
dev = disk.get_device(snapshot)
- out.output("Collecting image metadata...")
metadata = {}
for (key, value) in dev.meta.items():
metadata[str(key)] = str(value)
dev.mount(readonly=True)
+ out.output("Collecting image metadata...")
cls = os_cls(dev.distro, dev.ostype)
image_os = cls(dev.root, dev.g, out)
dev.umount()