|
|
6e61fb |
#!/usr/bin/python
|
|
|
6e61fb |
from ansible.module_utils.basic import AnsibleModule
|
|
|
6e61fb |
from ansible.module_utils import common_koji
|
|
|
6e61fb |
|
|
|
6e61fb |
|
|
|
6e61fb |
ANSIBLE_METADATA = {
|
|
|
6e61fb |
'metadata_version': '1.0',
|
|
|
6e61fb |
'status': ['preview'],
|
|
|
6e61fb |
'supported_by': 'community'
|
|
|
6e61fb |
}
|
|
|
6e61fb |
|
|
|
6e61fb |
|
|
|
6e61fb |
DOCUMENTATION = '''
|
|
|
6e61fb |
---
|
|
|
6e61fb |
module: koji_archivetype
|
|
|
6e61fb |
|
|
|
6e61fb |
short_description: Create and manage Koji archive types
|
|
|
6e61fb |
description:
|
|
|
6e61fb |
- Create and manage Koji archive types
|
|
|
6e61fb |
- Your Koji Hub must be version 1.20 or newer in order to use the new
|
|
|
6e61fb |
``addArchiveType`` RPC.
|
|
|
6e61fb |
|
|
|
6e61fb |
options:
|
|
|
6e61fb |
name:
|
|
|
6e61fb |
description:
|
|
|
6e61fb |
- The name of the Koji archive type to create and manage.
|
|
|
6e61fb |
- 'Example: "deb".'
|
|
|
6e61fb |
required: true
|
|
|
6e61fb |
description:
|
|
|
6e61fb |
description:
|
|
|
6e61fb |
- The human-readable description of this Koji archive type. Koji uses
|
|
|
6e61fb |
this value in the UI tooling that display a build's files.
|
|
|
6e61fb |
- 'Example: "Debian packages".'
|
|
|
6e61fb |
required: true
|
|
|
6e61fb |
extensions:
|
|
|
6e61fb |
description:
|
|
|
6e61fb |
- The file extensions for this Koji archive type.
|
|
|
6e61fb |
- 'Example: "deb" means Koji will apply this archive type to files that
|
|
|
6e61fb |
end in ".deb".'
|
|
|
6e61fb |
required: true
|
|
|
6e61fb |
requirements:
|
|
|
6e61fb |
- "python >= 2.7"
|
|
|
6e61fb |
- "koji"
|
|
|
6e61fb |
'''
|
|
|
6e61fb |
|
|
|
6e61fb |
EXAMPLES = '''
|
|
|
6e61fb |
- name: Add deb archive types into koji
|
|
|
6e61fb |
hosts: localhost
|
|
|
6e61fb |
tasks:
|
|
|
6e61fb |
- name: Add deb archive type
|
|
|
6e61fb |
koji_archivetype:
|
|
|
6e61fb |
name: deb
|
|
|
6e61fb |
description: Debian packages
|
|
|
6e61fb |
extensions: deb
|
|
|
6e61fb |
state: present
|
|
|
6e61fb |
|
|
|
6e61fb |
- name: Add dsc archive type
|
|
|
6e61fb |
koji_archivetype:
|
|
|
6e61fb |
name: dsc
|
|
|
6e61fb |
description: Debian source control files
|
|
|
6e61fb |
extensions: dsc
|
|
|
6e61fb |
state: present
|
|
|
6e61fb |
'''
|
|
|
6e61fb |
|
|
|
6e61fb |
RETURN = ''' # '''
|
|
|
6e61fb |
|
|
|
6e61fb |
|
|
|
6e61fb |
def run_module():
|
|
|
6e61fb |
module_args = dict(
|
|
|
6e61fb |
koji=dict(type='str', required=False),
|
|
|
6e61fb |
name=dict(type='str', required=True),
|
|
|
6e61fb |
description=dict(type='str', required=True),
|
|
|
6e61fb |
extensions=dict(type='str', required=True),
|
|
|
6e61fb |
state=dict(type='str', choices=[
|
|
|
6e61fb |
'present', 'absent'], required=False, default='present'),
|
|
|
6e61fb |
)
|
|
|
6e61fb |
module = AnsibleModule(
|
|
|
6e61fb |
argument_spec=module_args,
|
|
|
6e61fb |
supports_check_mode=True
|
|
|
6e61fb |
)
|
|
|
6e61fb |
|
|
|
6e61fb |
if not common_koji.HAS_KOJI:
|
|
|
6e61fb |
module.fail_json(msg='koji is required for this module')
|
|
|
6e61fb |
|
|
|
6e61fb |
check_mode = module.check_mode
|
|
|
6e61fb |
params = module.params
|
|
|
6e61fb |
profile = params['koji']
|
|
|
6e61fb |
name = params['name']
|
|
|
6e61fb |
description = params['description']
|
|
|
6e61fb |
extensions = params['extensions']
|
|
|
6e61fb |
state = params['state']
|
|
|
6e61fb |
|
|
|
6e61fb |
session = common_koji.get_session(profile)
|
|
|
6e61fb |
|
|
|
6e61fb |
result = {'changed': False}
|
|
|
6e61fb |
|
|
|
6e61fb |
if state == 'present':
|
|
|
6e61fb |
if not session.getArchiveType(type_name=name):
|
|
|
6e61fb |
result['changed'] = True
|
|
|
6e61fb |
if not check_mode:
|
|
|
6e61fb |
common_koji.ensure_logged_in(session)
|
|
|
6e61fb |
session.addArchiveType(name, description, extensions)
|
|
|
6e61fb |
elif state == 'absent':
|
|
|
6e61fb |
module.fail_json(msg="Cannot remove Koji archive types.",
|
|
|
6e61fb |
changed=False, rc=1)
|
|
|
6e61fb |
|
|
|
6e61fb |
module.exit_json(**result)
|
|
|
6e61fb |
|
|
|
6e61fb |
|
|
|
6e61fb |
def main():
|
|
|
6e61fb |
run_module()
|
|
|
6e61fb |
|
|
|
6e61fb |
|
|
|
6e61fb |
if __name__ == '__main__':
|
|
|
6e61fb |
main()
|