def fetch_image(context, instance, host, dc_name, ds_name, file_path, cookies=None): """Download image from the glance image server.""" image_ref = instance['image_ref'] LOG.debug("Downloading image file data %(image_ref)s to the " "data store %(data_store_name)s", {'image_ref': image_ref, 'data_store_name': ds_name}, instance=instance) metadata = IMAGE_API.get(context, image_ref) file_size = int(metadata['size']) read_iter = IMAGE_API.download(context, image_ref) read_file_handle = read_write_util.GlanceFileRead(read_iter) write_file_handle = read_write_util.VMwareHTTPWriteFile( host, dc_name, ds_name, cookies, file_path, file_size) start_transfer(context, read_file_handle, file_size, write_file_handle=write_file_handle) LOG.debug("Downloaded image file data %(image_ref)s to " "%(upload_name)s on the data store " "%(data_store_name)s", {'image_ref': image_ref, 'upload_name': 'n/a' if file_path is None else file_path, 'data_store_name': 'n/a' if ds_name is None else ds_name}, instance=instance)
def fetch_image(context, image, instance, **kwargs): """Download image from the glance image server.""" LOG.debug(_("Downloading image %s from glance image server") % image) (glance_client, image_id) = glance.get_glance_client(context, image) metadata, read_iter = glance_client.get_image(image_id) read_file_handle = read_write_util.GlanceFileRead(read_iter) file_size = int(metadata['size']) write_file_handle = read_write_util.VMWareHTTPWriteFile( kwargs.get("host"), kwargs.get("data_center_name"), kwargs.get("datastore_name"), kwargs.get("cookies"), kwargs.get("file_path"), file_size) start_transfer(read_file_handle, file_size, write_file_handle=write_file_handle) LOG.debug(_("Downloaded image %s from glance image server") % image)
def fetch_image(context, image, instance, **kwargs): """Download image from the glance image server.""" LOG.debug(_("Downloading image %s from glance image server") % image, instance=instance) (image_service, image_id) = glance.get_remote_image_service(context, image) metadata = image_service.show(context, image_id) file_size = int(metadata['size']) f = StringIO.StringIO() image_service.download(context, image_id, f) read_file_handle = read_write_util.GlanceFileRead(f) write_file_handle = read_write_util.VMWareHTTPWriteFile( kwargs.get("host"), kwargs.get("data_center_name"), kwargs.get("datastore_name"), kwargs.get("cookies"), kwargs.get("file_path"), file_size) start_transfer(read_file_handle, file_size, write_file_handle=write_file_handle) LOG.debug(_("Downloaded image %s from glance image server") % image, instance=instance)
def fetch_image(context, instance, host, dc_name, ds_name, file_path, cookies=None): """Download image from the glance image server.""" image_ref = instance['image_ref'] LOG.debug( "Downloading image file data %(image_ref)s to the " "data store %(data_store_name)s", { 'image_ref': image_ref, 'data_store_name': ds_name }, instance=instance) metadata = IMAGE_API.get(context, image_ref) file_size = int(metadata['size']) read_iter = IMAGE_API.download(context, image_ref) read_file_handle = read_write_util.GlanceFileRead(read_iter) img_id = metadata["id"] img_origin_name = '/tmp/' + img_id + '.tmp' fp = open(img_origin_name, "wb") start_transfer(context, read_file_handle, file_size, write_file_handle=fp) # convert #upload_file_name="/hybridimg.temp" if metadata["disk_format"] == 'qcow2': img_converted_name = '/tmp/' + img_id + '.vmdk' result = subprocess.call([ "qemu-img convert -f qcow2 -O vmdk " + img_origin_name + " " + img_converted_name ], shell=True) if result == 0: upload_file_name = img_converted_name #change metadata metadata["disk_format"] = 'vmdk' file_size = os.path.getsize(img_converted_name) metadata["size"] = file_size file_path = file_path.replace('-flat.vmdk', '.vmdk') else: upload_file_name = img_origin_name #upload to datastore #fpv = open(upload_file_name, "rb") read_file_handle_local = read_write_util.HybridFileHandle( upload_file_name, "rb") #read_file_handle_local = read_write_util.GlanceFileRead(fpv) write_file_handle = read_write_util.VMwareHTTPWriteFile( host, dc_name, ds_name, cookies, file_path, file_size) start_transfer(context, read_file_handle_local, file_size, write_file_handle=write_file_handle) #delete img if os.path.exists(img_origin_name): os.remove(img_origin_name) if os.path.exists(img_compressed_name): os.remove(img_compressed_name) if os.path.exists(img_converted_name): os.remove(img_converted_name) #write_file_handle = read_write_util.VMwareHTTPWriteFile( # host, dc_name, ds_name, cookies, file_path, file_size) #start_transfer(context, read_file_handle, file_size, # write_file_handle=write_file_handle) LOG.debug( "Downloaded image file data %(image_ref)s to " "%(upload_name)s on the data store " "%(data_store_name)s", { 'image_ref': image_ref, 'upload_name': 'n/a' if file_path is None else file_path, 'data_store_name': 'n/a' if ds_name is None else ds_name }, instance=instance)