def set_install_params(self, test, params): """ Initializes class attributes, and retrieves KVM code. @param test: kvm test object @param params: Dictionary with test arguments """ super(SourceDirInstaller, self).set_install_params(test, params) self.mod_install_dir = os.path.join(self.prefix, 'modules') self.installed_kmods = False # it will be set to True in case we # installed our own modules srcdir = params.get("srcdir", None) self.path_to_roms = params.get("path_to_rom_images", None) if self.install_mode == 'localsrc': if srcdir is None: raise error.TestError("Install from source directory specified" "but no source directory provided on the" "control file.") else: shutil.copytree(srcdir, self.srcdir) if self.install_mode == 'release': release_tag = params.get("release_tag") release_dir = params.get("release_dir") release_listing = params.get("release_listing") logging.info("Installing KVM from release tarball") if not release_tag: release_tag = kvm_utils.get_latest_kvm_release_tag( release_listing) tarball = os.path.join(release_dir, 'kvm', release_tag, "kvm-%s.tar.gz" % release_tag) logging.info("Retrieving release kvm-%s" % release_tag) tarball = utils.unmap_url("/", tarball, "/tmp") elif self.install_mode == 'snapshot': logging.info("Installing KVM from snapshot") snapshot_dir = params.get("snapshot_dir") if not snapshot_dir: raise error.TestError("Snapshot dir not provided") snapshot_date = params.get("snapshot_date") if not snapshot_date: # Take yesterday's snapshot d = (datetime.date.today() - datetime.timedelta(1)).strftime("%Y%m%d") else: d = snapshot_date tarball = os.path.join(snapshot_dir, "kvm-snapshot-%s.tar.gz" % d) logging.info("Retrieving kvm-snapshot-%s" % d) tarball = utils.unmap_url("/", tarball, "/tmp") elif self.install_mode == 'localtar': tarball = params.get("tarball") if not tarball: raise error.TestError("KVM Tarball install specified but no" " tarball provided on control file.") logging.info("Installing KVM from a local tarball") logging.info("Using tarball %s") tarball = utils.unmap_url("/", params.get("tarball"), "/tmp") if self.install_mode in ['release', 'snapshot', 'localtar']: utils.extract_tarball_to_dir(tarball, self.srcdir) if self.install_mode in ['release', 'snapshot', 'localtar', 'srcdir']: self.repo_type = kvm_utils.check_kvm_source_dir(self.srcdir) configure_script = os.path.join(self.srcdir, 'configure') self.configure_options = check_configure_options(configure_script)
def __init__(self, test, params): """ Initializes class attributes, and retrieves KVM code. @param test: kvm test object @param params: Dictionary with test arguments """ super(SourceDirInstaller, self).__init__(test, params) install_mode = params["mode"] srcdir = params.get("srcdir", None) self.path_to_roms = params.get("path_to_rom_images", None) if install_mode == 'localsrc': if srcdir is None: raise error.TestError("Install from source directory specified" "but no source directory provided on the" "control file.") else: shutil.copytree(srcdir, self.srcdir) if install_mode == 'release': release_tag = params.get("release_tag") release_dir = params.get("release_dir") release_listing = params.get("release_listing") logging.info("Installing KVM from release tarball") if not release_tag: release_tag = kvm_utils.get_latest_kvm_release_tag( release_listing) tarball = os.path.join(release_dir, 'kvm', release_tag, "kvm-%s.tar.gz" % release_tag) logging.info("Retrieving release kvm-%s" % release_tag) tarball = utils.unmap_url("/", tarball, "/tmp") elif install_mode == 'snapshot': logging.info("Installing KVM from snapshot") snapshot_dir = params.get("snapshot_dir") if not snapshot_dir: raise error.TestError("Snapshot dir not provided") snapshot_date = params.get("snapshot_date") if not snapshot_date: # Take yesterday's snapshot d = (datetime.date.today() - datetime.timedelta(1)).strftime("%Y%m%d") else: d = snapshot_date tarball = os.path.join(snapshot_dir, "kvm-snapshot-%s.tar.gz" % d) logging.info("Retrieving kvm-snapshot-%s" % d) tarball = utils.unmap_url("/", tarball, "/tmp") elif install_mode == 'localtar': tarball = params.get("tarball") if not tarball: raise error.TestError("KVM Tarball install specified but no" " tarball provided on control file.") logging.info("Installing KVM from a local tarball") logging.info("Using tarball %s") tarball = utils.unmap_url("/", params.get("tarball"), "/tmp") if install_mode in ['release', 'snapshot', 'localtar']: utils.extract_tarball_to_dir(tarball, self.srcdir) if install_mode in ['release', 'snapshot', 'localtar', 'srcdir']: self.repo_type = kvm_utils.check_kvm_source_dir(self.srcdir) configure_script = os.path.join(self.srcdir, 'configure') self.configure_options = check_configure_options(configure_script)
def __init__(self, test, params): """ Initializes class attributes, and retrieves KVM code. @param test: kvm test object @param params: Dictionary with test arguments """ install_mode = params["mode"] srcdir = params.get("srcdir") # KVM build prefix self.test_bindir = test.bindir prefix = os.path.join(test.bindir, 'build') self.prefix = os.path.abspath(prefix) # Are we going to load modules? load_modules = params.get('load_modules') if not load_modules: self.load_modules = True elif load_modules == 'yes': self.load_modules = True elif load_modules == 'no': self.load_modules = False if install_mode == 'localsrc': if not srcdir: raise error.TestError("Install from source directory specified" "but no source directory provided on the" "control file.") else: self.srcdir = srcdir self.repo_type = kvm_utils.check_kvm_source_dir(self.srcdir) return else: srcdir = test.srcdir if not os.path.isdir(srcdir): os.makedirs(srcdir) if install_mode == 'release': release_tag = params.get("release_tag") release_dir = params.get("release_dir") logging.info("Installing KVM from release tarball") if not release_tag: release_tag = kvm_utils.get_latest_kvm_release_tag(release_dir) tarball = os.path.join(release_dir, "kvm-%s.tar.gz" % release_tag) logging.info("Retrieving release kvm-%s" % release_tag) tarball = utils.unmap_url("/", tarball, "/tmp") elif install_mode == 'snapshot': logging.info("Installing KVM from snapshot") snapshot_dir = params.get("snapshot_dir") if not snapshot_dir: raise error.TestError("Snapshot dir not provided") snapshot_date = params.get("snapshot_date") if not snapshot_date: # Take yesterday's snapshot d = (datetime.date.today() - datetime.timedelta(1)).strftime("%Y%m%d") else: d = snapshot_date tarball = os.path.join(snapshot_dir, "kvm-snapshot-%s.tar.gz" % d) logging.info("Retrieving kvm-snapshot-%s" % d) tarball = utils.unmap_url("/", tarball, "/tmp") elif install_mode == 'localtar': tarball = params.get("tarball") if not tarball: raise error.TestError("KVM Tarball install specified but no" " tarball provided on control file.") logging.info("Installing KVM from a local tarball") logging.info("Using tarball %s") tarball = utils.unmap_url("/", params.get("tarball"), "/tmp") os.chdir(srcdir) self.srcdir = os.path.join(srcdir, utils.extract_tarball(tarball)) self.repo_type = kvm_utils.check_kvm_source_dir(self.srcdir)