How to use match_ext_options method in autotest

Best Python code snippet using autotest_python

fsinfo.py

Source:fsinfo.py Github

copy

Full Screen

...236 for feature in current_feature:237 if feature not in needed_feature:238 return False239 return True240def match_ext_options(fs_type, dev, needed_options):241 """Compare the current ext* filesystem tunables with needed ones."""242 # mkfs.ext* will load default options from /etc/mke2fs.conf243 conf_opt = parse_mke2fs_conf(fs_type)244 # We need to convert the conf options to mkfs options.245 conf_mkfs_opt = convert_conf_opt(conf_opt)246 # Breaks user mkfs option string to dictionary.247 needed_opt_dict = opt_string2dict(needed_options)248 # Removes ignored options.249 ignored_option = ['-c', '-q', '-E', '-F']250 for opt in ignored_option:251 if opt in needed_opt_dict:252 del needed_opt_dict[opt]253 # User options override config options.254 needed_opt = conf_mkfs_opt255 for key, value in needed_opt_dict.iteritems():256 if key == '-N' or key == '-T':257 raise Exception('-N/T is not allowed.')258 elif key == '-O':259 needed_opt[key] = merge_ext_features(needed_opt[key], value)260 else:261 needed_opt[key] = value262 # '-j' option will add 'has_journal' feature.263 if '-j' in needed_opt and 'has_journal' not in needed_opt['-O']:264 needed_opt['-O'].append('has_journal')265 # 'extents' will be shown as 'extent' in the outcome of tune2fs266 if 'extents' in needed_opt['-O']:267 needed_opt['-O'].append('extent')268 needed_opt['-O'].remove('extents')269 # large_file is a byproduct of resize_inode.270 if 'large_file' not in needed_opt['-O'] and (271 'resize_inode' in needed_opt['-O']):272 needed_opt['-O'].append('large_file')273 current_opt = {}274 tune2fs_dict = ext_tunables(dev)275 ext_mkfs_options(tune2fs_dict, current_opt)276 # Does the match277 for key, value in needed_opt.iteritems():278 if key == '-O':279 if not compare_features(value, current_opt[key].split(',')):280 return False281 elif key not in current_opt or value != current_opt[key]:282 return False283 return True284def match_xfs_options(dev, needed_options):285 """Compare the current ext* filesystem tunables with needed ones."""286 tmp_mount_dir = tempfile.mkdtemp()287 cmd = 'mount %s %s' % (dev, tmp_mount_dir)288 utils.system_output(cmd)289 xfs_growfs = os.path.join(os.environ['AUTODIR'], 'tools', 'xfs_growfs')290 cmd = '%s -n %s' % (xfs_growfs, dev)291 try:292 current_option = utils.system_output(cmd)293 finally:294 # Clean.295 cmd = 'umount %s' % dev296 utils.system_output(cmd, ignore_status=True)297 os.rmdir(tmp_mount_dir)298 # '-N' has the same effect as '-n' in mkfs.ext*. Man mkfs.xfs for details.299 cmd = 'mkfs.xfs %s -N -f %s' % (needed_options, dev)300 needed_out = utils.system_output(cmd)301 # 'mkfs.xfs -N' produces slightly different result than 'xfs_growfs -n'302 needed_out = re.sub('internal log', 'internal ', needed_out)303 if current_option == needed_out:304 return True305 else:306 return False307def match_mkfs_option(fs_type, dev, needed_options):308 """Compare the current filesystem tunables with needed ones."""309 if fs_type.startswith('ext'):310 ret = match_ext_options(fs_type, dev, needed_options)311 elif fs_type == 'xfs':312 ret = match_xfs_options(dev, needed_options)313 else:314 ret = False...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run autotest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful