Best Python code snippet using autotest_python
kernel.py
Source:kernel.py
...742 def install(self, tag='autotest'):743 # install resulting rpm on system744 if not self.built:745 self.build(tag)746 r = rpm_kernel_vendor(self.job, self.binrpms, self.subdir)747 r.install(tag=tag)748 def boot(self, args=''):749 # boot resulting rpm on system750 if not self.built:751 self.build()752 r = rpm_kernel_vendor(self.job, self.binrpms, self.subdir)753 r.boot(args=args)754class rpm_kernel_suse(rpm_kernel):755 """ Class for installing openSUSE/SLE rpm kernel package756 """757 kernel_string = '/boot/vmlinux'758 def install(self):759 # do not set the new kernel as the default one760 os.environ['PBL_AUTOTEST'] = '1'761 rpm_kernel.install(self, 'dummy')762 self.installed_as = self.job.bootloader.get_title_for_kernel(self.image)763 if not self.installed_as:764 errmsg = "cannot find installed kernel in bootloader configuration"765 raise error.TestError(errmsg)766 def add_to_bootloader(self, args=''):767 """ Set parameters of this kernel in bootloader768 """769 # pull the base argument set from the job config770 baseargs = self.job.config_get('boot.default_args')771 if baseargs:772 args = baseargs + ' ' + args773 self.job.bootloader.add_args(self.installed_as, args)774class srpm_kernel_suse(srpm_kernel):775 prefix = '/usr/src/packages'776 def __init__(self, job, rpm_package, subdir):777 # download and install src.rpm778 super(srpm_kernel_suse, self).__init__(job, rpm_package, subdir)779 utils.system('rm -rf ' + self.cfg_dir)780 os.mkdir(self.cfg_dir)781 os.mkdir(os.path.join(self.cfg_dir, utils.get_current_kernel_arch()))782 def finish_init(self):783 self.src_dir = os.path.join(self.SOURCES_dir, 'patches.addon')784 self.cfg_dir = os.path.join(self.SOURCES_dir, 'config.addon')785 d = distro.detect()786 if d.version == '11':787 self.spec = os.path.join(self.SPECS_dir, 'kernel-ppc64.spec')788 self.config_file = os.path.join(self.cfg_dir, utils.get_current_kernel_arch(), utils.get_current_kernel_arch())789 # sles11 needs both kernel and kernel-base790 self.binrpm_pattern = re.compile(r'kernel-%s-(base|[0-9])' % utils.get_current_kernel_arch())791 if d.version == '12':792 self.spec = os.path.join(self.SPECS_dir, 'kernel-default.spec')793 self.config_file = os.path.join(self.cfg_dir, utils.get_current_kernel_arch(), 'default')794 self.binrpm_pattern = re.compile(r'kernel-default-[0-9]')795 def setup_source(self):796 # setup tarball797 if len(self.patches) > 0:798 # need to ensure the tarball's contents are relative to SOURCES799 utils.system('tar jCcf %s %s.tar.bz2 %s' % (self.SOURCES_dir,800 self.src_dir,801 os.path.basename(self.src_dir)))802 # append to series file803 with open(os.path.join(self.SOURCES_dir, 'series.conf'), 'a') as series:804 for (spec, local, md5sum) in self.patches:805 series.write("%s\n" % os.path.relpath(local, self.SOURCES_dir))806 if len(self.configs) > 0:807 with open(self.config_file, 'w+') as cfg:808 for config in self.configs:809 cfg.write("%s\n" % config)810 # need to ensure the tarball's contents are relative to SOURCES811 utils.system('tar jCcf %s %s.tar.bz2 %s' % (self.SOURCES_dir,812 self.cfg_dir,813 os.path.basename(self.cfg_dir)))814 # if we are mucking with the new CONFIG symbols, the build will815 # fail if any dependencies get pulled in816 utils.system('touch /usr/src/packages/SOURCES/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS')817 # generate spec file818 cwd = os.getcwd()819 os.chdir(self.SOURCES_dir)820 utils.system('./mkspec')821 os.chdir(cwd)822 # copy spec file823 d = distro.detect()824 if d.version == '11':825 utils.system('cp %s %s' % (826 os.path.join(self.SOURCES_dir, 'kernel-ppc64.spec'),827 self.spec))828 else:829 utils.system('cp %s %s' % (830 os.path.join(self.SOURCES_dir, 'kernel-default.spec'),831 self.spec))832 def update_spec_line(self, line, outspec, tag):833 if line.startswith('Release'):834 outspec.write('Release: %s\n' % tag)835 return836 outspec.write(line)837def rpm_kernel_vendor(job, rpm_package, subdir):838 d = distro.detect()839 if d.name == "sles":840 return rpm_kernel_suse(job, rpm_package, subdir)841 else:842 return rpm_kernel(job, rpm_package, subdir)843def srpm_kernel_vendor(job, rpm_package, subdir):844 d = distro.detect()845 if d.name == "sles":846 return srpm_kernel_suse(job, rpm_package, subdir)847 else:848 return srpm_kernel(job, rpm_package, subdir)849# just make the preprocessor a nop850def _preprocess_path_dummy(path):851 return path.strip()852# pull in some optional site-specific path pre-processing853preprocess_path = utils.import_site_function(__file__,854 "autotest.client.site_kernel", "preprocess_path",855 _preprocess_path_dummy)856def auto_kernel(job, path, subdir, tmp_dir, build_dir, leave=False):857 """858 Create a kernel object, dynamically selecting the appropriate class to use859 based on the path provided.860 """861 kernel_paths = [preprocess_path(path)]862 if kernel_paths[0].endswith('.list'):863 # Fetch the list of packages to install864 kernel_list = os.path.join(tmp_dir, 'kernel.list')865 utils.get_file(kernel_paths[0], kernel_list)866 kernel_paths = [p.strip() for p in open(kernel_list).readlines()]867 if kernel_paths[0].endswith('.rpm'):868 if kernel_paths[0].endswith('src.rpm') and len(kernel_paths) > 1:869 raise error.TestError("don't know what to do with more than one non-rpm kernel file")870 rpm_paths = []871 for kernel_path in kernel_paths:872 if os.path.exists(kernel_path):873 rpm_paths.append(kernel_path)874 else:875 # Fetch the rpm into the job's packages directory and pass it to876 # rpm_kernel877 rpm_name = os.path.basename(kernel_path)878 # If the preprocessed path (kernel_path) is only a name then879 # search for the kernel in all the repositories, else fetch the880 # kernel from that specific path.881 job.pkgmgr.fetch_pkg(rpm_name, os.path.join(job.pkgdir, rpm_name),882 repo_url=os.path.dirname(kernel_path))883 rpm_paths.append(os.path.join(job.pkgdir, rpm_name))884 if kernel_paths[0].endswith('src.rpm'):885 return srpm_kernel_vendor(job, rpm_paths[0], subdir)886 return rpm_kernel_vendor(job, rpm_paths, subdir)887 else:888 if len(kernel_paths) > 1:889 raise error.TestError("don't know what to do with more than one non-rpm kernel file")...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!