def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), action_script_config_ref=dict(type='str',), autoscale_trigger_notification=dict(type='bool',), description=dict(type='str',), email_config_ref=dict(type='str',), external_only=dict(type='bool', required=True), level=dict(type='str', required=True), name=dict(type='str', required=True), snmp_trap_profile_ref=dict(type='str',), syslog_config_ref=dict(type='str',), tenant_ref=dict(type='str',), url=dict(type='str',), uuid=dict(type='str',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'actiongroupconfig', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), auto_disable_old_prod_pools=dict(type='bool', ), description=dict(type='str', ), evaluation_duration=dict(type='int', ), name=dict(type='str', required=True), rules=dict(type='list', ), scheme=dict(type='str', ), target_test_traffic_ratio=dict(type='int', ), tenant_ref=dict(type='str', ), test_traffic_ratio_rampup=dict(type='int', ), url=dict(type='str', ), uuid=dict(type='str', ), webhook_ref=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'poolgroupdeploymentpolicy', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), backup_config_ref=dict(type='str', ), enabled=dict(type='bool', ), end_date_time=dict(type='str', ), frequency=dict(type='int', ), frequency_unit=dict(type='str', ), name=dict(type='str', required=True), run_mode=dict(type='str', ), run_script_ref=dict(type='str', ), scheduler_action=dict(type='str', ), start_date_time=dict(type='str', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'scheduler', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), availability_zone=dict(type='str', ), cloud_ref=dict(type='str', ), container_mode=dict(type='bool', ), container_type=dict(type='str', ), controller_created=dict(type='bool', ), controller_ip=dict(type='str', ), data_vnics=dict(type='list', ), enable_state=dict(type='str', ), flavor=dict(type='str', ), host_ref=dict(type='str', ), hypervisor=dict(type='str', ), mgmt_vnic=dict(type='dict', ), name=dict(type='str', ), resources=dict(type='dict', ), se_group_ref=dict(type='str', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'serviceengine', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), accepted_ciphers=dict(type='str', ), accepted_versions=dict(type='list', ), cipher_enums=dict(type='list', ), description=dict(type='str', ), dhparam=dict(type='str', ), enable_ssl_session_reuse=dict(type='bool', ), name=dict(type='str', required=True), prefer_client_cipher_ordering=dict(type='bool', ), send_close_notify=dict(type='bool', ), ssl_rating=dict(type='dict', ), ssl_session_timeout=dict(type='int', ), tags=dict(type='list', ), tenant_ref=dict(type='str', ), type=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'sslprofile', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), description=dict(type='str', ), intelligent_autoscale=dict(type='bool', ), intelligent_scalein_margin=dict(type='int', ), intelligent_scaleout_margin=dict(type='int', ), max_scalein_adjustment_step=dict(type='int', ), max_scaleout_adjustment_step=dict(type='int', ), max_size=dict(type='int', ), min_size=dict(type='int', ), name=dict(type='str', required=True), scalein_alertconfig_refs=dict(type='list', ), scalein_cooldown=dict(type='int', ), scaleout_alertconfig_refs=dict(type='list', ), scaleout_cooldown=dict(type='int', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), use_predicted_load=dict(type='bool', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'serverautoscalepolicy', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), addrs=dict(type='list', ), apic_epg_name=dict(type='str', ), country_codes=dict(type='list', ), description=dict(type='str', ), ip_ports=dict(type='list', ), marathon_app_name=dict(type='str', ), marathon_service_port=dict(type='int', ), name=dict(type='str', required=True), prefixes=dict(type='list', ), ranges=dict(type='list', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'ipaddrgroup', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), allocate_ip_in_vrf=dict(type='bool', ), aws_profile=dict(type='dict', ), azure_profile=dict(type='dict', ), custom_profile=dict(type='dict', ), gcp_profile=dict(type='dict', ), infoblox_profile=dict(type='dict', ), internal_profile=dict(type='dict', ), name=dict(type='str', required=True), oci_profile=dict(type='dict', ), openstack_profile=dict(type='dict', ), proxy_configuration=dict(type='dict', ), tenant_ref=dict(type='str', ), tencent_profile=dict(type='dict', ), type=dict(type='str', required=True), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'ipamdnsproviderprofile', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), cloud_config_cksum=dict(type='str',), created_by=dict(type='str',), description=dict(type='str',), http_request_policy=dict(type='dict',), http_response_policy=dict(type='dict',), http_security_policy=dict(type='dict',), is_internal_policy=dict(type='bool',), name=dict(type='str', required=True), tenant_ref=dict(type='str',), url=dict(type='str',), uuid=dict(type='str',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'httppolicyset', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), cloud_ref=dict(type='str', ), configured_subnets=dict(type='list', ), dhcp_enabled=dict(type='bool', ), exclude_discovered_subnets=dict(type='bool', ), ip6_autocfg_enabled=dict(type='bool', ), name=dict(type='str', required=True), synced_from_se=dict(type='bool', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), vcenter_dvs=dict(type='bool', ), vimgrnw_ref=dict(type='str', ), vrf_context_ref=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'network', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), cloud_ref=dict(type='str', ), dns_info=dict(type='list', ), east_west_placement=dict(type='bool', ), name=dict(type='str', required=True), tenant_ref=dict(type='str', ), url=dict(type='str', ), use_standard_alb=dict(type='bool', ), uuid=dict(type='str', ), vip=dict(type='list', ), vrf_context_ref=dict(type='str', ), vsvip_cloud_config_cksum=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'vsvip', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), app_cookie_persistence_profile=dict(type='dict',), description=dict(type='str',), hdr_persistence_profile=dict(type='dict',), http_cookie_persistence_profile=dict(type='dict',), ip_persistence_profile=dict(type='dict',), is_federated=dict(type='bool',), name=dict(type='str', required=True), persistence_type=dict(type='str', required=True), server_hm_down_recovery=dict(type='str',), tenant_ref=dict(type='str',), url=dict(type='str',), uuid=dict(type='str',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'applicationpersistenceprofile', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), created_by=dict(type='str',), datascript=dict(type='list',), description=dict(type='str',), ipgroup_refs=dict(type='list',), name=dict(type='str', required=True), pool_group_refs=dict(type='list',), pool_refs=dict(type='list',), protocol_parser_refs=dict(type='list',), string_group_refs=dict(type='list',), tenant_ref=dict(type='str',), url=dict(type='str',), uuid=dict(type='str',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'vsdatascriptset', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), bgp_profile=dict(type='dict', ), cloud_ref=dict(type='str', ), debugvrfcontext=dict(type='dict', ), description=dict(type='str', ), gateway_mon=dict(type='list', ), internal_gateway_monitor=dict(type='dict', ), name=dict(type='str', required=True), static_routes=dict(type='list', ), system_default=dict(type='bool', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'vrfcontext', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), ca_certs=dict(type='list', ), created_by=dict(type='str', ), crl_check=dict(type='bool', ), crls=dict(type='list', ), ignore_peer_chain=dict(type='bool', ), is_federated=dict(type='bool', ), name=dict(type='str', required=True), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), validate_only_leaf_crl=dict(type='bool', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'pkiprofile', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), action_group_ref=dict(type='str', ), alert_rule=dict(type='dict', required=True), autoscale_alert=dict(type='bool', ), category=dict(type='str', required=True), description=dict(type='str', ), enabled=dict(type='bool', ), expiry_time=dict(type='int', ), name=dict(type='str', required=True), obj_uuid=dict(type='str', ), object_type=dict(type='str', ), recommendation=dict(type='str', ), rolling_window=dict(type='int', ), source=dict(type='str', required=True), summary=dict(type='str', ), tenant_ref=dict(type='str', ), threshold=dict(type='int', ), throttle=dict(type='int', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'alertconfig', set([]))
def main(): argument_specs = dict( old_password=dict(type='str', required=True, no_log=True), # Flag to specify priority of old/new password while establishing session with controller. # To handle both Saas and conventional (Entire state in playbook) scenario. force_change=dict(type='bool', default=False)) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) api_creds = AviCredentials() api_creds.update_from_ansible_module(module) old_password = module.params.get('old_password') force_change = module.params.get('force_change', False) data = {'old_password': old_password, 'password': api_creds.password} # First try old password if 'force_change' is set to true if force_change: first_pwd = old_password second_pwd = api_creds.password # First try new password if 'force_change' is set to false or not specified in playbook. else: first_pwd = api_creds.password second_pwd = old_password password_changed = False try: api = ApiSession.get_session(api_creds.controller, api_creds.username, password=first_pwd, timeout=api_creds.timeout, tenant=api_creds.tenant, tenant_uuid=api_creds.tenant_uuid, token=api_creds.token, port=api_creds.port) if force_change: rsp = api.put('useraccount', data=data) if rsp: password_changed = True except Exception: pass if not password_changed: api = ApiSession.get_session(api_creds.controller, api_creds.username, password=second_pwd, timeout=api_creds.timeout, tenant=api_creds.tenant, tenant_uuid=api_creds.tenant_uuid, token=api_creds.token, port=api_creds.port) if not force_change: rsp = api.put('useraccount', data=data) if rsp: password_changed = True if password_changed: return ansible_return(module, rsp, True, req=data) else: return ansible_return(module, rsp, False, req=data)
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), apic_configuration=dict(type='dict', ), apic_mode=dict(type='bool', ), autoscale_polling_interval=dict(type='int', ), aws_configuration=dict(type='dict', ), azure_configuration=dict(type='dict', ), cloudstack_configuration=dict(type='dict', ), custom_tags=dict(type='list', ), dhcp_enabled=dict(type='bool', ), dns_provider_ref=dict(type='str', ), docker_configuration=dict(type='dict', ), east_west_dns_provider_ref=dict(type='str', ), east_west_ipam_provider_ref=dict(type='str', ), enable_vip_static_routes=dict(type='bool', ), gcp_configuration=dict(type='dict', ), ip6_autocfg_enabled=dict(type='bool', ), ipam_provider_ref=dict(type='str', ), license_tier=dict(type='str', ), license_type=dict(type='str', ), linuxserver_configuration=dict(type='dict', ), mesos_configuration=dict(type='dict', ), mtu=dict(type='int', ), name=dict(type='str', required=True), nsx_configuration=dict(type='dict', ), obj_name_prefix=dict(type='str', ), openstack_configuration=dict(type='dict', ), oshiftk8s_configuration=dict(type='dict', ), prefer_static_routes=dict(type='bool', ), proxy_configuration=dict(type='dict', ), rancher_configuration=dict(type='dict', ), state_based_dns_registration=dict(type='bool', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), vca_configuration=dict(type='dict', ), vcenter_configuration=dict(type='dict', ), vtype=dict(type='str', required=True), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'cloud', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), se_agent_properties=dict(type='dict', ), se_bootup_properties=dict(type='dict', ), se_runtime_properties=dict(type='dict', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'seproperties', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), ca_certs=dict(type='list', ), certificate=dict(type='dict', required=True), certificate_base64=dict(type='bool', ), certificate_management_profile_ref=dict(type='str', ), created_by=dict(type='str', ), dynamic_params=dict(type='list', ), enckey_base64=dict(type='str', ), enckey_name=dict(type='str', ), format=dict(type='str', ), hardwaresecuritymodulegroup_ref=dict(type='str', ), key=dict( type='str', no_log=True, ), key_base64=dict(type='bool', ), key_params=dict(type='dict', ), key_passphrase=dict( type='str', no_log=True, ), name=dict(type='str', required=True), status=dict(type='str', ), tenant_ref=dict(type='str', ), type=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'sslkeyandcertificate', set(['key_passphrase', 'key']))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), aws_access_key=dict( type='str', no_log=True, ), aws_bucket_id=dict(type='str', ), aws_secret_access=dict( type='str', no_log=True, ), backup_file_prefix=dict(type='str', ), backup_passphrase=dict( type='str', no_log=True, ), maximum_backups_stored=dict(type='int', ), name=dict(type='str', required=True), remote_directory=dict(type='str', ), remote_hostname=dict(type='str', ), save_local=dict(type='bool', ), ssh_user_ref=dict(type='str', ), tenant_ref=dict(type='str', ), upload_to_remote_host=dict(type='bool', ), upload_to_s3=dict(type='bool', ), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api( module, 'backupconfiguration', set(['backup_passphrase', 'aws_access_key', 'aws_secret_access']))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), name=dict(type='str', required=True), nodes=dict(type='list', ), rejoin_nodes_automatically=dict(type='bool', ), tenant_ref=dict(type='str', ), url=dict(type='str', ), uuid=dict(type='str', ), virtual_ip=dict(type='dict', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'cluster', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), account_lock_timeout=dict(type='int', ), credentials_timeout_threshold=dict(type='int', ), max_concurrent_sessions=dict(type='int', ), max_login_failure_count=dict(type='int', ), max_password_history_count=dict(type='int', ), name=dict(type='str', required=True), url=dict(type='str', ), uuid=dict(type='str', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'useraccountprofile', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), description=dict(type='str',), dns_monitor=dict(type='dict',), external_monitor=dict(type='dict',), failed_checks=dict(type='int',), http_monitor=dict(type='dict',), https_monitor=dict(type='dict',), is_federated=dict(type='bool',), monitor_port=dict(type='int',), name=dict(type='str', required=True), radius_monitor=dict(type='dict',), receive_timeout=dict(type='int',), send_interval=dict(type='int',), sip_monitor=dict(type='dict',), successful_checks=dict(type='int',), tcp_monitor=dict(type='dict',), tenant_ref=dict(type='str',), type=dict(type='str', required=True), udp_monitor=dict(type='dict',), url=dict(type='str',), uuid=dict(type='str',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'healthmonitor', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), application_persistence_profile_ref=dict(type='str', ), controller_health_status_enabled=dict(type='bool', ), created_by=dict(type='str', ), description=dict(type='str', ), domain_names=dict(type='list', ), down_response=dict(type='dict', ), enabled=dict(type='bool', ), groups=dict(type='list', ), health_monitor_refs=dict(type='list', ), health_monitor_scope=dict(type='str', ), hm_off=dict(type='bool', ), is_federated=dict(type='bool', ), min_members=dict(type='int', ), name=dict(type='str', required=True), num_dns_ip=dict(type='int', ), pool_algorithm=dict(type='str', ), site_persistence_enabled=dict(type='bool', ), tenant_ref=dict(type='str', ), ttl=dict(type='int', ), url=dict(type='str', ), use_edns_client_subnet=dict(type='bool', ), uuid=dict(type='str', ), wildcard_match=dict(type='bool', ), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'gslbservice', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), name=dict(type='str', required=True), obj_username=dict(type='str', required=True), obj_password=dict(type='str', required=True, no_log=True), access=dict(type='list', ), email=dict(type='str', ), is_superuser=dict(type='bool', ), is_active=dict(type='bool', ), avi_api_update_method=dict(default='put', choices=['post', 'put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), user_profile_ref=dict(type='str', ), default_tenant_ref=dict(type='str', default='/api/tenant?name=admin'), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'user', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), admin_auth_configuration=dict(type='dict',), default_license_tier=dict(type='str',), dns_configuration=dict(type='dict',), dns_virtualservice_refs=dict(type='list',), docker_mode=dict(type='bool',), email_configuration=dict(type='dict',), global_tenant_config=dict(type='dict',), linux_configuration=dict(type='dict',), mgmt_ip_access_control=dict(type='dict',), ntp_configuration=dict(type='dict',), portal_configuration=dict(type='dict',), proxy_configuration=dict(type='dict',), secure_channel_configuration=dict(type='dict',), snmp_configuration=dict(type='dict',), ssh_ciphers=dict(type='list',), ssh_hmacs=dict(type='list',), url=dict(type='str',), uuid=dict(type='str',), welcome_workflow_complete=dict(type='bool',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'systemconfiguration', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), async_interval=dict(type='int',), clear_on_max_retries=dict(type='int',), client_ip_addr_group=dict(type='dict',), description=dict(type='str',), dns_configs=dict(type='list',), is_federated=dict(type='bool',), leader_cluster_uuid=dict(type='str', required=True), maintenance_mode=dict(type='bool',), name=dict(type='str', required=True), send_interval=dict(type='int',), send_interval_prior_to_maintenance_mode=dict(type='int',), sites=dict(type='list',), tenant_ref=dict(type='str',), third_party_sites=dict(type='list',), url=dict(type='str',), uuid=dict(type='str',), view_id=dict(type='int',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) api_method = module.params['avi_api_update_method'] if str(api_method).lower() == 'patch': patch_op = module.params['avi_api_patch_op'] # Create controller session api_creds = AviCredentials() api_creds.update_from_ansible_module(module) api = ApiSession.get_session( api_creds.controller, api_creds.username, password=api_creds.password, timeout=api_creds.timeout, tenant=api_creds.tenant, tenant_uuid=api_creds.tenant_uuid, token=api_creds.token, port=api_creds.port) # Get existing gslb objects rsp = api.get('gslb', api_version=api_creds.api_version) existing_gslb = rsp.json() gslb = existing_gslb['results'] sites = module.params['gslb_sites_config'] for gslb_obj in gslb: # Update/Delete domain names in dns_configs fields in gslb object. if 'dns_configs' in module.params: if gslb_obj['leader_cluster_uuid'] == module.params['leader_cluster_uuid']: if str(patch_op).lower() == 'delete': gslb_obj['dns_configs'] = [] elif str(patch_op).lower() == 'add': if module.params['dns_configs'] not in gslb_obj['dns_configs']: gslb_obj['dns_configs'].extend(module.params['dns_configs']) else: gslb_obj['dns_configs'] = module.params['dns_configs'] # Update/Delete sites configuration if sites: for site_obj in gslb_obj['sites']: dns_vses = site_obj.get('dns_vses', []) for obj in sites: config_for = obj.get('ip_addr', None) if not config_for: return module.fail_json(msg=( "ip_addr of site in a configuration is mandatory. " "Please provide ip_addr i.e. gslb site's ip.")) if config_for == site_obj['ip_addresses'][0]['addr']: if str(patch_op).lower() == 'delete': site_obj['dns_vses'] = [] else: # Modify existing gslb sites object for key, val in obj.items(): if key == 'dns_vses' and str(patch_op).lower() == 'add': found = False # Check dns_vses field already exists on the controller for v in dns_vses: if val[0]['dns_vs_uuid'] != v['dns_vs_uuid']: found = True break if not found: dns_vses.extend(val) else: site_obj[key] = val if str(patch_op).lower() == 'add': site_obj['dns_vses'] = dns_vses uni_dns_configs = [dict(tupleized) for tupleized in set(tuple(item.items()) for item in gslb_obj['dns_configs'])] gslb_obj['dns_configs'] = uni_dns_configs module.params.update(gslb_obj) module.params.update( { 'avi_api_update_method': 'put', 'state': 'present' } ) return avi_ansible_api(module, 'gslb', set([]))
def main(): argument_specs = dict( state=dict(default='present', choices=['absent', 'present']), avi_api_update_method=dict(default='put', choices=['put', 'patch']), avi_api_patch_op=dict(choices=['add', 'replace', 'delete']), allow_ip_forwarding=dict(type='bool',), allow_unauthenticated_apis=dict(type='bool',), allow_unauthenticated_nodes=dict(type='bool',), api_idle_timeout=dict(type='int',), api_perf_logging_threshold=dict(type='int',), appviewx_compat_mode=dict(type='bool',), attach_ip_retry_interval=dict(type='int',), attach_ip_retry_limit=dict(type='int',), bm_use_ansible=dict(type='bool',), cleanup_expired_authtoken_timeout_period=dict(type='int',), cleanup_sessions_timeout_period=dict(type='int',), cloud_reconcile=dict(type='bool',), cluster_ip_gratuitous_arp_period=dict(type='int',), consistency_check_timeout_period=dict(type='int',), crashed_se_reboot=dict(type='int',), dead_se_detection_timer=dict(type='int',), dns_refresh_period=dict(type='int',), dummy=dict(type='int',), enable_api_sharding=dict(type='bool',), enable_memory_balancer=dict(type='bool',), fatal_error_lease_time=dict(type='int',), max_dead_se_in_grp=dict(type='int',), max_pcap_per_tenant=dict(type='int',), max_seq_attach_ip_failures=dict(type='int',), max_seq_vnic_failures=dict(type='int',), persistence_key_rotate_period=dict(type='int',), portal_token=dict(type='str', no_log=True,), process_locked_useraccounts_timeout_period=dict(type='int',), process_pki_profile_timeout_period=dict(type='int',), query_host_fail=dict(type='int',), safenet_hsm_version=dict(type='str',), se_create_timeout=dict(type='int',), se_failover_attempt_interval=dict(type='int',), se_from_marketplace=dict(type='str',), se_offline_del=dict(type='int',), se_vnic_cooldown=dict(type='int',), secure_channel_cleanup_timeout=dict(type='int',), secure_channel_controller_token_timeout=dict(type='int',), secure_channel_se_token_timeout=dict(type='int',), seupgrade_fabric_pool_size=dict(type='int',), seupgrade_segroup_min_dead_timeout=dict(type='int',), ssl_certificate_expiry_warning_days=dict(type='list',), unresponsive_se_reboot=dict(type='int',), upgrade_dns_ttl=dict(type='int',), upgrade_lease_time=dict(type='int',), url=dict(type='str',), uuid=dict(type='str',), vnic_op_fail_time=dict(type='int',), vs_apic_scaleout_timeout=dict(type='int',), vs_awaiting_se_timeout=dict(type='int',), vs_key_rotate_period=dict(type='int',), vs_scaleout_ready_check_interval=dict(type='int',), vs_se_attach_ip_fail=dict(type='int',), vs_se_bootup_fail=dict(type='int',), vs_se_create_fail=dict(type='int',), vs_se_ping_fail=dict(type='int',), vs_se_vnic_fail=dict(type='int',), vs_se_vnic_ip_fail=dict(type='int',), warmstart_se_reconnect_wait_time=dict(type='int',), warmstart_vs_resync_wait_time=dict(type='int',), ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule( argument_spec=argument_specs, supports_check_mode=True) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or requests is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) return avi_ansible_api(module, 'controllerproperties', set(['portal_token']))
def main(): argument_specs = dict( params=dict(type='dict'), data=dict(type='dict'), name=dict(type='str', required=True), state=dict(default='present', choices=['absent', 'present']) ) argument_specs.update(avi_common_argument_spec()) module = AnsibleModule(argument_spec=argument_specs) if not HAS_AVI: return module.fail_json(msg=( 'Avi python API SDK (avisdk>=17.1) or ansible>=2.8 is not installed. ' 'For more details visit https://github.com/avinetworks/sdk.')) api_creds = AviCredentials() api_creds.update_from_ansible_module(module) api = ApiSession.get_session( api_creds.controller, api_creds.username, password=api_creds.password, timeout=api_creds.timeout, tenant=api_creds.tenant, tenant_uuid=api_creds.tenant_uuid, token=api_creds.token, port=api_creds.port) tenant = api_creds.tenant tenant_uuid = api_creds.tenant_uuid params = module.params.get('params', None) data = module.params.get('data', None) gparams = deepcopy(params) if params else {} gparams.update({'include_refs': '', 'include_name': ''}) name = module.params.get('name', '') state = module.params['state'] # Get the api version from module. api_version = api_creds.api_version """ state: present 1. Check if the GSLB service is present 2. If not then create the GSLB service with the member 3. Check if the group exists 4. if not then create the group with the member 5. Check if the member is present if not then add the member state: absent 1. check if GSLB service is present if not then exit 2. check if group is present. if not then exit 3. check if member is present. if present then remove it. """ obj_type = 'gslbservice' # Added api version to call existing_obj = api.get_object_by_name( obj_type, name, tenant=tenant, tenant_uuid=tenant_uuid, params={'include_refs': '', 'include_name': ''}, api_version=api_version) check_mode = module.check_mode if state == 'absent': # Added api version to call changed, rsp = delete_member(module, check_mode, api, tenant, tenant_uuid, existing_obj, data, api_version) else: # Added api version to call changed, rsp = add_member(module, check_mode, api, tenant, tenant_uuid, existing_obj, data, name, api_version) if check_mode or not changed: return module.exit_json(changed=changed, obj=existing_obj) return ansible_return(module, rsp, changed, req=data)