def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), user=dict(type='str', required=True), state=dict(type='str', choices=['present', 'absent'], required=False, default='present'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] user = params['user'] state = params['state'] session = common_koji.get_session(profile) try: cgs = list_cgs(session) result = ensure_cg(session, user, name, state, cgs, check_mode) except UnknownCGsError: if check_mode: msg = 'check mode does not work without listCGs' result = {'changed': False, 'msg': msg} else: result = ensure_unknown_cg(session, user, name, state) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(), name=dict(required=True), state=dict(choices=['present', 'absent'], default='present'), build_tag=dict(), dest_tag=dict(), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] build_tag = params['build_tag'] dest_tag = params['dest_tag'] session = common_koji.get_session(profile) if state == 'present': if not build_tag: module.fail_json(msg='build_tag is required') if not dest_tag: module.fail_json(msg='dest_tag is required') result = ensure_target(session, name, check_mode, build_tag, dest_tag) elif state == 'absent': result = delete_target(session, name, check_mode) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), state=dict(type='str', required=False, default='present'), build_tag=dict(type='str', required=True), dest_tag=dict(type='str', required=True), ) module = AnsibleModule( argument_spec=module_args, supports_check_mode=True ) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] build_tag = params['build_tag'] dest_tag = params['dest_tag'] session = common_koji.get_session(profile) if state == 'present': result = ensure_target(session, name, check_mode, build_tag, dest_tag) elif state == 'absent': result = delete_target(session, name, check_mode) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(), name=dict(required=True), state=dict(choices=['present', 'absent'], default='present'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] session = common_koji.get_session(profile) result = {'changed': False} if state == 'present': btypes = session.listBTypes(query={'name': name}) if not btypes: result['changed'] = True if not check_mode: common_koji.ensure_logged_in(session) session.addBType(name) elif state == 'absent': module.fail_json(msg="Cannot remove Koji build types.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), state=dict(type='str', required=False, default='present'), url=dict(type='str', required=False, default=None), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] url = params['url'] session = common_koji.get_session(profile) if state == 'present': if not url: module.fail_json(msg='you must set a url for this external_repo') result = ensure_external_repo(session, name, check_mode, url) elif state == 'absent': result = delete_external_repo(session, name, check_mode) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), permissions=dict(type='list', required=True), krb_principal=dict(type='str', required=False, default=None), state=dict(type='str', required=False, default='enabled'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] session = common_koji.get_session(profile) if state not in ('enabled', 'disabled'): module.fail_json(msg="State must be 'enabled' or 'disabled'.", changed=False, rc=1) result = ensure_user(session, name, check_mode, state, permissions=params['permissions'], krb_principal=params['krb_principal']) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(), name=dict(required=True), args=dict(type='raw', default=[]), login=dict(type='bool', default=False), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') params = module.params profile = params['koji'] name = params['name'] args = params['args'] login = params['login'] if args and not isinstance(args, (dict, list)): msg = "args must be a list or dictionary, not %s" % type(args) module.fail_json(msg=msg, changed=False, rc=1) session = common_koji.get_session(profile) if module.check_mode: result = check_mode_call(name, args) else: result = do_call(session, name, args, login) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(), tag=dict(required=True), state=dict(choices=['present', 'absent'], default='present'), packages=dict(type='dict', required=True), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] tag_name = params['tag'] state = params['state'] packages = params['packages'] session = common_koji.get_session(profile) tag_info = session.getTag(tag_name) if state == 'present': # ensure packages are there result = ensure_packages(session, tag_name, tag_info['id'], check_mode, packages) elif state == 'absent': # delete packages result = remove_packages(session, tag_name, check_mode, packages) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), user=dict(type='str', required=True), state=dict(type='str', required=False, default='present'), ) module = AnsibleModule( argument_spec=module_args, # check mode needs https://pagure.io/koji/pull-request/1160 supports_check_mode=False ) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') params = module.params profile = params['koji'] name = params['name'] user = params['user'] state = params['state'] session = common_koji.get_session(profile) result = {'changed': False} # There are no "get" methods for content generator information, so we must # send the changes to Koji every time. # in-progress "listCGs" pull request: # https://pagure.io/koji/pull-request/1160 common_koji.ensure_logged_in(session) if state == 'present': # The "grant" method will at least raise an error if the permission was # already granted, so we can set the "changed" result based on that. try: session.grantCGAccess(user, name, create=True) result['changed'] = True except common_koji.koji.GenericError as e: if 'User already has access to content generator' not in str(e): raise elif state == 'absent': # There's no indication whether this changed anything, so we're going # to be pessimistic and say we're always changing it. session.revokeCGAccess(user, name) result['changed'] = True else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), state=dict(type='str', required=False, default='present'), inheritance=dict(type='raw', required=False, default=None), external_repos=dict(type='raw', required=False, default=None), packages=dict(type='raw', required=False, default=None), groups=dict(type='raw', required=False, default=None), arches=dict(type='str', required=False, default=None), perm=dict(type='str', required=False, default=None), locked=dict(type='bool', required=False, default=False), maven_support=dict(type='bool', required=False, default=False), maven_include_all=dict(type='bool', required=False, default=False), extra=dict(type='dict', required=False, default=None), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] session = common_koji.get_session(profile) if state == 'present': result = ensure_tag(session, name, check_mode, inheritance=params['inheritance'], external_repos=params['external_repos'], packages=params['packages'], groups=params['groups'], arches=params['arches'], perm=params['perm'] or None, locked=params['locked'], maven_support=params['maven_support'], maven_include_all=params['maven_include_all'], extra=params['extra']) elif state == 'absent': result = delete_tag(session, name, check_mode) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), child_tag=dict(type='str', required=True), parent_tag=dict(type='str', required=True), priority=dict(type='int', required=False), maxdepth=dict(type='int', required=False, default=None), pkg_filter=dict(type='str', required=False, default=''), intransitive=dict(type='bool', required=False, default=False), noconfig=dict(type='bool', required=False, default=False), state=dict(type='str', required=False, default='present'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params state = params['state'] profile = params['koji'] session = common_koji.get_session(profile) if state == 'present': if 'priority' not in params: module.fail_json(msg='specify a "priority" integer') result = add_tag_inheritance(session, child_tag=params['child_tag'], parent_tag=params['parent_tag'], priority=params['priority'], maxdepth=params['maxdepth'], pkg_filter=params['pkg_filter'], intransitive=params['intransitive'], noconfig=params['noconfig'], check_mode=check_mode) elif state == 'absent': result = remove_tag_inheritance(session, child_tag=params['child_tag'], parent_tag=params['parent_tag'], check_mode=check_mode) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), description=dict(type='str', required=True), extensions=dict(type='str', required=True), state=dict(type='str', required=False, default='present'), ) module = AnsibleModule( argument_spec=module_args, supports_check_mode=True ) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] description = params['description'] extensions = params['extensions'] state = params['state'] session = common_koji.get_session(profile) result = {'changed': False} if state == 'present': if not session.getArchiveType(type_name=name): result['changed'] = True if not check_mode: common_koji.ensure_logged_in(session) session.addArchiveType(name, description, extensions) elif state == 'absent': module.fail_json(msg="Cannot remove Koji archive types.", changed=False, rc=1) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), state=dict(type='str', required=False, default='present'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] session = common_koji.get_session(profile) result = {'changed': False} if state == 'present': btype_data = session.listBTypes() btypes = [data['name'] for data in btype_data] if name not in btypes: result['changed'] = True if not check_mode: common_koji.ensure_logged_in(session) session.addBType(name) elif state == 'absent': module.fail_json(msg="Cannot remove Koji build types.", changed=False, rc=1) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(), name=dict(required=True), permissions=dict(type='list', required=True), krb_principal=dict(), krb_principals=dict(type='list', elements='str'), state=dict(choices=['enabled', 'disabled'], default='enabled'), ) module = AnsibleModule(argument_spec=module_args, mutually_exclusive=[('krb_principal', 'krb_principals')], supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] if params['krb_principals'] is not None: krb_principals = params['krb_principals'] elif params['krb_principal'] is not None: krb_principals = [params['krb_principal']] else: krb_principals = None session = common_koji.get_session(profile) result = ensure_user(session, name, check_mode, state, permissions=params['permissions'], krb_principals=krb_principals) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), name=dict(type='str', required=True), arches=dict(type='list', required=True), channels=dict(type='list', required=False, default=None), krb_principal=dict(type='str', required=False, default=None), capacity=dict(type='float', required=False, default=None), description=dict(type='str', required=False, default=None), comment=dict(type='str', required=False, default=None), state=dict(type='str', choices=['enabled', 'disabled'], required=False, default='enabled'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params profile = params['koji'] name = params['name'] state = params['state'] session = common_koji.get_session(profile) result = ensure_host(session, name, check_mode, state, arches=params['arches'], channels=params['channels'], krb_principal=params['krb_principal'], capacity=params['capacity'], description=params['description'], comment=params['comment']) module.exit_json(**result)
def run_module(): module_args = dict( koji=dict(type='str', required=False), child_tag=dict(type='str', required=True), parent_tag=dict(type='str', required=True), priority=dict(type='int', required=True), state=dict(type='str', required=False, default='present'), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) if not common_koji.HAS_KOJI: module.fail_json(msg='koji is required for this module') check_mode = module.check_mode params = module.params state = params['state'] profile = params['koji'] session = common_koji.get_session(profile) if state == 'present': result = add_tag_inheritance(session, child_tag=params['child_tag'], parent_tag=params['parent_tag'], priority=params['priority'], check_mode=check_mode) elif state == 'absent': result = remove_tag_inheritance(session, child_tag=params['child_tag'], parent_tag=params['parent_tag'], priority=params['priority'], check_mode=check_mode) else: module.fail_json(msg="State must be 'present' or 'absent'.", changed=False, rc=1) module.exit_json(**result)
def test_anonymous(self): profile = 'testkoji' session = get_session(profile) assert session.logged_in is False