Best Python code snippet using avocado_python
rpm.py
Source:rpm.py  
...46    if rc == 0:47        return True48    else:49        module.fail_json(msg='Error from rpm: %s: %s' % (cmd, err))50def rpm_erase(module, name):51    cmd = [ 'rpm', '-e', '--quiet', name ]52    rc, out, err = module.run_command(cmd)53    if rc == 0:54        return True55    else:56        module.fail_json(msg='Error from rpm: %s: %s' % (cmd, err))57def rpm_exists(module, name):58    cmd = [ 'rpm', '-q', '--quiet', '--nosignature', name ]59    rc, out, err = module.run_command(cmd)60    return rc == 061def query_pkgid_for_pkg(module, name):62    cmd = [ 'rpm', '-q', '--qf', '%{PKGID}', '--nosignature',63            name ]64    rc, out, err = module.run_command(cmd)65    if rc == 0:66        return out.strip()67    else:68        return None69def query_rpm_value_for_file(module, filename, format):70    file = os.path.expanduser(filename)71    if not os.path.exists(file):72        module.fail_json(msg='No package file: %s' % (filename))73    cmd = [ 'rpm', '-q', '--qf', format, '--nosignature', '-p', file ]74    rc, out, err = module.run_command(cmd)75    if rc == 0:76        return out77    else:78        module.fail_json(msg='Error from rpm: %s: %s' % (cmd, err))79def query_pkgid_for_file(module, filename):80    return query_rpm_value_for_file(module, filename, '%{PKGID}').strip()81def query_rpm_name_for_file(module, filename):82    return query_rpm_value_for_file(module, filename, '%{NAME}').strip()83def ensure_installed(module, params):84    if params['file']:85        file_pkgid = query_pkgid_for_file(module, params['file'])86        rpm_pkgid  = query_pkgid_for_pkg(module, params['name'])87        if file_pkgid == rpm_pkgid:88            return module.exit_json(changed=False)89        if rpm_install(module, params['file']):90            return module.exit_json(changed=True, name=params['name'],91                                    pkgid=file_pkgid)92    else:93        pkgid = query_pkgid_for_pkg(module, params['name'])94        if pkgid:95            return module.exit_json(changed=False)96        module.fail_json(msg='could not install package %s' % (params['name']))97def ensure_removed(module, params):98    pkgid = query_pkgid_for_pkg(module, params['name'])99    if not pkgid:100        return module.exit_json(changed=False, name=params['name'], pkgid=pkgid)101    if rpm_erase(module, params['name']):102        return module.exit_json(changed=True, name=params['name'], pkgid=pkgid)103def main():104    module = AnsibleModule(105        argument_spec = dict(106            name=dict(),107            state=dict(default='installed', choices=[ 'present', 'absent', 'installed', 'removed' ]),108            file=dict(),109        ),110        required_one_of = [ ['name', 'file'] ]111    )112    params = module.params113    if params['file'] and not params['name']:114        params['name'] = query_rpm_name_for_file(module, params['file'])115    if params['state'] in ['installed', 'present']:...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!!
