Ejemplo n.º 1
0
def run_module():
    module_args = dict(
        product=dict(required=True),
        name=dict(required=True),
        description=dict(required=True),
        rhel_release_name=dict(required=True),
        sig_key_name=dict(default='redhatrelease2'),
        default_brew_tag=dict(required=True),
        is_server_only=dict(type='bool', required=True),
        enabled=dict(type='bool', default=True),
        allow_rhn_debuginfo=dict(type='bool', required=True),
        allow_buildroot_push=dict(type='bool', required=True),
        is_oval_product=dict(type='bool', required=True),
        is_rhel_addon=dict(type='bool', required=True),
        push_targets=dict(type='list', required=True),
        brew_tags=dict(type='list', required=True),
    )
    module = AnsibleModule(
        argument_spec=module_args,
        supports_check_mode=True
    )

    check_mode = module.check_mode
    params = module.params

    client = common_errata_tool.Client()

    result = ensure_product_version(client, params, check_mode)

    module.exit_json(**result)
Ejemplo n.º 2
0
def run_module():
    module_args = dict(
        login_name=dict(required=True),
        realname=dict(required=True),
        organization=dict(),
        receives_mail=dict(type='bool', default=True),
        roles=dict(type='list'),
        enabled=dict(type='bool', default=True),
        email_address=dict(),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    # This seems to match what the ET does when the client does not specify a
    # value:
    if params['email_address'] is None:
        account_name, _ = params['login_name'].split('@', 1)
        params['email_address'] = '*****@*****.**' % account_name

    client = common_errata_tool.Client()

    result = ensure_user(client, params, check_mode)

    module.exit_json(**result)
def run_module():
    module_args = dict(
        name=dict(required=True),
        release_type=dict(choices=CDN_RELEASE_TYPES, required=True),
        content_type=dict(choices=CDN_CONTENT_TYPES, required=True),
        arch=dict(),
        use_for_tps=dict(type='bool', default=False),
        variants=dict(type='list', required=True),
        packages=dict(type='dict', default={}),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    # The arch default value depends on content_type.
    # The reason we hard-code this here is to match the ET's behavior so that
    # we preserve idempotency on subsequent runs.
    if params['arch'] is None:
        if params['content_type'] == 'Docker':
            params['arch'] = 'multi'
        else:
            params['arch'] = 'x86_64'

    # The ET server does not stop users from setting Docker repos to other
    # arches (ERRATA-9726). We will guard that here for now.
    if params['content_type'] == 'Docker' and params['arch'] != 'multi':
        module.fail_json(msg='arch must be "multi" for Docker repos')

    client = common_errata_tool.Client()

    result = ensure_cdn_repo(client, check_mode, params)

    module.exit_json(**result)
Ejemplo n.º 4
0
def run_module():
    module_args = dict(
        name=dict(required=True),
        description=dict(required=True),
        cpe=dict(),
        enabled=dict(type='bool', default=True),
        buildroot=dict(type='bool', default=False),
        product_version=dict(required=True),
        rhel_variant=dict(),
        tps_stream=dict(),
        push_targets=dict(type='list', required=True),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    # When a user omits rhel_variant, then this is a RHEL variant and we
    # require tps_stream.
    if params['rhel_variant'] is None:
        params.pop('rhel_variant')
        if params['tps_stream'] is None:
            module.fail_json(msg='RHEL variants require tps_stream.')
    else:
        # This is a layered product and we ignore tps_stream.
        params.pop('tps_stream')

    client = common_errata_tool.Client()

    result = ensure_variant(client, params, check_mode)

    module.exit_json(**result)
Ejemplo n.º 5
0
def run_module():
    module_args = dict(
        product=dict(),
        name=dict(required=True),
        description=dict(required=True),
        type=dict(required=True, choices=common_errata_tool.RELEASE_TYPES),
        product_versions=dict(type='list', required=True),
        enabled=dict(type='bool', default=True),
        active=dict(type='bool', default=True),
        enable_batching=dict(type='bool', default=True),
        program_manager=dict(required=True),
        blocker_flags=dict(type='list'),
        internal_target_release=dict(),
        zstream_target_release=dict(),
        ship_date=dict(),
        allow_shadow=dict(type='bool', default=False),
        allow_blocker=dict(type='bool', default=False),
        allow_exception=dict(type='bool', default=False),
        allow_pkg_dupes=dict(type='bool', default=False),
        supports_component_acl=dict(type='bool', default=False),
        limit_bugs_by_product=dict(type='bool', default=False),
        state_machine_rule_set=dict(),
        pelc_product_version_name=dict(),
        brew_tags=dict(type='list', default=[]),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    client = common_errata_tool.Client()

    result = ensure_release(client, params, check_mode)

    module.exit_json(**result)
def run_module():
    module_args = dict(
        short_name=dict(required=True),
        name=dict(required=True),
        description=dict(required=True),
        bugzilla_product_name=dict(default=''),
        valid_bug_states=dict(type='list'),
        active=dict(type='bool', default=True),
        ftp_path=dict(default=""),
        ftp_subdir=dict(),
        internal=dict(type='bool', default=False),
        default_docs_reviewer=dict(),
        push_targets=dict(type='list', required=True),
        default_solution=dict(required=True),
        state_machine_rule_set=dict(required=True),
        move_bugs_on_qe=dict(type='bool', default=False),
        text_only_advisories_require_dists=dict(type='bool', default=True),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    try:
        validate_params(module, params)
    except InvalidInputError as e:
        msg = 'invalid %s value "%s"' % (e.param, e.value)
        module.fail_json(msg=msg, changed=False, rc=1)

    client = common_errata_tool.Client()

    result = ensure_product(client, params, check_mode)

    module.exit_json(**result)
def run_module():
    module_args = dict(
        short_name=dict(required=True),
        name=dict(required=True),
        description=dict(required=True),
        bugzilla_product_name=dict(default=''),
        valid_bug_states=dict(type='list', default=['MODIFIED', 'VERIFIED']),
        active=dict(type='bool', default=True),
        ftp_path=dict(default=""),
        ftp_subdir=dict(),
        internal=dict(type='bool', default=False),
        default_docs_reviewer=dict(),
        push_targets=dict(type='list', required=True),
        default_solution=dict(required=True),
        state_machine_rule_set=dict(required=True),
        move_bugs_on_qe=dict(type='bool', default=False),
        text_only_advisories_require_dists=dict(type='bool', default=True),
        exd_org_group=dict(choices=EXD_ORG_GROUPS.keys()),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)
    # Ignore this attribute since it doesn't exist any more in ET
    del module.params['text_only_advisories_require_dists']

    check_mode = module.check_mode
    params = module.params

    try:
        validate_params(params)
    except InvalidInputError as e:
        msg = 'invalid %s value "%s"' % (e.param, e.value)
        module.fail_json(msg=msg, changed=False, rc=1)

    client = common_errata_tool.Client()

    try:
        result = ensure_product(client, params, check_mode)
    except DocsReviewerNotFoundError as e:
        msg = 'default_docs_reviewer %s account not found' % e
        module.fail_json(msg=msg, changed=False, rc=1)

    if (check_mode and result['changed'] and params['default_docs_reviewer']
            and boolean(os.getenv('ANSIBLE_STRICT_USER_CHECK_MODE', False))):
        try:
            user = common_errata_tool.get_user(client,
                                               params['default_docs_reviewer'],
                                               True)
        except UserNotFoundError as e:
            msg = 'default_docs_reviewer %s account not found' % e
            module.fail_json(msg=msg, changed=False, rc=1)

        if 'docs' not in user['roles']:
            msg = ("User %s does not have 'docs' role in ET" %
                   params['default_docs_reviewer'])
            module.fail_json(msg=msg, changed=False, rc=1)

    module.exit_json(**result)
def run_module():
    module_args = dict(
        product=dict(),
        name=dict(required=True),
        description=dict(required=True),
        type=dict(required=True, choices=common_errata_tool.RELEASE_TYPES),
        product_versions=dict(type='list', required=True),
        enabled=dict(type='bool', default=True),
        active=dict(type='bool', default=True),
        enable_batching=dict(type='bool', default=True),
        program_manager=dict(),
        blocker_flags=dict(type='list'),
        internal_target_release=dict(),
        zstream_target_release=dict(),
        ship_date=dict(),
        allow_shadow=dict(type='bool', default=False),
        allow_blocker=dict(type='bool', default=False),
        allow_exception=dict(type='bool', default=False),
        allow_pkg_dupes=dict(type='bool', default=False),
        supports_component_acl=dict(type='bool', default=False),
        limit_bugs_by_product=dict(type='bool', default=False),
        state_machine_rule_set=dict(),
        pelc_product_version_name=dict(),
        brew_tags=dict(type='list', default=[]),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    client = common_errata_tool.Client()

    try:
        result = ensure_release(client, params, check_mode)
    except ProgramManagerNotFoundError as e:
        msg = 'program_manager %s account not found' % e
        module.fail_json(msg=msg, changed=False, rc=1)

    if (check_mode and result['changed'] and params['program_manager']
            and boolean(os.getenv('ANSIBLE_STRICT_USER_CHECK_MODE', False))):
        try:
            _ = common_errata_tool.get_user(client, params['program_manager'],
                                            True)
        except UserNotFoundError as e:
            msg = 'program_manager %s account not found' % e
            module.fail_json(msg=msg, changed=False, rc=1)

    module.exit_json(**result)
def run_module():
    module_args = dict(
        product=dict(),
        name=dict(required=True),
        description=dict(required=True),
        type=dict(required=True),
        product_versions=dict(type='list', required=True),
        enabled=dict(type='bool', default=True),
        active=dict(type='bool', default=True),
        enable_batching=dict(type='bool', default=True),
        program_manager=dict(required=True),
        blocker_flags=dict(type='list', default=[]),
        internal_target_release=dict(),
        zstream_target_release=dict(),
        ship_date=dict(),
        allow_shadow=dict(type='bool', default=False),
        allow_blocker=dict(type='bool', default=False),
        allow_exception=dict(type='bool', default=False),
        allow_pkg_dupes=dict(type='bool', default=False),
        supports_component_acl=dict(type='bool', default=False),
        limit_bugs_by_product=dict(type='bool', default=False),
        state_machine_rule_set=dict(),
        pelc_product_version_name=dict(),
        brew_tags=dict(type='list', default=[]),
    )
    module = AnsibleModule(
        argument_spec=module_args,
        supports_check_mode=True
    )

    check_mode = module.check_mode
    params = module.params

    try:
        validate_params(module, params)
    except InvalidInputError as e:
        msg = 'invalid %s value "%s"' % (e.param, e.value)
        module.fail_json(msg=msg, changed=False, rc=1)

    client = common_errata_tool.Client()

    result = ensure_release(client, params, check_mode)

    module.exit_json(**result)
Ejemplo n.º 10
0
def run_module():
    module_args = dict(
        login_name=dict(required=True),
        realname=dict(required=True),
        organization=dict(),
        receives_mail=dict(type='bool', default=True),
        roles=dict(type='list'),
        enabled=dict(type='bool', default=True),
        email_address=dict(),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    client = common_errata_tool.Client()

    result = ensure_user(client, params, check_mode)

    module.exit_json(**result)
def run_module():
    module_args = dict(
        name=dict(required=True),
        description=dict(required=True),
        cpe=dict(),
        enabled=dict(type='bool', default=True),
        buildroot=dict(type='bool', default=False),
        product_version=dict(required=True),
        rhel_variant=dict(required=True),
        push_targets=dict(type='list', required=True),
    )
    module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)

    check_mode = module.check_mode
    params = module.params

    client = common_errata_tool.Client()

    result = ensure_variant(client, params, check_mode)

    module.exit_json(**result)