def main(): module = AnsibleModule( argument_spec=dict(server_url=dict(required=True), username=dict(required=True, no_log=True), password=dict(required=True, no_log=True), verify_ssl=dict(type='bool', default=True), name=dict(required=True), organization=dict(required=True), from_environment=dict(), version=dict(), to_environment=dict(required=True), force=dict(type='bool'), force_yum_metadata_regeneration=dict(type='bool')), required_one_of=[['from_environment', 'version']], mutually_exclusive=[['from_environment', 'version']], supports_check_mode=True, ) if has_import_error: module.fail_json(msg=import_error_msg) set_task_timeout(3600000) # 60 minutes server_url = module.params['server_url'] username = module.params['username'] password = module.params['password'] verify_ssl = module.params['verify_ssl'] name = module.params['name'] organization = module.params['organization'] from_environment = module.params['from_environment'] version = module.params['version'] to_environment = module.params['to_environment'] force = module.params['force'] force_yum_metadata_regeneration = module.params[ 'force_yum_metadata_regeneration'] create_server(server_url, (username, password), verify_ssl) ping_server(module) try: changed = content_view_promote( module, name, organization, to_environment, from_environment=from_environment, version=version, force=force, force_yum_metadata_regeneration=force_yum_metadata_regeneration) module.exit_json(changed=changed) except Exception as e: module.fail_json(msg=e)
def main(): module = AnsibleModule( argument_spec=dict( server_url=dict(required=True), username=dict(required=True, no_log=True), password=dict(required=True, no_log=True), verify_ssl=dict(type='bool', default=True), organization=dict(required=True), manifest_path=dict(), state=dict(default='present', choices=['absent', 'present', 'refreshed']), redhat_repository_url=dict(), ), required_if=[ ['state', 'present', ['manifest_path']], ], supports_check_mode=True, ) if has_import_error: module.fail_json(msg=import_error_msg) set_task_timeout(300000) # 5 minutes server_url = module.params['server_url'] username = module.params['username'] password = module.params['password'] verify_ssl = module.params['verify_ssl'] organization = module.params['organization'] manifest_path = module.params['manifest_path'] redhat_repository_url = module.params['redhat_repository_url'] state = module.params['state'] validate_params(module, state=state, manifest_path=manifest_path) create_server(server_url, (username, password), verify_ssl) ping_server(module) try: changed = manifest(module, organization, state, manifest_path, redhat_repository_url=redhat_repository_url) module.exit_json(changed=changed) except Exception as e: module.fail_json(msg=e)
def main(): module = AnsibleModule( argument_spec=dict( server_url=dict(required=True), username=dict(required=True, no_log=True), password=dict(required=True, no_log=True), verify_ssl=dict(type='bool', default=True), content_view=dict(required=True), organization=dict(required=True), state=dict(default='present', choices=['present', 'absent']), version=dict(), lifecycle_environments=dict(type='list', default=['Library']), force=dict(type='bool', aliases=['force_promote'], default=False), force_yum_metadata_regeneration=dict(type='bool', default=False), synchronous=dict(type='bool', default=True), current_lifecycle_environment=dict(), ), mutually_exclusive=[['current_lifecycle_environment', 'version']], supports_check_mode=True, ) if has_import_error: module.fail_json(msg=import_error_msg) set_task_timeout(3600000) # 60 minutes params_dict = dict([(k, v) for (k, v) in module.params.items() if v is not None]) server_url = module.params['server_url'] username = module.params['username'] password = module.params['password'] verify_ssl = module.params['verify_ssl'] state = module.params['state'] try: create_server(server_url, (username, password), verify_ssl) except Exception as e: module.fail_json(msg="Failed to connect to Foreman server: %s " % e) ping_server(module) organization = find_organization(module, params_dict['organization']) content_view = find_content_view(module, name=params_dict['content_view'], organization=organization) if 'current_lifecycle_environment' in params_dict: params_dict[ 'current_lifecycle_environment'] = find_lifecycle_environment( module, name=params_dict['current_lifecycle_environment'], organization=organization) content_view_version = find_content_view_version( module, content_view, environment=params_dict['current_lifecycle_environment']) elif 'version' in params_dict: content_view_version = find_content_view_version( module, content_view, version=params_dict['version'], failsafe=True) else: content_view_version = None changed = False if state == 'present': if content_view_version is None: kwargs = dict(data=dict()) if 'description' in params_dict: kwargs['data'].update(description=params_dict['description']) if 'force_metadata_regeneration' in params_dict: kwargs['data'].update( force_yum_metadata_regeneration=params_dict[ 'force_metadata_regeneration']) if 'version' in params_dict: kwargs['data'].update( major=map(int, str(params_dict['version']).split('.'))[0]) kwargs['data'].update( minor=map(int, str(params_dict['version']).split('.'))[1]) response = content_view.publish(params_dict['synchronous'], **kwargs) changed = True content_view_version = ContentViewVersion( id=response['output']['content_view_version_id']).read() if 'lifecycle_environments' in params_dict: lifecycle_environments = find_lifecycle_environments( module, names=params_dict['lifecycle_environments'], organization=organization) le_changed = promote_content_view_version( module, content_view_version, organization, lifecycle_environments, params_dict['synchronous'], force=params_dict['force'], force_yum_metadata_regeneration=params_dict[ 'force_yum_metadata_regeneration']) elif state == 'absent': changed = naildown_entity_state(ContentViewVersion, dict(), content_view_version, state, module) module.exit_json(changed=changed or le_changed)