nargs='+', help="id in decimal of image to transfer") parser.add_argument('-d', '--dest', dest='destination', required=True, help="address of destination Glance repository") parser.add_argument('-p', '--port', dest='local_port', default=9292, help="local Glance port") args = parser.parse_args() dest = args.destination.split(':') source_client = Client('localhost', args.local_port) try: dest_client = Client(dest[0], dest[1]) except IndexError: dest_client = Client(dest[0]) images = {} for image_id in args.images: images[image_id] = source_client.get_image_meta(image_id) # Sort keys to that kernel/ramdisk images are transferred first, makes recreating # associations easier later on mapping = {'aki': 0, 'ari': 0, 'ami': 1} sorted_ids = images.keys() sorted_ids.sort(
are in the list of images to be transferred. """ from glance.client import Client import argparse GLANCE_PATH = "/var/lib/glance/images/" parser = argparse.ArgumentParser(description="Transfer images from the local Glance repository.") parser.add_argument('images', metavar='image', type=int, nargs='+', help="id in decimal of image to transfer") parser.add_argument('-d', '--dest', dest='destination', required=True, help="address of destination Glance repository") parser.add_argument('-p', '--port', dest='local_port', default=9292, help="local Glance port") args = parser.parse_args() dest = args.destination.split(':') source_client = Client('localhost', args.local_port) try: dest_client = Client(dest[0], dest[1]) except IndexError: dest_client = Client(dest[0]) images = {} for image_id in args.images: images[image_id] = source_client.get_image_meta(image_id) # Sort keys to that kernel/ramdisk images are transferred first, makes recreating # associations easier later on mapping = { 'aki': 0, 'ari': 0, 'ami': 1 } sorted_ids = images.keys() sorted_ids.sort(key=lambda image_id: mapping[images[image_id]['container_format']])
from glance.client import Client from os import remove import argparse TEMP_IMAGE_PATH = '/tmp/glance-transfer-images' parser = argparse.ArgumentParser(description="Transfer images between Glance repositories.") parser.add_argument('images', metavar='image', type=int, nargs='+', help="an image to transfer") parser.add_argument('--source', dest='source', help="source Glance repository") parser.add_argument('--dest', dest='destination', help="destination Glance repository") args = parser.parse_args() source = args.source.split(':') dest = args.destination.split(':') try: source_client = Client(source[0], source[1]) except IndexError: source_client = Client(source[0], 9292) try: dest_client = Client(dest[0], dest[1]) except IndexError: dest_client = Client(dest[0], 9292) new_image_ids = {} for image in args.images: meta, image_file = source_client.get_image(image) f = open(TEMP_IMAGE_PATH, 'wb') for chunk in image_file: f.write(chunk) f.close()
def _get_glance_client(self): glance_host = self.conf.get('host', '127.0.0.1') glance_port = self.conf.get('port', '8080') c = Client(host=glance_host, port=glance_port) return c