import os, logging from autotest_lib.client.common_lib import error from autotest_lib.client.bin import utils from autotest_lib.client.virt import virt_utils def run_image_copy(test, params, env): """ Copy guest images from nfs server. 1) Mount the NFS share directory 2) Check the existence of source image 3) If it exists, copy the image from NFS @param test: kvm test object @param params: Dictionary with the test parameters @param env: Dictionary with test environment. """ mount_dest_dir = params.get('dst_dir', '/mnt/images') if not os.path.exists(mount_dest_dir): try: os.makedirs(mount_dest_dir) except OSError, err: logging.warning('mkdir %s error:\n%s', mount_dest_dir, err) if not os.path.exists(mount_dest_dir): raise error.TestError('Failed to create NFS share dir %s' % mount_dest_dir) src = params.get('images_good') image = '%s.%s' % (os.path.split(params['image_name'])[1], params['image_format']) src_path = os.path.join(mount_dest_dir, image) dst_path = '%s.%s' % (params['image_name'], params['image_format']) cmd = 'cp %s %s' % (src_path, dst_path) if not virt_utils.mount(src, mount_dest_dir, 'nfs', 'ro'): raise error.TestError('Could not mount NFS share %s to %s' % (src, mount_dest_dir)) # Check the existence of source image if not os.path.exists(src_path): raise error.TestError('Could not find %s in NFS share' % src_path) logging.debug('Copying image %s...', image) utils.system(cmd)