mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-06 13:22:48 +00:00
Updated utils to remove Avi SDK dependency and Avi 18.2.2 version update (#54894)
* Updated utils to remove Avi SDK dependency and Avi 18.2.2 version update * Fixed the python 3.x errors failing for avi_disable_session_cache_as_fact not properly documented * Updated version added fields for new parameters * fixed pep8 errors * made requests import optional * removed setting requests to None * Added try catch for the avi helper methods such that any import fails then module fail gracefully. This was needed to pass the requests library not found error * removed deprecated modules. Also, trying another fix to deal with requests import error * Fixed python3 errors * fixed pep8, no-dict-iteritems and import test failures * added version 2.8 for new field * some more code cleanup and formatting * updated the fail message and fixed plint errors * added workaround for unicode pylint * fixed the version added for new parameter app_learning_memory_percent and removed unicode_literals import * Removed check of HAS_AVI for common argument spec * Updated version added value from 2.8 to 2.9 * Version added value fixes of CI error
This commit is contained in:
committed by
Nathaniel Case
parent
63e33f7e71
commit
b5935486da
@@ -114,7 +114,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -144,7 +144,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -74,7 +74,6 @@ options:
|
||||
- The original event triggering the alert remains in the event's log.
|
||||
- Allowed values are 1-31536000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 86400.
|
||||
- Units(SEC).
|
||||
name:
|
||||
description:
|
||||
- Name of the alert configuration.
|
||||
@@ -86,39 +85,43 @@ options:
|
||||
description:
|
||||
- The object type to which the alert config is associated with.
|
||||
- Valid object types are - virtual service, pool, service engine.
|
||||
- Enum options - VIRTUALSERVICE, POOL, HEALTHMONITOR, NETWORKPROFILE, APPLICATIONPROFILE, HTTPPOLICYSET, DNSPOLICY, IPADDRGROUP, STRINGGROUP,
|
||||
- SSLPROFILE, SSLKEYANDCERTIFICATE, NETWORKSECURITYPOLICY, APPLICATIONPERSISTENCEPROFILE, ANALYTICSPROFILE, VSDATASCRIPTSET, TENANT, PKIPROFILE,
|
||||
- AUTHPROFILE, CLOUD, SERVERAUTOSCALEPOLICY, AUTOSCALELAUNCHCONFIG, MICROSERVICEGROUP, IPAMPROFILE, HARDWARESECURITYMODULEGROUP, POOLGROUP,
|
||||
- PRIORITYLABELS, POOLGROUPDEPLOYMENTPOLICY, GSLBSERVICE, GSLBSERVICERUNTIME, SCHEDULER, GSLBGEODBPROFILE, GSLBAPPLICATIONPERSISTENCEPROFILE,
|
||||
- TRAFFICCLONEPROFILE, VSVIP, WAFPOLICY, WAFPROFILE, ERRORPAGEPROFILE, ERRORPAGEBODY, L4POLICYSET, SERVICEENGINE, DEBUGSERVICEENGINE,
|
||||
- DEBUGCONTROLLER, DEBUGVIRTUALSERVICE, SERVICEENGINEGROUP, SEPROPERTIES, NETWORK, CONTROLLERNODE, CONTROLLERPROPERTIES, SYSTEMCONFIGURATION,
|
||||
- VRFCONTEXT, USER, ALERTCONFIG, ALERTSYSLOGCONFIG, ALERTEMAILCONFIG, ALERTTYPECONFIG, APPLICATION, ROLE, CLOUDPROPERTIES, SNMPTRAPPROFILE,
|
||||
- ACTIONGROUPPROFILE, MICROSERVICE, ALERTPARAMS, ACTIONGROUPCONFIG, CLOUDCONNECTORUSER, GSLB, GSLBDNSUPDATE, GSLBSITEOPS, GLBMGRWARMSTART,
|
||||
- IPAMDNSRECORD, GSLBDNSGSSTATUS, GSLBDNSGEOFILEOPS, GSLBDNSGEOUPDATE, GSLBDNSGEOCLUSTEROPS, GSLBDNSCLEANUP, GSLBSITEOPSRESYNC, TCPSTATRUNTIME,
|
||||
- UDPSTATRUNTIME, IPSTATRUNTIME, ARPSTATRUNTIME, MBSTATRUNTIME, IPSTKQSTATSRUNTIME, MALLOCSTATRUNTIME, SHMALLOCSTATRUNTIME, CPUUSAGERUNTIME,
|
||||
- L7GLOBALSTATSRUNTIME, L7VIRTUALSERVICESTATSRUNTIME, SEAGENTVNICDBRUNTIME, SEAGENTGRAPHDBRUNTIME, SEAGENTSTATERUNTIME, INTERFACERUNTIME,
|
||||
- ARPTABLERUNTIME, DISPATCHERSTATRUNTIME, DISPATCHERSTATCLEARRUNTIME, DISPATCHERTABLEDUMPRUNTIME, DISPATCHERREMOTETIMERLISTDUMPRUNTIME,
|
||||
- METRICSAGENTMESSAGE, HEALTHMONITORSTATRUNTIME, METRICSENTITYRUNTIME, PERSISTENCEINTERNAL, HTTPPOLICYSETINTERNAL, DNSPOLICYINTERNAL,
|
||||
- CONNECTIONDUMPRUNTIME, SHAREDDBSTATS, SHAREDDBSTATSCLEAR, ICMPSTATRUNTIME, ROUTETABLERUNTIME, VIRTUALMACHINE, POOLSERVER, SEVSLIST,
|
||||
- MEMINFORUNTIME, RTERINGSTATRUNTIME, ALGOSTATRUNTIME, HEALTHMONITORRUNTIME, CPUSTATRUNTIME, SEVM, HOST, PORTGROUP, CLUSTER, DATACENTER, VCENTER,
|
||||
- HTTPPOLICYSETSTATS, DNSPOLICYSTATS, METRICSSESTATS, RATELIMITERSTATRUNTIME, NETWORKSECURITYPOLICYSTATS, TCPCONNRUNTIME, POOLSTATS,
|
||||
- CONNPOOLINTERNAL, CONNPOOLSTATS, VSHASHSHOWRUNTIME, SELOGSTATSRUNTIME, NETWORKSECURITYPOLICYDETAIL, LICENSERUNTIME, SERVERRUNTIME,
|
||||
- METRICSRUNTIMESUMMARY, METRICSRUNTIMEDETAIL, DISPATCHERSEHMPROBETEMPDISABLERUNTIME, POOLDEBUG, VSLOGMGRMAP, SERUMINSERTIONSTATS, HTTPCACHE,
|
||||
- HTTPCACHESTATS, SEDOSSTATRUNTIME, VSDOSSTATRUNTIME, SERVERUPDATEREQ, VSSCALEOUTLIST, SEMEMDISTRUNTIME, TCPCONNRUNTIMEDETAIL, SEUPGRADESTATUS,
|
||||
- SEUPGRADEPREVIEW, SEFAULTINJECTEXHAUSTM, SEFAULTINJECTEXHAUSTMCL, SEFAULTINJECTEXHAUSTMCLSMALL, SEFAULTINJECTEXHAUSTCONN, SEHEADLESSONLINEREQ,
|
||||
- SEUPGRADE, SEUPGRADESTATUSDETAIL, SERESERVEDVS, SERESERVEDVSCLEAR, VSCANDIDATESEHOSTLIST, SEGROUPUPGRADE, REBALANCE, SEGROUPREBALANCE,
|
||||
- SEAUTHSTATSRUNTIME, AUTOSCALESTATE, VIRTUALSERVICEAUTHSTATS, NETWORKSECURITYPOLICYDOS, KEYVALINTERNAL, KEYVALSUMMARYINTERNAL,
|
||||
- Enum options - VIRTUALSERVICE, POOL, HEALTHMONITOR, NETWORKPROFILE, APPLICATIONPROFILE, HTTPPOLICYSET, DNSPOLICY, SECURITYPOLICY, IPADDRGROUP,
|
||||
- STRINGGROUP, SSLPROFILE, SSLKEYANDCERTIFICATE, NETWORKSECURITYPOLICY, APPLICATIONPERSISTENCEPROFILE, ANALYTICSPROFILE, VSDATASCRIPTSET, TENANT,
|
||||
- PKIPROFILE, AUTHPROFILE, CLOUD, SERVERAUTOSCALEPOLICY, AUTOSCALELAUNCHCONFIG, MICROSERVICEGROUP, IPAMPROFILE, HARDWARESECURITYMODULEGROUP,
|
||||
- POOLGROUP, PRIORITYLABELS, POOLGROUPDEPLOYMENTPOLICY, GSLBSERVICE, GSLBSERVICERUNTIME, SCHEDULER, GSLBGEODBPROFILE,
|
||||
- GSLBAPPLICATIONPERSISTENCEPROFILE, TRAFFICCLONEPROFILE, VSVIP, WAFPOLICY, WAFPROFILE, ERRORPAGEPROFILE, ERRORPAGEBODY, L4POLICYSET,
|
||||
- GSLBSERVICERUNTIMEBATCH, WAFPOLICYPSMGROUP, PINGACCESSAGENT, SERVICEENGINEPOLICY, NATPOLICY, SSOPOLICY, PROTOCOLPARSER, SERVICEENGINE,
|
||||
- DEBUGSERVICEENGINE, DEBUGCONTROLLER, DEBUGVIRTUALSERVICE, SERVICEENGINEGROUP, SEPROPERTIES, NETWORK, CONTROLLERNODE, CONTROLLERPROPERTIES,
|
||||
- SYSTEMCONFIGURATION, VRFCONTEXT, USER, ALERTCONFIG, ALERTSYSLOGCONFIG, ALERTEMAILCONFIG, ALERTTYPECONFIG, APPLICATION, ROLE, CLOUDPROPERTIES,
|
||||
- SNMPTRAPPROFILE, ACTIONGROUPPROFILE, MICROSERVICE, ALERTPARAMS, ACTIONGROUPCONFIG, CLOUDCONNECTORUSER, GSLB, GSLBDNSUPDATE, GSLBSITEOPS,
|
||||
- GLBMGRWARMSTART, IPAMDNSRECORD, GSLBDNSGSSTATUS, GSLBDNSGEOFILEOPS, GSLBDNSGEOUPDATE, GSLBDNSGEOCLUSTEROPS, GSLBDNSCLEANUP, GSLBSITEOPSRESYNC,
|
||||
- IPAMDNSPROVIDERPROFILE, TCPSTATRUNTIME, UDPSTATRUNTIME, IPSTATRUNTIME, ARPSTATRUNTIME, MBSTATRUNTIME, IPSTKQSTATSRUNTIME, MALLOCSTATRUNTIME,
|
||||
- SHMALLOCSTATRUNTIME, CPUUSAGERUNTIME, L7GLOBALSTATSRUNTIME, L7VIRTUALSERVICESTATSRUNTIME, SEAGENTVNICDBRUNTIME, SEAGENTGRAPHDBRUNTIME,
|
||||
- SEAGENTSTATERUNTIME, INTERFACERUNTIME, ARPTABLERUNTIME, DISPATCHERSTATRUNTIME, DISPATCHERSTATCLEARRUNTIME, DISPATCHERTABLEDUMPRUNTIME,
|
||||
- DISPATCHERREMOTETIMERLISTDUMPRUNTIME, METRICSAGENTMESSAGE, HEALTHMONITORSTATRUNTIME, METRICSENTITYRUNTIME, PERSISTENCEINTERNAL,
|
||||
- HTTPPOLICYSETINTERNAL, DNSPOLICYINTERNAL, CONNECTIONDUMPRUNTIME, SHAREDDBSTATS, SHAREDDBSTATSCLEAR, ICMPSTATRUNTIME, ROUTETABLERUNTIME,
|
||||
- VIRTUALMACHINE, POOLSERVER, SEVSLIST, MEMINFORUNTIME, RTERINGSTATRUNTIME, ALGOSTATRUNTIME, HEALTHMONITORRUNTIME, CPUSTATRUNTIME, SEVM, HOST,
|
||||
- PORTGROUP, CLUSTER, DATACENTER, VCENTER, HTTPPOLICYSETSTATS, DNSPOLICYSTATS, METRICSSESTATS, RATELIMITERSTATRUNTIME, NETWORKSECURITYPOLICYSTATS,
|
||||
- TCPCONNRUNTIME, POOLSTATS, CONNPOOLINTERNAL, CONNPOOLSTATS, VSHASHSHOWRUNTIME, SELOGSTATSRUNTIME, NETWORKSECURITYPOLICYDETAIL, LICENSERUNTIME,
|
||||
- SERVERRUNTIME, METRICSRUNTIMESUMMARY, METRICSRUNTIMEDETAIL, DISPATCHERSEHMPROBETEMPDISABLERUNTIME, POOLDEBUG, VSLOGMGRMAP, SERUMINSERTIONSTATS,
|
||||
- HTTPCACHE, HTTPCACHESTATS, SEDOSSTATRUNTIME, VSDOSSTATRUNTIME, SERVERUPDATEREQ, VSSCALEOUTLIST, SEMEMDISTRUNTIME, TCPCONNRUNTIMEDETAIL,
|
||||
- SEUPGRADESTATUS, SEUPGRADEPREVIEW, SEFAULTINJECTEXHAUSTM, SEFAULTINJECTEXHAUSTMCL, SEFAULTINJECTEXHAUSTMCLSMALL, SEFAULTINJECTEXHAUSTCONN,
|
||||
- SEHEADLESSONLINEREQ, SEUPGRADE, SEUPGRADESTATUSDETAIL, SERESERVEDVS, SERESERVEDVSCLEAR, VSCANDIDATESEHOSTLIST, SEGROUPUPGRADE, REBALANCE,
|
||||
- SEGROUPREBALANCE, SEAUTHSTATSRUNTIME, AUTOSCALESTATE, VIRTUALSERVICEAUTHSTATS, NETWORKSECURITYPOLICYDOS, KEYVALINTERNAL, KEYVALSUMMARYINTERNAL,
|
||||
- SERVERSTATEUPDATEINFO, CLTRACKINTERNAL, CLTRACKSUMMARYINTERNAL, MICROSERVICERUNTIME, SEMICROSERVICE, VIRTUALSERVICEANALYSIS, CLIENTINTERNAL,
|
||||
- CLIENTSUMMARYINTERNAL, MICROSERVICEGROUPRUNTIME, BGPRUNTIME, REQUESTQUEUERUNTIME, MIGRATEALL, MIGRATEALLSTATUSSUMMARY, MIGRATEALLSTATUSDETAIL,
|
||||
- INTERFACESUMMARYRUNTIME, INTERFACELACPRUNTIME, DNSTABLE, GSLBSERVICEDETAIL, GSLBSERVICEINTERNAL, GSLBSERVICEHMONSTAT, SETROLESREQUEST,
|
||||
- TRAFFICCLONERUNTIME, GEOLOCATIONINFO, SEVSHBSTATRUNTIME, GEODBINTERNAL, GSLBSITEINTERNAL, WAFSTATS, USERDEFINEDDATASCRIPTCOUNTERS, LLDPRUNTIME,
|
||||
- VSESSHARINGPOOL, SEVSSPLACEMENT, L4POLICYSETSTATS, L4POLICYSETINTERNAL, SERESOURCEPROTO, SECONSUMERPROTO, SECREATEPENDINGPROTO, PLACEMENTSTATS,
|
||||
- SEVIPPROTO, RMVRFPROTO, VCENTERMAP, VIMGRVCENTERRUNTIME, INTERESTEDVMS, INTERESTEDHOSTS, VCENTERSUPPORTEDCOUNTERS, ENTITYCOUNTERS,
|
||||
- TRANSACTIONSTATS, SEVMCREATEPROGRESS, PLACEMENTSTATUS, VISUBFOLDERS, VIDATASTORE, VIHOSTRESOURCES, CLOUDCONNECTOR, VINETWORKSUBNETVMS,
|
||||
- VIDATASTORECONTENTS, VIMGRVCENTERCLOUDRUNTIME, VIVCENTERPORTGROUPS, VIVCENTERDATACENTERS, VIMGRHOSTRUNTIME, PLACEMENTGLOBALS, APICCONFIGURATION,
|
||||
- CIFTABLE, APICTRANSACTION, VIRTUALSERVICESTATEDBCACHESUMMARY, POOLSTATEDBCACHESUMMARY, SERVERSTATEDBCACHESUMMARY, APICAGENTINTERNAL,
|
||||
- APICTRANSACTIONFLAP, APICGRAPHINSTANCES, APICEPGS, APICEPGEPS, APICDEVICEPKGVER, APICTENANTS, APICVMMDOMAINS, NSXCONFIGURATION, NSXSGTABLE,
|
||||
- NSXAGENTINTERNAL, NSXSGINFO, NSXSGIPS, NSXAGENTINTERNALCLI, MAXOBJECTS.
|
||||
- VSESSHARINGPOOL, NDTABLERUNTIME, IP6STATRUNTIME, ICMP6STATRUNTIME, SEVSSPLACEMENT, L4POLICYSETSTATS, L4POLICYSETINTERNAL, BGPDEBUGINFO, SHARD,
|
||||
- CPUSTATRUNTIMEDETAIL, SEASSERTSTATRUNTIME, SEFAULTINJECTINFRA, SEAGENTASSERTSTATRUNTIME, SEDATASTORESTATUS, DIFFQUEUESTATUS, IP6ROUTETABLERUNTIME,
|
||||
- SECURITYMGRSTATE, VIRTUALSERVICESESCALEOUTSTATUS, SHARDSERVERSTATUS, SEAGENTSHARDCLIENTRESOURCEMAP, SEAGENTCONSISTENTHASH, SEAGENTVNICDBHISTORY,
|
||||
- SEAGENTSHARDCLIENTAPPMAP, SEAGENTSHARDCLIENTEVENTHISTORY, SENATSTATRUNTIME, SENATFLOWRUNTIME, SERESOURCEPROTO, SECONSUMERPROTO,
|
||||
- SECREATEPENDINGPROTO, PLACEMENTSTATS, SEVIPPROTO, RMVRFPROTO, VCENTERMAP, VIMGRVCENTERRUNTIME, INTERESTEDVMS, INTERESTEDHOSTS,
|
||||
- VCENTERSUPPORTEDCOUNTERS, ENTITYCOUNTERS, TRANSACTIONSTATS, SEVMCREATEPROGRESS, PLACEMENTSTATUS, VISUBFOLDERS, VIDATASTORE, VIHOSTRESOURCES,
|
||||
- CLOUDCONNECTOR, VINETWORKSUBNETVMS, VIDATASTORECONTENTS, VIMGRVCENTERCLOUDRUNTIME, VIVCENTERPORTGROUPS, VIVCENTERDATACENTERS, VIMGRHOSTRUNTIME,
|
||||
- PLACEMENTGLOBALS, APICCONFIGURATION, CIFTABLE, APICTRANSACTION, VIRTUALSERVICESTATEDBCACHESUMMARY, POOLSTATEDBCACHESUMMARY,
|
||||
- SERVERSTATEDBCACHESUMMARY, APICAGENTINTERNAL, APICTRANSACTIONFLAP, APICGRAPHINSTANCES, APICEPGS, APICEPGEPS, APICDEVICEPKGVER, APICTENANTS,
|
||||
- APICVMMDOMAINS, NSXCONFIGURATION, NSXSGTABLE, NSXAGENTINTERNAL, NSXSGINFO, NSXSGIPS, NSXAGENTINTERNALCLI, MAXOBJECTS.
|
||||
recommendation:
|
||||
description:
|
||||
- Recommendation of alertconfig.
|
||||
@@ -127,7 +130,6 @@ options:
|
||||
- Only if the number of events is reached or exceeded within the time window will an alert be generated.
|
||||
- Allowed values are 1-31536000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
source:
|
||||
description:
|
||||
- Signifies system events or the type of client logsused in this alert configuration.
|
||||
@@ -149,7 +151,6 @@ options:
|
||||
- Alerts are suppressed (throttled) for this duration of time since the last alert was raised for this alert config.
|
||||
- Allowed values are 0-31536000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 600.
|
||||
- Units(SEC).
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
@@ -180,7 +181,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -217,7 +218,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -88,7 +88,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -113,7 +113,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'alertemailconfig',
|
||||
set([]))
|
||||
|
||||
@@ -83,7 +83,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -106,7 +106,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'alertscriptconfig',
|
||||
set([]))
|
||||
|
||||
@@ -88,7 +88,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -112,7 +112,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'alertsyslogconfig',
|
||||
set([]))
|
||||
|
||||
@@ -49,7 +49,6 @@ options:
|
||||
- Greater than this number and the client's request is considered frustrated.
|
||||
- Allowed values are 1-30000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 500.
|
||||
- Units(MILLISECONDS).
|
||||
apdex_response_tolerated_factor:
|
||||
description:
|
||||
- Client tolerated response latency factor.
|
||||
@@ -61,7 +60,6 @@ options:
|
||||
- Satisfactory client to avi round trip time(rtt).
|
||||
- Allowed values are 1-2000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 250.
|
||||
- Units(MILLISECONDS).
|
||||
apdex_rtt_tolerated_factor:
|
||||
description:
|
||||
- Tolerated client to avi round trip time(rtt) factor.
|
||||
@@ -76,7 +74,6 @@ options:
|
||||
- A pageload includes the time for dns lookup, download of all http objects, and page render time.
|
||||
- Allowed values are 1-30000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 5000.
|
||||
- Units(MILLISECONDS).
|
||||
apdex_rum_tolerated_factor:
|
||||
description:
|
||||
- Virtual service threshold factor for tolerated page load time (plt) as multiple of apdex_rum_threshold.
|
||||
@@ -89,7 +86,6 @@ options:
|
||||
- Greater than this number and the server response is considered frustrated.
|
||||
- Allowed values are 1-30000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 400.
|
||||
- Units(MILLISECONDS).
|
||||
apdex_server_response_tolerated_factor:
|
||||
description:
|
||||
- Server tolerated response latency factor.
|
||||
@@ -101,7 +97,6 @@ options:
|
||||
- Satisfactory client to avi round trip time(rtt).
|
||||
- Allowed values are 1-2000.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 125.
|
||||
- Units(MILLISECONDS).
|
||||
apdex_server_rtt_tolerated_factor:
|
||||
description:
|
||||
- Tolerated client to avi round trip time(rtt) factor.
|
||||
@@ -121,52 +116,52 @@ options:
|
||||
- A connection between client and avi is considered lossy when more than this percentage of out of order packets are received.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 50.
|
||||
- Units(PERCENT).
|
||||
conn_lossy_timeo_rexmt_threshold:
|
||||
description:
|
||||
- A connection between client and avi is considered lossy when more than this percentage of packets are retransmitted due to timeout.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 20.
|
||||
- Units(PERCENT).
|
||||
conn_lossy_total_rexmt_threshold:
|
||||
description:
|
||||
- A connection between client and avi is considered lossy when more than this percentage of packets are retransmitted.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 50.
|
||||
- Units(PERCENT).
|
||||
conn_lossy_zero_win_size_event_threshold:
|
||||
description:
|
||||
- A client connection is considered lossy when percentage of times a packet could not be trasmitted due to tcp zero window is above this threshold.
|
||||
- Allowed values are 0-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 2.
|
||||
- Units(PERCENT).
|
||||
conn_server_lossy_ooo_threshold:
|
||||
description:
|
||||
- A connection between avi and server is considered lossy when more than this percentage of out of order packets are received.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 50.
|
||||
- Units(PERCENT).
|
||||
conn_server_lossy_timeo_rexmt_threshold:
|
||||
description:
|
||||
- A connection between avi and server is considered lossy when more than this percentage of packets are retransmitted due to timeout.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 20.
|
||||
- Units(PERCENT).
|
||||
conn_server_lossy_total_rexmt_threshold:
|
||||
description:
|
||||
- A connection between avi and server is considered lossy when more than this percentage of packets are retransmitted.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 50.
|
||||
- Units(PERCENT).
|
||||
conn_server_lossy_zero_win_size_event_threshold:
|
||||
description:
|
||||
- A server connection is considered lossy when percentage of times a packet could not be trasmitted due to tcp zero window is above this threshold.
|
||||
- Allowed values are 0-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 2.
|
||||
- Units(PERCENT).
|
||||
description:
|
||||
description:
|
||||
- User defined description for the object.
|
||||
disable_ondemand_metrics:
|
||||
description:
|
||||
- Virtual service (vs) metrics are processed only when there is live data traffic on the vs.
|
||||
- In case, vs is idle for a period of time as specified by ondemand_metrics_idle_timeout then metrics processing is suspended for that vs.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
disable_se_analytics:
|
||||
description:
|
||||
- Disable node (service engine) level analytics forvs metrics.
|
||||
@@ -175,9 +170,27 @@ options:
|
||||
disable_server_analytics:
|
||||
description:
|
||||
- Disable analytics on backend servers.
|
||||
- This may be desired in container environment when there are large number of ephemeral servers.
|
||||
- This may be desired in container environment when there are large number of ephemeral servers.
|
||||
- Additionally, no healthscore of servers is computed when server analytics is disabled.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
disable_vs_analytics:
|
||||
description:
|
||||
- Disable virtualservice (frontend) analytics.
|
||||
- This flag disables metrics and healthscore for virtualservice.
|
||||
- Field introduced in 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
enable_advanced_analytics:
|
||||
description:
|
||||
- Enables advanced analytics features like anomaly detection.
|
||||
- If set to false, anomaly computation (and associated rules/events) for vs, pool and server metrics will be disabled.
|
||||
- However, setting it to false reduces cpu and memory requirements for analytics subsystem.
|
||||
- Field introduced in 17.2.13, 18.1.5, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
exclude_client_close_before_request_as_error:
|
||||
description:
|
||||
- Exclude client closed connection before an http request could be completed from being classified as an error.
|
||||
@@ -235,6 +248,11 @@ options:
|
||||
- It is common for applications like ms exchange.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
exclude_sip_error_codes:
|
||||
description:
|
||||
- List of sip status codes to be excluded from being classified as an error.
|
||||
- Field introduced in 17.2.13, 18.1.5, 18.2.1.
|
||||
version_added: "2.9"
|
||||
exclude_syn_retransmit_as_error:
|
||||
description:
|
||||
- Exclude 'server unanswered syns' from the list of errors.
|
||||
@@ -250,6 +268,14 @@ options:
|
||||
- Exclude unsupported dns queries from the list of errors.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
healthscore_max_server_limit:
|
||||
description:
|
||||
- Skips health score computation of pool servers when number of servers in a pool is more than this setting.
|
||||
- Allowed values are 0-5000.
|
||||
- Special values are 0- 'server health score is disabled'.
|
||||
- Field introduced in 17.2.13, 18.1.4.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 20.
|
||||
version_added: "2.9"
|
||||
hs_event_throttle_window:
|
||||
description:
|
||||
- Time window (in secs) within which only unique health change events should occur.
|
||||
@@ -381,6 +407,13 @@ options:
|
||||
description:
|
||||
- The name of the analytics profile.
|
||||
required: true
|
||||
ondemand_metrics_idle_timeout:
|
||||
description:
|
||||
- This flag sets the time duration of no live data traffic after which virtual service metrics processing is suspended.
|
||||
- It is applicable only when disable_ondemand_metrics is set to false.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1800.
|
||||
version_added: "2.9"
|
||||
ranges:
|
||||
description:
|
||||
- List of http status code ranges to be excluded from being classified as an error.
|
||||
@@ -388,6 +421,19 @@ options:
|
||||
description:
|
||||
- Block of http response codes to be excluded from being classified as an error.
|
||||
- Enum options - AP_HTTP_RSP_4XX, AP_HTTP_RSP_5XX.
|
||||
sensitive_log_profile:
|
||||
description:
|
||||
- Rules applied to the http application log for filtering sensitive information.
|
||||
- Field introduced in 17.2.10, 18.1.2.
|
||||
version_added: "2.9"
|
||||
sip_log_depth:
|
||||
description:
|
||||
- Maximum number of sip messages added in logs for a sip transaction.
|
||||
- By default, this value is 20.
|
||||
- Allowed values are 1-1000.
|
||||
- Field introduced in 17.2.13, 18.1.5, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 20.
|
||||
version_added: "2.9"
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
@@ -472,7 +518,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -505,8 +551,11 @@ def main():
|
||||
conn_server_lossy_total_rexmt_threshold=dict(type='int',),
|
||||
conn_server_lossy_zero_win_size_event_threshold=dict(type='int',),
|
||||
description=dict(type='str',),
|
||||
disable_ondemand_metrics=dict(type='bool',),
|
||||
disable_se_analytics=dict(type='bool',),
|
||||
disable_server_analytics=dict(type='bool',),
|
||||
disable_vs_analytics=dict(type='bool',),
|
||||
enable_advanced_analytics=dict(type='bool',),
|
||||
exclude_client_close_before_request_as_error=dict(type='bool',),
|
||||
exclude_dns_policy_drop_as_significant=dict(type='bool',),
|
||||
exclude_gs_down_as_error=dict(type='bool',),
|
||||
@@ -518,9 +567,11 @@ def main():
|
||||
exclude_persistence_change_as_error=dict(type='bool',),
|
||||
exclude_server_dns_error_as_error=dict(type='bool',),
|
||||
exclude_server_tcp_reset_as_error=dict(type='bool',),
|
||||
exclude_sip_error_codes=dict(type='list',),
|
||||
exclude_syn_retransmit_as_error=dict(type='bool',),
|
||||
exclude_tcp_reset_as_error=dict(type='bool',),
|
||||
exclude_unsupported_dns_query_as_error=dict(type='bool',),
|
||||
healthscore_max_server_limit=dict(type='int',),
|
||||
hs_event_throttle_window=dict(type='int',),
|
||||
hs_max_anomaly_penalty=dict(type='int',),
|
||||
hs_max_resources_penalty=dict(type='int',),
|
||||
@@ -548,8 +599,11 @@ def main():
|
||||
hs_security_tls12_score=dict(type='float',),
|
||||
hs_security_weak_signature_algo_penalty=dict(type='float',),
|
||||
name=dict(type='str', required=True),
|
||||
ondemand_metrics_idle_timeout=dict(type='int',),
|
||||
ranges=dict(type='list',),
|
||||
resp_code_block=dict(type='list',),
|
||||
sensitive_log_profile=dict(type='dict',),
|
||||
sip_log_depth=dict(type='int',),
|
||||
tenant_ref=dict(type='str',),
|
||||
url=dict(type='str',),
|
||||
uuid=dict(type='str',),
|
||||
@@ -559,7 +613,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'analyticsprofile',
|
||||
set([]))
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#
|
||||
"""
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
@@ -108,6 +109,7 @@ obj:
|
||||
type: dict
|
||||
'''
|
||||
|
||||
|
||||
import json
|
||||
import time
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
@@ -115,10 +117,10 @@ from copy import deepcopy
|
||||
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, ansible_return, HAS_AVI)
|
||||
from avi.sdk.avi_api import ApiSession, AviCredentials
|
||||
from avi.sdk.utils.ansible_utils import avi_obj_cmp, cleanup_absent_fields
|
||||
|
||||
avi_common_argument_spec, ansible_return, avi_obj_cmp,
|
||||
cleanup_absent_fields, HAS_AVI)
|
||||
from ansible.module_utils.network.avi.avi_api import (
|
||||
ApiSession, AviCredentials)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -135,12 +137,10 @@ def main():
|
||||
)
|
||||
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) is not installed. '
|
||||
'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)
|
||||
api = ApiSession.get_session(
|
||||
@@ -167,33 +167,42 @@ def main():
|
||||
gparams = deepcopy(params) if params else {}
|
||||
gparams.update({'include_refs': '', 'include_name': ''})
|
||||
|
||||
if method == 'post':
|
||||
# API methods not allowed
|
||||
api_get_not_allowed = ["cluster", "gslbsiteops"]
|
||||
api_post_not_allowed = ["alert", "fileservice"]
|
||||
api_put_not_allowed = ["backup"]
|
||||
|
||||
if method == 'post' and not any(path.startswith(uri) for uri in api_post_not_allowed):
|
||||
# TODO: Above condition should be updated after AV-38981 is fixed
|
||||
# need to check if object already exists. In that case
|
||||
# change the method to be put
|
||||
try:
|
||||
using_collection = False
|
||||
if not path.startswith('cluster'):
|
||||
gparams['name'] = data['name']
|
||||
if not any(path.startswith(uri) for uri in api_get_not_allowed):
|
||||
if 'name' in data:
|
||||
gparams['name'] = data['name']
|
||||
using_collection = True
|
||||
rsp = api.get(path, tenant=tenant, tenant_uuid=tenant_uuid,
|
||||
params=gparams, api_version=api_version)
|
||||
existing_obj = rsp.json()
|
||||
if using_collection:
|
||||
existing_obj = existing_obj['results'][0]
|
||||
except IndexError:
|
||||
if not any(path.startswith(uri) for uri in api_get_not_allowed):
|
||||
rsp = api.get(path, tenant=tenant, tenant_uuid=tenant_uuid,
|
||||
params=gparams, api_version=api_version)
|
||||
existing_obj = rsp.json()
|
||||
if using_collection:
|
||||
existing_obj = existing_obj['results'][0]
|
||||
except (IndexError, KeyError):
|
||||
# object is not found
|
||||
pass
|
||||
else:
|
||||
# object is present
|
||||
method = 'put'
|
||||
path += '/' + existing_obj['uuid']
|
||||
if not any(path.startswith(uri) for uri in api_get_not_allowed):
|
||||
# object is present
|
||||
method = 'put'
|
||||
path += '/' + existing_obj['uuid']
|
||||
|
||||
if method == 'put':
|
||||
if method == 'put' and not any(path.startswith(uri) for uri in api_put_not_allowed):
|
||||
# put can happen with when full path is specified or it is put + post
|
||||
if existing_obj is None:
|
||||
using_collection = False
|
||||
if ((len(path.split('/')) == 1) and ('name' in data) and
|
||||
(not path.startswith('cluster'))):
|
||||
(not any(path.startswith(uri) for uri in api_get_not_allowed))):
|
||||
gparams['name'] = data['name']
|
||||
using_collection = True
|
||||
rsp = api.get(path, tenant=tenant, tenant_uuid=tenant_uuid,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
# Created on July 24, 2017
|
||||
#
|
||||
@@ -7,12 +6,13 @@
|
||||
#
|
||||
# module_check: not supported
|
||||
#
|
||||
# Copyright: (c) 2017, Gaurav Rastogi <grastogi@avinetworks.com>
|
||||
# Copyright: (c) 2017, Vilian Atmadzhov <vilian.atmadzhov@paddypowerbetfair.com>
|
||||
# Copyright: (c) 2017 Gaurav Rastogi, <grastogi@avinetworks.com>
|
||||
# Vilian Atmadzhov, <vilian.atmadzhov@paddypowerbetfair.com>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
#
|
||||
"""
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
@@ -21,7 +21,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: avi_api_version
|
||||
author: Vilian Atmadzhov (@grastogi23) <vilian.atmadzhov@paddypowerbetfair.com>
|
||||
author: Vilian Atmadzhov (@vivobg) <vilian.atmadzhov@paddypowerbetfair.com>
|
||||
|
||||
short_description: Avi API Version Module
|
||||
description:
|
||||
@@ -55,17 +55,20 @@ from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI)
|
||||
from avi.sdk.avi_api import ApiSession, AviCredentials
|
||||
avi_common_argument_spec, ansible_return, HAS_AVI)
|
||||
from ansible.module_utils.network.avi.avi_api import (
|
||||
ApiSession, AviCredentials)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
|
||||
def main():
|
||||
module = AnsibleModule(argument_spec=avi_common_argument_spec())
|
||||
argument_specs = dict()
|
||||
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) is not installed. '
|
||||
'Avi python API SDK (avisdk>=17.1) or requests is not installed. '
|
||||
'For more details visit https://github.com/avinetworks/sdk.'))
|
||||
try:
|
||||
api_creds = AviCredentials()
|
||||
@@ -84,7 +87,7 @@ def main():
|
||||
api.close()
|
||||
module.exit_json(changed=False, obj=remote)
|
||||
except Exception as e:
|
||||
module.fail_json(msg="Unable to get an AVI session. {0}".format(e))
|
||||
module.fail_json(msg=("Unable to get an AVI session. %s" % e))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -128,7 +128,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -158,7 +158,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -42,6 +42,17 @@ options:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
cloud_config_cksum:
|
||||
description:
|
||||
- Checksum of application profiles.
|
||||
- Internally set by cloud connector.
|
||||
- Field introduced in 17.2.14, 18.1.5, 18.2.1.
|
||||
version_added: "2.9"
|
||||
created_by:
|
||||
description:
|
||||
- Name of the application profile creator.
|
||||
- Field introduced in 17.2.14, 18.1.5, 18.2.1.
|
||||
version_added: "2.9"
|
||||
description:
|
||||
description:
|
||||
- User defined description for the object.
|
||||
@@ -66,11 +77,16 @@ options:
|
||||
type: bool
|
||||
preserve_client_port:
|
||||
description:
|
||||
- Specifies if we need to preserve client port while preseving client ip for backend connections.
|
||||
- Specifies if we need to preserve client port while preserving client ip for backend connections.
|
||||
- Field introduced in 17.2.7.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.6"
|
||||
type: bool
|
||||
sip_service_profile:
|
||||
description:
|
||||
- Specifies various sip service related controls for virtual service.
|
||||
- Field introduced in 17.2.8, 18.1.3, 18.2.1.
|
||||
version_added: "2.9"
|
||||
tcp_app_profile:
|
||||
description:
|
||||
- Specifies the tcp application proxy profile parameters.
|
||||
@@ -81,7 +97,7 @@ options:
|
||||
description:
|
||||
- Specifies which application layer proxy is enabled for the virtual service.
|
||||
- Enum options - APPLICATION_PROFILE_TYPE_L4, APPLICATION_PROFILE_TYPE_HTTP, APPLICATION_PROFILE_TYPE_SYSLOG, APPLICATION_PROFILE_TYPE_DNS,
|
||||
- APPLICATION_PROFILE_TYPE_SSL.
|
||||
- APPLICATION_PROFILE_TYPE_SSL, APPLICATION_PROFILE_TYPE_SIP.
|
||||
required: true
|
||||
url:
|
||||
description:
|
||||
@@ -165,7 +181,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -177,6 +193,8 @@ def main():
|
||||
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',),
|
||||
dns_service_profile=dict(type='dict',),
|
||||
dos_rl_profile=dict(type='dict',),
|
||||
@@ -184,6 +202,7 @@ def main():
|
||||
name=dict(type='str', required=True),
|
||||
preserve_client_ip=dict(type='bool',),
|
||||
preserve_client_port=dict(type='bool',),
|
||||
sip_service_profile=dict(type='dict',),
|
||||
tcp_app_profile=dict(type='dict',),
|
||||
tenant_ref=dict(type='str',),
|
||||
type=dict(type='str', required=True),
|
||||
@@ -195,7 +214,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'applicationprofile',
|
||||
set([]))
|
||||
|
||||
@@ -55,6 +55,12 @@ options:
|
||||
description:
|
||||
- Name of the auth profile.
|
||||
required: true
|
||||
pa_agent_ref:
|
||||
description:
|
||||
- Pingaccessagent uuid.
|
||||
- It is a reference to an object of type pingaccessagent.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
saml:
|
||||
description:
|
||||
- Saml settings.
|
||||
@@ -69,7 +75,7 @@ options:
|
||||
type:
|
||||
description:
|
||||
- Type of the auth profile.
|
||||
- Enum options - AUTH_PROFILE_LDAP, AUTH_PROFILE_TACACS_PLUS, AUTH_PROFILE_SAML.
|
||||
- Enum options - AUTH_PROFILE_LDAP, AUTH_PROFILE_TACACS_PLUS, AUTH_PROFILE_SAML, AUTH_PROFILE_PINGACCESS.
|
||||
required: true
|
||||
url:
|
||||
description:
|
||||
@@ -124,7 +130,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -140,6 +146,7 @@ def main():
|
||||
http=dict(type='dict',),
|
||||
ldap=dict(type='dict',),
|
||||
name=dict(type='str', required=True),
|
||||
pa_agent_ref=dict(type='str',),
|
||||
saml=dict(type='dict',),
|
||||
tacacs_plus=dict(type='dict',),
|
||||
tenant_ref=dict(type='str',),
|
||||
@@ -152,7 +159,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'authprofile',
|
||||
set([]))
|
||||
|
||||
@@ -96,7 +96,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -123,7 +123,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'autoscalelaunchconfig',
|
||||
set([]))
|
||||
|
||||
@@ -96,7 +96,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -123,7 +123,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'backup',
|
||||
set([]))
|
||||
|
||||
@@ -41,6 +41,21 @@ options:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
aws_access_key:
|
||||
description:
|
||||
- Aws access key id.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
aws_bucket_id:
|
||||
description:
|
||||
- Aws bucket.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
aws_secret_access:
|
||||
description:
|
||||
- Aws secret access key.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
backup_file_prefix:
|
||||
description:
|
||||
- Prefix of the exported configuration file.
|
||||
@@ -78,6 +93,12 @@ options:
|
||||
description:
|
||||
- Remote backup.
|
||||
type: bool
|
||||
upload_to_s3:
|
||||
description:
|
||||
- Cloud backup.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
@@ -108,7 +129,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -120,6 +141,9 @@ def main():
|
||||
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',),
|
||||
@@ -130,6 +154,7 @@ def main():
|
||||
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',),
|
||||
)
|
||||
@@ -138,10 +163,10 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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']))
|
||||
set(['backup_passphrase', 'aws_access_key', 'aws_secret_access']))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -86,7 +86,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -110,7 +110,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'certificatemanagementprofile',
|
||||
set([]))
|
||||
|
||||
@@ -50,6 +50,12 @@ options:
|
||||
- Boolean flag to set apic_mode.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
autoscale_polling_interval:
|
||||
description:
|
||||
- Cloudconnector polling interval for external autoscale groups.
|
||||
- Field introduced in 18.2.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
version_added: "2.9"
|
||||
aws_configuration:
|
||||
description:
|
||||
- Awsconfiguration settings for cloud.
|
||||
@@ -93,6 +99,18 @@ options:
|
||||
- Use static routes for vip side network resolution during virtualservice placement.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
gcp_configuration:
|
||||
description:
|
||||
- Google cloud platform configuration.
|
||||
- Field introduced in 18.2.1.
|
||||
version_added: "2.9"
|
||||
ip6_autocfg_enabled:
|
||||
description:
|
||||
- Enable ipv6 auto configuration.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
ipam_provider_ref:
|
||||
description:
|
||||
- Ipam profile for the cloud.
|
||||
@@ -108,18 +126,17 @@ options:
|
||||
description:
|
||||
- If no license type is specified then default license enforcement for the cloud type is chosen.
|
||||
- The default mappings are container cloud is max ses, openstack and vmware is cores and linux it is sockets.
|
||||
- Enum options - LIC_BACKEND_SERVERS, LIC_SOCKETS, LIC_CORES, LIC_HOSTS, LIC_SE_BANDWIDTH.
|
||||
- Enum options - LIC_BACKEND_SERVERS, LIC_SOCKETS, LIC_CORES, LIC_HOSTS, LIC_SE_BANDWIDTH, LIC_METERED_SE_BANDWIDTH.
|
||||
linuxserver_configuration:
|
||||
description:
|
||||
- Linuxserverconfiguration settings for cloud.
|
||||
mesos_configuration:
|
||||
description:
|
||||
- Mesosconfiguration settings for cloud.
|
||||
- Field deprecated in 18.2.2.
|
||||
mtu:
|
||||
description:
|
||||
- Mtu setting for the cloud.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1500.
|
||||
- Units(BYTES).
|
||||
name:
|
||||
description:
|
||||
- Name of the object.
|
||||
@@ -175,7 +192,7 @@ options:
|
||||
description:
|
||||
- Cloud type.
|
||||
- Enum options - CLOUD_NONE, CLOUD_VCENTER, CLOUD_OPENSTACK, CLOUD_AWS, CLOUD_VCA, CLOUD_APIC, CLOUD_MESOS, CLOUD_LINUXSERVER, CLOUD_DOCKER_UCP,
|
||||
- CLOUD_RANCHER, CLOUD_OSHIFT_K8S, CLOUD_AZURE.
|
||||
- CLOUD_RANCHER, CLOUD_OSHIFT_K8S, CLOUD_AZURE, CLOUD_GCP.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as CLOUD_NONE.
|
||||
required: true
|
||||
extends_documentation_fragment:
|
||||
@@ -216,7 +233,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -230,6 +247,7 @@ def main():
|
||||
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',),
|
||||
@@ -240,6 +258,8 @@ def main():
|
||||
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',),
|
||||
@@ -267,7 +287,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -50,10 +50,20 @@ options:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
version_added: "2.5"
|
||||
gcp_credentials:
|
||||
description:
|
||||
- Credentials for google cloud platform.
|
||||
- Field introduced in 18.2.1.
|
||||
version_added: "2.9"
|
||||
name:
|
||||
description:
|
||||
- Name of the object.
|
||||
required: true
|
||||
oci_credentials:
|
||||
description:
|
||||
- Credentials for oracle cloud infrastructure.
|
||||
- Field introduced in 18.2.1,18.1.3.
|
||||
version_added: "2.9"
|
||||
private_key:
|
||||
description:
|
||||
- Private_key of cloudconnectoruser.
|
||||
@@ -63,6 +73,11 @@ options:
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
tencent_credentials:
|
||||
description:
|
||||
- Credentials for tencent cloud.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
@@ -97,7 +112,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -111,10 +126,13 @@ def main():
|
||||
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
|
||||
azure_serviceprincipal=dict(type='dict',),
|
||||
azure_userpass=dict(type='dict',),
|
||||
gcp_credentials=dict(type='dict',),
|
||||
name=dict(type='str', required=True),
|
||||
oci_credentials=dict(type='dict',),
|
||||
private_key=dict(type='str', no_log=True,),
|
||||
public_key=dict(type='str',),
|
||||
tenant_ref=dict(type='str',),
|
||||
tencent_credentials=dict(type='dict',),
|
||||
url=dict(type='str',),
|
||||
uuid=dict(type='str',),
|
||||
)
|
||||
@@ -123,7 +141,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'cloudconnectoruser',
|
||||
set(['private_key']))
|
||||
|
||||
@@ -49,7 +49,7 @@ options:
|
||||
description:
|
||||
- Cloud types supported by cloudconnector.
|
||||
- Enum options - CLOUD_NONE, CLOUD_VCENTER, CLOUD_OPENSTACK, CLOUD_AWS, CLOUD_VCA, CLOUD_APIC, CLOUD_MESOS, CLOUD_LINUXSERVER, CLOUD_DOCKER_UCP,
|
||||
- CLOUD_RANCHER, CLOUD_OSHIFT_K8S, CLOUD_AZURE.
|
||||
- CLOUD_RANCHER, CLOUD_OSHIFT_K8S, CLOUD_AZURE, CLOUD_GCP.
|
||||
hyp_props:
|
||||
description:
|
||||
- Hypervisor properties.
|
||||
@@ -86,7 +86,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -110,7 +110,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'cloudproperties',
|
||||
set([]))
|
||||
|
||||
@@ -90,7 +90,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -115,7 +115,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -83,7 +83,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -106,7 +106,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'clusterclouddetails',
|
||||
set([]))
|
||||
|
||||
@@ -61,7 +61,13 @@ options:
|
||||
description:
|
||||
- Allowed values are 0-1440.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 15.
|
||||
- Units(MIN).
|
||||
api_perf_logging_threshold:
|
||||
description:
|
||||
- Threshold to log request timing in portal_performance.log and server-timing response header.
|
||||
- Any stage taking longer than 1% of the threshold will be included in the server-timing header.
|
||||
- Field introduced in 18.1.4, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10000.
|
||||
version_added: "2.9"
|
||||
appviewx_compat_mode:
|
||||
description:
|
||||
- Export configuration in appviewx compatibility mode.
|
||||
@@ -72,7 +78,6 @@ options:
|
||||
description:
|
||||
- Number of attach_ip_retry_interval.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 360.
|
||||
- Units(SEC).
|
||||
attach_ip_retry_limit:
|
||||
description:
|
||||
- Number of attach_ip_retry_limit.
|
||||
@@ -84,29 +89,57 @@ options:
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.5"
|
||||
type: bool
|
||||
cleanup_expired_authtoken_timeout_period:
|
||||
description:
|
||||
- Period for auth token cleanup job.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
version_added: "2.9"
|
||||
cleanup_sessions_timeout_period:
|
||||
description:
|
||||
- Period for sessions cleanup job.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
version_added: "2.9"
|
||||
cloud_reconcile:
|
||||
description:
|
||||
- Enable/disable periodic reconcile for all the clouds.
|
||||
- Field introduced in 17.2.14,18.1.5,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
cluster_ip_gratuitous_arp_period:
|
||||
description:
|
||||
- Number of cluster_ip_gratuitous_arp_period.
|
||||
- Period for cluster ip gratuitous arp job.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
consistency_check_timeout_period:
|
||||
description:
|
||||
- Period for consistency check job.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
version_added: "2.9"
|
||||
crashed_se_reboot:
|
||||
description:
|
||||
- Number of crashed_se_reboot.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 900.
|
||||
- Units(SEC).
|
||||
dead_se_detection_timer:
|
||||
description:
|
||||
- Number of dead_se_detection_timer.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 360.
|
||||
- Units(SEC).
|
||||
dns_refresh_period:
|
||||
description:
|
||||
- Number of dns_refresh_period.
|
||||
- Period for refresh pool and gslb dns job.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
dummy:
|
||||
description:
|
||||
- Number of dummy.
|
||||
enable_api_sharding:
|
||||
description:
|
||||
- This setting enables the controller leader to shard api requests to the followers (if any).
|
||||
- Field introduced in 18.1.5, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
enable_memory_balancer:
|
||||
description:
|
||||
- Enable/disable memory balancer.
|
||||
@@ -118,7 +151,6 @@ options:
|
||||
description:
|
||||
- Number of fatal_error_lease_time.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 120.
|
||||
- Units(SEC).
|
||||
max_dead_se_in_grp:
|
||||
description:
|
||||
- Number of max_dead_se_in_grp.
|
||||
@@ -139,20 +171,31 @@ options:
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 3.
|
||||
persistence_key_rotate_period:
|
||||
description:
|
||||
- Period for rotate app persistence keys job.
|
||||
- Allowed values are 1-1051200.
|
||||
- Special values are 0 - 'disabled'.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
portal_token:
|
||||
description:
|
||||
- Token used for uploading tech-support to portal.
|
||||
- Field introduced in 16.4.6,17.1.2.
|
||||
version_added: "2.4"
|
||||
process_locked_useraccounts_timeout_period:
|
||||
description:
|
||||
- Period for process locked user accounts job.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
version_added: "2.9"
|
||||
process_pki_profile_timeout_period:
|
||||
description:
|
||||
- Period for process pki profile job.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1440.
|
||||
version_added: "2.9"
|
||||
query_host_fail:
|
||||
description:
|
||||
- Number of query_host_fail.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 180.
|
||||
- Units(SEC).
|
||||
safenet_hsm_version:
|
||||
description:
|
||||
- Version of the safenet package installed on the controller.
|
||||
@@ -162,37 +205,38 @@ options:
|
||||
description:
|
||||
- Number of se_create_timeout.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 900.
|
||||
- Units(SEC).
|
||||
se_failover_attempt_interval:
|
||||
description:
|
||||
- Interval between attempting failovers to an se.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
se_from_marketplace:
|
||||
description:
|
||||
- This setting decides whether se is to be deployed from the cloud marketplace or to be created by the controller.
|
||||
- The setting is applicable only when byol license is selected.
|
||||
- Enum options - MARKETPLACE, IMAGE.
|
||||
- Field introduced in 18.1.4, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as IMAGE.
|
||||
version_added: "2.9"
|
||||
se_offline_del:
|
||||
description:
|
||||
- Number of se_offline_del.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 172000.
|
||||
- Units(SEC).
|
||||
se_vnic_cooldown:
|
||||
description:
|
||||
- Number of se_vnic_cooldown.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 120.
|
||||
- Units(SEC).
|
||||
secure_channel_cleanup_timeout:
|
||||
description:
|
||||
- Number of secure_channel_cleanup_timeout.
|
||||
- Period for secure channel cleanup job.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
secure_channel_controller_token_timeout:
|
||||
description:
|
||||
- Number of secure_channel_controller_token_timeout.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
secure_channel_se_token_timeout:
|
||||
description:
|
||||
- Number of secure_channel_se_token_timeout.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
seupgrade_fabric_pool_size:
|
||||
description:
|
||||
- Pool size used for all fabric commands during se upgrade.
|
||||
@@ -201,28 +245,23 @@ options:
|
||||
description:
|
||||
- Time to wait before marking segroup upgrade as stuck.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 360.
|
||||
- Units(SEC).
|
||||
ssl_certificate_expiry_warning_days:
|
||||
description:
|
||||
- Number of days for ssl certificate expiry warning.
|
||||
- Units(DAYS).
|
||||
unresponsive_se_reboot:
|
||||
description:
|
||||
- Number of unresponsive_se_reboot.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
upgrade_dns_ttl:
|
||||
description:
|
||||
- Time to account for dns ttl during upgrade.
|
||||
- This is in addition to vs_scalein_timeout_for_upgrade in se_group.
|
||||
- Field introduced in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 5.
|
||||
- Units(SEC).
|
||||
upgrade_lease_time:
|
||||
description:
|
||||
- Number of upgrade_lease_time.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 360.
|
||||
- Units(SEC).
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
@@ -233,60 +272,62 @@ options:
|
||||
description:
|
||||
- Number of vnic_op_fail_time.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 180.
|
||||
- Units(SEC).
|
||||
vs_apic_scaleout_timeout:
|
||||
description:
|
||||
- Time to wait for the scaled out se to become ready before marking the scaleout done, applies to apic configuration only.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 360.
|
||||
- Units(SEC).
|
||||
vs_awaiting_se_timeout:
|
||||
description:
|
||||
- Number of vs_awaiting_se_timeout.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(SEC).
|
||||
vs_key_rotate_period:
|
||||
description:
|
||||
- Period for rotate vs keys job.
|
||||
- Allowed values are 1-1051200.
|
||||
- Special values are 0 - 'disabled'.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 360.
|
||||
vs_scaleout_ready_check_interval:
|
||||
description:
|
||||
- Interval for checking scaleout_ready status while controller is waiting for scaleoutready rpc from the service engine.
|
||||
- Field introduced in 18.2.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(MIN).
|
||||
version_added: "2.9"
|
||||
vs_se_attach_ip_fail:
|
||||
description:
|
||||
- Time to wait before marking attach ip operation on an se as failed.
|
||||
- Field introduced in 17.2.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 3600.
|
||||
- Units(SEC).
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 600.
|
||||
version_added: "2.5"
|
||||
vs_se_bootup_fail:
|
||||
description:
|
||||
- Number of vs_se_bootup_fail.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 480.
|
||||
- Units(SEC).
|
||||
vs_se_create_fail:
|
||||
description:
|
||||
- Number of vs_se_create_fail.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1500.
|
||||
- Units(SEC).
|
||||
vs_se_ping_fail:
|
||||
description:
|
||||
- Number of vs_se_ping_fail.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 60.
|
||||
- Units(SEC).
|
||||
vs_se_vnic_fail:
|
||||
description:
|
||||
- Number of vs_se_vnic_fail.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
vs_se_vnic_ip_fail:
|
||||
description:
|
||||
- Number of vs_se_vnic_ip_fail.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 120.
|
||||
- Units(SEC).
|
||||
warmstart_se_reconnect_wait_time:
|
||||
description:
|
||||
- Number of warmstart_se_reconnect_wait_time.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 480.
|
||||
warmstart_vs_resync_wait_time:
|
||||
description:
|
||||
- Timeout for warmstart vs resync.
|
||||
- Field introduced in 18.1.4, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
version_added: "2.9"
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
@@ -311,7 +352,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -327,15 +368,21 @@ def main():
|
||||
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',),
|
||||
@@ -344,10 +391,13 @@ def main():
|
||||
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',),
|
||||
@@ -365,6 +415,7 @@ def main():
|
||||
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',),
|
||||
@@ -372,13 +423,14 @@ def main():
|
||||
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) is not installed. '
|
||||
'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']))
|
||||
|
||||
@@ -89,7 +89,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -113,7 +113,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'customipamdnsprofile',
|
||||
set([]))
|
||||
|
||||
@@ -93,7 +93,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -118,7 +118,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'dnspolicy',
|
||||
set([]))
|
||||
|
||||
@@ -45,6 +45,13 @@ options:
|
||||
description:
|
||||
- Error page body sent to client when match.
|
||||
- Field introduced in 17.2.4.
|
||||
format:
|
||||
description:
|
||||
- Format of an error page body html or json.
|
||||
- Enum options - ERROR_PAGE_FORMAT_HTML, ERROR_PAGE_FORMAT_JSON.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as ERROR_PAGE_FORMAT_HTML.
|
||||
version_added: "2.9"
|
||||
name:
|
||||
description:
|
||||
- Field introduced in 17.2.4.
|
||||
@@ -83,7 +90,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -96,6 +103,7 @@ def main():
|
||||
choices=['put', 'patch']),
|
||||
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
|
||||
error_page_body=dict(type='str',),
|
||||
format=dict(type='str',),
|
||||
name=dict(type='str', required=True),
|
||||
tenant_ref=dict(type='str',),
|
||||
url=dict(type='str',),
|
||||
@@ -106,7 +114,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'errorpagebody',
|
||||
set([]))
|
||||
|
||||
@@ -44,11 +44,13 @@ options:
|
||||
app_name:
|
||||
description:
|
||||
- Name of the virtual service which generated the error page.
|
||||
- Field deprecated in 18.1.1.
|
||||
- Field introduced in 17.2.4.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as VS Name.
|
||||
company_name:
|
||||
description:
|
||||
- Name of the company to show in error page.
|
||||
- Field deprecated in 18.1.1.
|
||||
- Field introduced in 17.2.4.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as Avi Networks.
|
||||
error_pages:
|
||||
@@ -58,6 +60,7 @@ options:
|
||||
host_name:
|
||||
description:
|
||||
- Fully qualified domain name for which the error page is generated.
|
||||
- Field deprecated in 18.1.1.
|
||||
- Field introduced in 17.2.4.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as Host Header.
|
||||
name:
|
||||
@@ -98,7 +101,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -124,7 +127,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'errorpageprofile',
|
||||
set([]))
|
||||
|
||||
@@ -42,6 +42,14 @@ options:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
async_interval:
|
||||
description:
|
||||
- Frequency with which messages are propagated to vs mgr.
|
||||
- Value of 0 disables async behavior and rpc are sent inline.
|
||||
- Allowed values are 0-5.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
clear_on_max_retries:
|
||||
description:
|
||||
- Max retries after which the remote site is treated as a fresh start.
|
||||
@@ -92,7 +100,14 @@ options:
|
||||
- Frequency with which group members communicate.
|
||||
- Allowed values are 1-3600.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 15.
|
||||
- Units(SEC).
|
||||
send_interval_prior_to_maintenance_mode:
|
||||
description:
|
||||
- The user can specify a send-interval while entering maintenance mode.
|
||||
- The validity of this 'maintenance send-interval' is only during maintenance mode.
|
||||
- When the user leaves maintenance mode, the original send-interval is reinstated.
|
||||
- This internal variable is used to store the original send-interval.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
sites:
|
||||
description:
|
||||
- Select avi site member belonging to this gslb.
|
||||
@@ -121,11 +136,107 @@ extends_documentation_fragment:
|
||||
EXAMPLES = """
|
||||
- name: Example to create Gslb object
|
||||
avi_gslb:
|
||||
controller: 10.10.25.42
|
||||
username: admin
|
||||
password: something
|
||||
state: present
|
||||
name: sample_gslb
|
||||
name: "test-gslb"
|
||||
avi_credentials:
|
||||
username: '{{ username }}'
|
||||
password: '{{ password }}'
|
||||
controller: '{{ controller }}'
|
||||
sites:
|
||||
- name: "test-site1"
|
||||
username: "gslb_username"
|
||||
password: "gslb_password"
|
||||
ip_addresses:
|
||||
- type: "V4"
|
||||
addr: "10.10.28.83"
|
||||
enabled: True
|
||||
member_type: "GSLB_ACTIVE_MEMBER"
|
||||
port: 443
|
||||
cluster_uuid: "cluster-d4ee5fcc-3e0a-4d4f-9ae6-4182bc605829"
|
||||
- name: "test-site2"
|
||||
username: "gslb_username"
|
||||
password: "gslb_password"
|
||||
ip_addresses:
|
||||
- type: "V4"
|
||||
addr: "10.10.28.86"
|
||||
enabled: True
|
||||
member_type: "GSLB_ACTIVE_MEMBER"
|
||||
port: 443
|
||||
cluster_uuid: "cluster-0c37ae8d-ab62-410c-ad3e-06fa831950b1"
|
||||
dns_configs:
|
||||
- domain_name: "test1.com"
|
||||
- domain_name: "test2.com"
|
||||
leader_cluster_uuid: "cluster-d4ee5fcc-3e0a-4d4f-9ae6-4182bc605829"
|
||||
|
||||
- name: Update Gslb site's configurations (Patch Add Operation)
|
||||
avi_gslb:
|
||||
avi_credentials:
|
||||
username: '{{ username }}'
|
||||
password: '{{ password }}'
|
||||
controller: '{{ controller }}'
|
||||
avi_api_update_method: patch
|
||||
avi_api_patch_op: add
|
||||
leader_cluster_uuid: "cluster-d4ee5fcc-3e0a-4d4f-9ae6-4182bc605829"
|
||||
name: "test-gslb"
|
||||
dns_configs:
|
||||
- domain_name: "temp1.com"
|
||||
- domain_name: "temp2.com"
|
||||
gslb_sites_config:
|
||||
- ip_addr: "10.10.28.83"
|
||||
dns_vses:
|
||||
- dns_vs_uuid: "virtualservice-f2a711cd-5e78-473f-8f47-d12de660fd62"
|
||||
domain_names:
|
||||
- "test1.com"
|
||||
- "test2.com"
|
||||
- ip_addr: "10.10.28.86"
|
||||
dns_vses:
|
||||
- dns_vs_uuid: "virtualservice-c1a63a16-f2a1-4f41-aab4-1e90f92a5e49"
|
||||
domain_names:
|
||||
- "temp1.com"
|
||||
- "temp2.com"
|
||||
|
||||
- name: Update Gslb site's configurations (Patch Replace Operation)
|
||||
avi_gslb:
|
||||
avi_credentials:
|
||||
username: "{{ username }}"
|
||||
password: "{{ password }}"
|
||||
controller: "{{ controller }}"
|
||||
# On basis of cluster leader uuid dns_configs is set for that perticular leader cluster
|
||||
leader_cluster_uuid: "cluster-84aa795f-8f09-42bb-97a4-5103f4a53da9"
|
||||
name: "test-gslb"
|
||||
avi_api_update_method: patch
|
||||
avi_api_patch_op: replace
|
||||
dns_configs:
|
||||
- domain_name: "test3.com"
|
||||
- domain_name: "temp3.com"
|
||||
gslb_sites_config:
|
||||
# Ip address is mapping key for dns_vses field update. For the given IP address,
|
||||
# dns_vses is updated.
|
||||
- ip_addr: "10.10.28.83"
|
||||
dns_vses:
|
||||
- dns_vs_uuid: "virtualservice-7c947ed4-77f3-4a52-909c-4f12afaf5bb0"
|
||||
domain_names:
|
||||
- "test3.com"
|
||||
- ip_addr: "10.10.28.86"
|
||||
dns_vses:
|
||||
- dns_vs_uuid: "virtualservice-799b2c6d-7f2d-4c3f-94c6-6e813b20b674"
|
||||
domain_names:
|
||||
- "temp3.com"
|
||||
|
||||
- name: Update Gslb site's configurations (Patch Delete Operation)
|
||||
avi_gslb:
|
||||
avi_credentials:
|
||||
username: "{{ username }}"
|
||||
password: "{{ password }}"
|
||||
controller: "{{ controller }}"
|
||||
# On basis of cluster leader uuid dns_configs is set for that perticular leader cluster
|
||||
leader_cluster_uuid: "cluster-84aa795f-8f09-42bb-97a4-5103f4a53da9"
|
||||
name: "test-gslb"
|
||||
avi_api_update_method: patch
|
||||
avi_api_patch_op: delete
|
||||
dns_configs:
|
||||
gslb_sites_config:
|
||||
- ip_addr: "10.10.28.83"
|
||||
- ip_addr: "10.10.28.86"
|
||||
"""
|
||||
|
||||
RETURN = '''
|
||||
@@ -138,7 +249,8 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
from ansible.module_utils.network.avi.avi_api import ApiSession, AviCredentials
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -150,6 +262,7 @@ def main():
|
||||
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',),
|
||||
@@ -159,6 +272,7 @@ def main():
|
||||
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',),
|
||||
@@ -171,8 +285,74 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Created on Aug 25, 2016
|
||||
# @author: Gaurav Rastogi (grastogi@avinetworks.com)
|
||||
# Eric Anderson (eanderson@avinetworks.com)
|
||||
# module_check: supported
|
||||
# Avi Version: 17.1.1
|
||||
#
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: avi_gslbapplicationpersistenceprofile
|
||||
author: Gaurav Rastogi (@grastogi23) <grastogi@avinetworks.com>
|
||||
|
||||
short_description: Module for setup of GslbApplicationPersistenceProfile Avi RESTful Object
|
||||
description:
|
||||
- This module is used to configure GslbApplicationPersistenceProfile object
|
||||
- more examples at U(https://github.com/avinetworks/devops)
|
||||
requirements: [ avisdk ]
|
||||
version_added: "2.4"
|
||||
options:
|
||||
state:
|
||||
description:
|
||||
- The state that should be applied on the entity.
|
||||
default: present
|
||||
choices: ["absent","present"]
|
||||
description:
|
||||
description:
|
||||
- Field introduced in 17.1.1.
|
||||
name:
|
||||
description:
|
||||
- A user-friendly name for the persistence profile.
|
||||
- Field introduced in 17.1.1.
|
||||
required: true
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
- Field introduced in 17.1.1.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
uuid:
|
||||
description:
|
||||
- Uuid of the persistence profile.
|
||||
- Field introduced in 17.1.1.
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
|
||||
EXAMPLES = """
|
||||
- name: Example to create GslbApplicationPersistenceProfile object
|
||||
avi_gslbapplicationpersistenceprofile:
|
||||
controller: 10.10.25.42
|
||||
username: admin
|
||||
password: something
|
||||
state: present
|
||||
name: sample_gslbapplicationpersistenceprofile
|
||||
"""
|
||||
|
||||
RETURN = '''
|
||||
obj:
|
||||
description: GslbApplicationPersistenceProfile (api/gslbapplicationpersistenceprofile) object
|
||||
returned: success, changed
|
||||
type: dict
|
||||
'''
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
|
||||
def main():
|
||||
argument_specs = dict(
|
||||
state=dict(default='present',
|
||||
choices=['absent', 'present']),
|
||||
description=dict(type='str',),
|
||||
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) is not installed. '
|
||||
'For more details visit https://github.com/avinetworks/sdk.'))
|
||||
return avi_ansible_api(module, 'gslbapplicationpersistenceprofile',
|
||||
set([]))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -96,7 +96,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -121,7 +121,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'gslbgeodbprofile',
|
||||
set([]))
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Created on Aug 25, 2016
|
||||
# @author: Gaurav Rastogi (grastogi@avinetworks.com)
|
||||
# Eric Anderson (eanderson@avinetworks.com)
|
||||
# module_check: supported
|
||||
# Avi Version: 17.1.1
|
||||
#
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: avi_gslbhealthmonitor
|
||||
author: Gaurav Rastogi (@grastogi23) <grastogi@avinetworks.com>
|
||||
|
||||
short_description: Module for setup of GslbHealthMonitor Avi RESTful Object
|
||||
description:
|
||||
- This module is used to configure GslbHealthMonitor object
|
||||
- more examples at U(https://github.com/avinetworks/devops)
|
||||
requirements: [ avisdk ]
|
||||
version_added: "2.4"
|
||||
options:
|
||||
state:
|
||||
description:
|
||||
- The state that should be applied on the entity.
|
||||
default: present
|
||||
choices: ["absent","present"]
|
||||
description:
|
||||
description:
|
||||
- User defined description for the object.
|
||||
dns_monitor:
|
||||
description:
|
||||
- Healthmonitordns settings for gslbhealthmonitor.
|
||||
external_monitor:
|
||||
description:
|
||||
- Healthmonitorexternal settings for gslbhealthmonitor.
|
||||
failed_checks:
|
||||
description:
|
||||
- Number of continuous failed health checks before the server is marked down.
|
||||
- Allowed values are 1-50.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 2.
|
||||
http_monitor:
|
||||
description:
|
||||
- Healthmonitorhttp settings for gslbhealthmonitor.
|
||||
https_monitor:
|
||||
description:
|
||||
- Healthmonitorhttp settings for gslbhealthmonitor.
|
||||
monitor_port:
|
||||
description:
|
||||
- Use this port instead of the port defined for the server in the pool.
|
||||
- If the monitor succeeds to this port, the load balanced traffic will still be sent to the port of the server defined within the pool.
|
||||
- Allowed values are 1-65535.
|
||||
- Special values are 0 - 'use server port'.
|
||||
name:
|
||||
description:
|
||||
- A user friendly name for this health monitor.
|
||||
required: true
|
||||
receive_timeout:
|
||||
description:
|
||||
- A valid response from the server is expected within the receive timeout window.
|
||||
- This timeout must be less than the send interval.
|
||||
- If server status is regularly flapping up and down, consider increasing this value.
|
||||
- Allowed values are 1-300.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 4.
|
||||
send_interval:
|
||||
description:
|
||||
- Frequency, in seconds, that monitors are sent to a server.
|
||||
- Allowed values are 1-3600.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 5.
|
||||
successful_checks:
|
||||
description:
|
||||
- Number of continuous successful health checks before server is marked up.
|
||||
- Allowed values are 1-50.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 2.
|
||||
tcp_monitor:
|
||||
description:
|
||||
- Healthmonitortcp settings for gslbhealthmonitor.
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
type:
|
||||
description:
|
||||
- Type of the health monitor.
|
||||
- Enum options - HEALTH_MONITOR_PING, HEALTH_MONITOR_TCP, HEALTH_MONITOR_HTTP, HEALTH_MONITOR_HTTPS, HEALTH_MONITOR_EXTERNAL, HEALTH_MONITOR_UDP,
|
||||
- HEALTH_MONITOR_DNS, HEALTH_MONITOR_GSLB.
|
||||
required: true
|
||||
udp_monitor:
|
||||
description:
|
||||
- Healthmonitorudp settings for gslbhealthmonitor.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
uuid:
|
||||
description:
|
||||
- Uuid of the health monitor.
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
|
||||
EXAMPLES = """
|
||||
- name: Example to create GslbHealthMonitor object
|
||||
avi_gslbhealthmonitor:
|
||||
controller: 10.10.25.42
|
||||
username: admin
|
||||
password: something
|
||||
state: present
|
||||
name: sample_gslbhealthmonitor
|
||||
"""
|
||||
|
||||
RETURN = '''
|
||||
obj:
|
||||
description: GslbHealthMonitor (api/gslbhealthmonitor) object
|
||||
returned: success, changed
|
||||
type: dict
|
||||
'''
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
|
||||
def main():
|
||||
argument_specs = dict(
|
||||
state=dict(default='present',
|
||||
choices=['absent', 'present']),
|
||||
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',),
|
||||
monitor_port=dict(type='int',),
|
||||
name=dict(type='str', required=True),
|
||||
receive_timeout=dict(type='int',),
|
||||
send_interval=dict(type='int',),
|
||||
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) is not installed. '
|
||||
'For more details visit https://github.com/avinetworks/sdk.'))
|
||||
return avi_ansible_api(module, 'gslbhealthmonitor',
|
||||
set([]))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -90,6 +90,12 @@ options:
|
||||
- In such a case, avi members can have controller derived status while non-avi members can be probed by via health monitor probes in dataplane.
|
||||
- Enum options - GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS, GSLB_SERVICE_HEALTH_MONITOR_ONLY_NON_AVI_MEMBERS.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS.
|
||||
hm_off:
|
||||
description:
|
||||
- This field is an internal field and is used in se.
|
||||
- Field introduced in 18.2.2.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
is_federated:
|
||||
description:
|
||||
- This field indicates that this object is replicated across gslb federation.
|
||||
@@ -134,8 +140,7 @@ options:
|
||||
ttl:
|
||||
description:
|
||||
- Ttl value (in seconds) for records served for this gslb service by the dns service.
|
||||
- Allowed values are 1-86400.
|
||||
- Units(SEC).
|
||||
- Allowed values are 0-86400.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
@@ -181,7 +186,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -203,6 +208,7 @@ def main():
|
||||
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),
|
||||
@@ -221,7 +227,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -110,14 +110,12 @@ import time
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from copy import deepcopy
|
||||
|
||||
HAS_AVI = True
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI)
|
||||
from avi.sdk.avi_api import ApiSession, AviCredentials
|
||||
from avi.sdk.utils.ansible_utils import (
|
||||
avi_obj_cmp, cleanup_absent_fields, ansible_return,
|
||||
AviCheckModeResponse)
|
||||
avi_common_argument_spec, avi_obj_cmp, cleanup_absent_fields,
|
||||
ansible_return, AviCheckModeResponse, HAS_AVI)
|
||||
from ansible.module_utils.network.avi.avi_api import (
|
||||
ApiSession, AviCredentials)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -238,10 +236,9 @@ def main():
|
||||
)
|
||||
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) is not installed. '
|
||||
'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)
|
||||
|
||||
@@ -82,7 +82,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -105,7 +105,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'hardwaresecuritymodulegroup',
|
||||
set([]))
|
||||
|
||||
@@ -81,6 +81,11 @@ options:
|
||||
description:
|
||||
- A user friendly name for this health monitor.
|
||||
required: true
|
||||
radius_monitor:
|
||||
description:
|
||||
- Health monitor for radius.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
receive_timeout:
|
||||
description:
|
||||
- A valid response from the server is expected within the receive timeout window.
|
||||
@@ -88,13 +93,16 @@ options:
|
||||
- If server status is regularly flapping up and down, consider increasing this value.
|
||||
- Allowed values are 1-2400.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 4.
|
||||
- Units(SEC).
|
||||
send_interval:
|
||||
description:
|
||||
- Frequency, in seconds, that monitors are sent to a server.
|
||||
- Allowed values are 1-3600.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10.
|
||||
- Units(SEC).
|
||||
sip_monitor:
|
||||
description:
|
||||
- Health monitor for sip.
|
||||
- Field introduced in 17.2.8, 18.1.3, 18.2.1.
|
||||
version_added: "2.9"
|
||||
successful_checks:
|
||||
description:
|
||||
- Number of continuous successful health checks before server is marked up.
|
||||
@@ -110,7 +118,7 @@ options:
|
||||
description:
|
||||
- Type of the health monitor.
|
||||
- Enum options - HEALTH_MONITOR_PING, HEALTH_MONITOR_TCP, HEALTH_MONITOR_HTTP, HEALTH_MONITOR_HTTPS, HEALTH_MONITOR_EXTERNAL, HEALTH_MONITOR_UDP,
|
||||
- HEALTH_MONITOR_DNS, HEALTH_MONITOR_GSLB.
|
||||
- HEALTH_MONITOR_DNS, HEALTH_MONITOR_GSLB, HEALTH_MONITOR_SIP, HEALTH_MONITOR_RADIUS.
|
||||
required: true
|
||||
udp_monitor:
|
||||
description:
|
||||
@@ -154,7 +162,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -175,8 +183,10 @@ def main():
|
||||
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',),
|
||||
@@ -190,7 +200,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -132,7 +132,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -161,7 +161,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -120,7 +120,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -151,7 +151,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -74,6 +74,11 @@ options:
|
||||
description:
|
||||
- Name for the ipam/dns provider profile.
|
||||
required: true
|
||||
oci_profile:
|
||||
description:
|
||||
- Provider details for oracle cloud.
|
||||
- Field introduced in 18.2.1,18.1.3.
|
||||
version_added: "2.9"
|
||||
openstack_profile:
|
||||
description:
|
||||
- Provider details if type is openstack.
|
||||
@@ -83,11 +88,17 @@ options:
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
tencent_profile:
|
||||
description:
|
||||
- Provider details for tencent cloud.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
type:
|
||||
description:
|
||||
- Provider type for the ipam/dns provider profile.
|
||||
- Enum options - IPAMDNS_TYPE_INFOBLOX, IPAMDNS_TYPE_AWS, IPAMDNS_TYPE_OPENSTACK, IPAMDNS_TYPE_GCP, IPAMDNS_TYPE_INFOBLOX_DNS, IPAMDNS_TYPE_CUSTOM,
|
||||
- IPAMDNS_TYPE_CUSTOM_DNS, IPAMDNS_TYPE_AZURE, IPAMDNS_TYPE_INTERNAL, IPAMDNS_TYPE_INTERNAL_DNS, IPAMDNS_TYPE_AWS_DNS, IPAMDNS_TYPE_AZURE_DNS.
|
||||
- IPAMDNS_TYPE_CUSTOM_DNS, IPAMDNS_TYPE_AZURE, IPAMDNS_TYPE_OCI, IPAMDNS_TYPE_TENCENT, IPAMDNS_TYPE_INTERNAL, IPAMDNS_TYPE_INTERNAL_DNS,
|
||||
- IPAMDNS_TYPE_AWS_DNS, IPAMDNS_TYPE_AZURE_DNS.
|
||||
required: true
|
||||
url:
|
||||
description:
|
||||
@@ -131,7 +142,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -151,9 +162,11 @@ def main():
|
||||
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',),
|
||||
@@ -163,7 +176,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -95,7 +95,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -121,7 +121,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'l4policyset',
|
||||
set([]))
|
||||
|
||||
@@ -89,7 +89,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -114,7 +114,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'microservicegroup',
|
||||
set([]))
|
||||
|
||||
@@ -58,6 +58,13 @@ options:
|
||||
- When selected, excludes all discovered subnets in this network from consideration for virtual service placement.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
ip6_autocfg_enabled:
|
||||
description:
|
||||
- Enable ipv6 auto configuration.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
name:
|
||||
description:
|
||||
- Name of the object.
|
||||
@@ -111,7 +118,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -127,6 +134,7 @@ def main():
|
||||
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',),
|
||||
@@ -141,7 +149,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -42,6 +42,14 @@ options:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
connection_mirror:
|
||||
description:
|
||||
- When enabled, avi mirrors all tcp fastpath connections to standby.
|
||||
- Applicable only in legacy ha mode.
|
||||
- Field introduced in 18.1.3,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
description:
|
||||
description:
|
||||
- User defined description for the object.
|
||||
@@ -92,7 +100,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -104,6 +112,7 @@ def main():
|
||||
avi_api_update_method=dict(default='put',
|
||||
choices=['put', 'patch']),
|
||||
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
|
||||
connection_mirror=dict(type='bool',),
|
||||
description=dict(type='str',),
|
||||
name=dict(type='str', required=True),
|
||||
profile=dict(type='dict', required=True),
|
||||
@@ -116,7 +125,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'networkprofile',
|
||||
set([]))
|
||||
|
||||
@@ -103,7 +103,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -129,7 +129,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'networksecuritypolicy',
|
||||
set([]))
|
||||
|
||||
@@ -114,7 +114,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -143,7 +143,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -45,13 +45,27 @@ options:
|
||||
a_pool:
|
||||
description:
|
||||
- Name of container cloud application that constitutes a pool in a a-b pool configuration, if different from vs app.
|
||||
- Field deprecated in 18.1.2.
|
||||
ab_pool:
|
||||
description:
|
||||
- A/b pool configuration.
|
||||
- Field deprecated in 18.1.2.
|
||||
ab_priority:
|
||||
description:
|
||||
- Priority of this pool in a a-b pool pair.
|
||||
- Internally used.
|
||||
- Field deprecated in 18.1.2.
|
||||
analytics_policy:
|
||||
description:
|
||||
- Determines analytics settings for the pool.
|
||||
- Field introduced in 18.1.5, 18.2.1.
|
||||
version_added: "2.9"
|
||||
analytics_profile_ref:
|
||||
description:
|
||||
- Specifies settings related to analytics.
|
||||
- It is a reference to an object of type analyticsprofile.
|
||||
- Field introduced in 18.1.4,18.2.1.
|
||||
version_added: "2.9"
|
||||
apic_epg_name:
|
||||
description:
|
||||
- Synchronize cisco apic epg members with pool servers.
|
||||
@@ -82,7 +96,6 @@ options:
|
||||
- Allowed values are 1-5000.
|
||||
- Special values are 0 - 'automatic'.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
- Units(MILLISECONDS).
|
||||
cloud_config_cksum:
|
||||
description:
|
||||
- Checksum of cloud configuration for pool.
|
||||
@@ -90,6 +103,11 @@ options:
|
||||
cloud_ref:
|
||||
description:
|
||||
- It is a reference to an object of type cloud.
|
||||
conn_pool_properties:
|
||||
description:
|
||||
- Connnection pool properties.
|
||||
- Field introduced in 18.2.1.
|
||||
version_added: "2.9"
|
||||
connection_ramp_duration:
|
||||
description:
|
||||
- Duration for which new connections will be gradually ramped up to a server recently brought online.
|
||||
@@ -97,7 +115,6 @@ options:
|
||||
- Allowed values are 1-300.
|
||||
- Special values are 0 - 'immediate'.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10.
|
||||
- Units(MIN).
|
||||
created_by:
|
||||
description:
|
||||
- Creator name.
|
||||
@@ -107,6 +124,16 @@ options:
|
||||
- The ssl checkbox enables avi to server encryption.
|
||||
- Allowed values are 1-65535.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 80.
|
||||
delete_server_on_dns_refresh:
|
||||
description:
|
||||
- Indicates whether existing ips are disabled(false) or deleted(true) on dns hostname refreshdetail -- on a dns refresh, some ips set on pool may
|
||||
- no longer be returned by the resolver.
|
||||
- These ips are deleted from the pool when this knob is set to true.
|
||||
- They are disabled, if the knob is set to false.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
description:
|
||||
description:
|
||||
- A description of the pool.
|
||||
@@ -138,7 +165,6 @@ options:
|
||||
- Periodicity of feedback for fewest tasks server selection algorithm.
|
||||
- Allowed values are 1-300.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10.
|
||||
- Units(SEC).
|
||||
graceful_disable_timeout:
|
||||
description:
|
||||
- Used to gracefully disable a server.
|
||||
@@ -146,7 +172,6 @@ options:
|
||||
- Allowed values are 1-7200.
|
||||
- Special values are 0 - 'immediate', -1 - 'infinite'.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
- Units(MIN).
|
||||
gslb_sp_enabled:
|
||||
description:
|
||||
- Indicates if the pool is a site-persistence pool.
|
||||
@@ -181,7 +206,7 @@ options:
|
||||
- The load balancing algorithm will pick a server within the pool's list of available servers.
|
||||
- Enum options - LB_ALGORITHM_LEAST_CONNECTIONS, LB_ALGORITHM_ROUND_ROBIN, LB_ALGORITHM_FASTEST_RESPONSE, LB_ALGORITHM_CONSISTENT_HASH,
|
||||
- LB_ALGORITHM_LEAST_LOAD, LB_ALGORITHM_FEWEST_SERVERS, LB_ALGORITHM_RANDOM, LB_ALGORITHM_FEWEST_TASKS, LB_ALGORITHM_NEAREST_SERVER,
|
||||
- LB_ALGORITHM_CORE_AFFINITY.
|
||||
- LB_ALGORITHM_CORE_AFFINITY, LB_ALGORITHM_TOPOLOGY.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as LB_ALGORITHM_LEAST_CONNECTIONS.
|
||||
lb_algorithm_consistent_hash_hdr:
|
||||
description:
|
||||
@@ -197,7 +222,8 @@ options:
|
||||
description:
|
||||
- Criteria used as a key for determining the hash between the client and server.
|
||||
- Enum options - LB_ALGORITHM_CONSISTENT_HASH_SOURCE_IP_ADDRESS, LB_ALGORITHM_CONSISTENT_HASH_SOURCE_IP_ADDRESS_AND_PORT,
|
||||
- LB_ALGORITHM_CONSISTENT_HASH_URI, LB_ALGORITHM_CONSISTENT_HASH_CUSTOM_HEADER, LB_ALGORITHM_CONSISTENT_HASH_CUSTOM_STRING.
|
||||
- LB_ALGORITHM_CONSISTENT_HASH_URI, LB_ALGORITHM_CONSISTENT_HASH_CUSTOM_HEADER, LB_ALGORITHM_CONSISTENT_HASH_CUSTOM_STRING,
|
||||
- LB_ALGORITHM_CONSISTENT_HASH_CALLID.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as LB_ALGORITHM_CONSISTENT_HASH_SOURCE_IP_ADDRESS.
|
||||
lookup_server_by_name:
|
||||
description:
|
||||
@@ -215,6 +241,16 @@ options:
|
||||
max_conn_rate_per_server:
|
||||
description:
|
||||
- Rate limit connections to each server.
|
||||
min_health_monitors_up:
|
||||
description:
|
||||
- Minimum number of health monitors in up state to mark server up.
|
||||
- Field introduced in 18.2.1, 17.2.12.
|
||||
version_added: "2.9"
|
||||
min_servers_up:
|
||||
description:
|
||||
- Minimum number of servers in up state for marking the pool up.
|
||||
- Field introduced in 18.2.1, 17.2.12.
|
||||
version_added: "2.9"
|
||||
name:
|
||||
description:
|
||||
- The name of the pool.
|
||||
@@ -240,6 +276,7 @@ options:
|
||||
prst_hdr_name:
|
||||
description:
|
||||
- Header name for custom header persistence.
|
||||
- Field deprecated in 18.1.2.
|
||||
request_queue_depth:
|
||||
description:
|
||||
- Minimum number of requests to be queued when pool is full.
|
||||
@@ -264,12 +301,11 @@ options:
|
||||
description:
|
||||
- Server autoscale.
|
||||
- Not used anymore.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
- Field deprecated in 18.1.2.
|
||||
type: bool
|
||||
server_count:
|
||||
description:
|
||||
- Number of server_count.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
- Field deprecated in 18.2.1.
|
||||
server_name:
|
||||
description:
|
||||
- Fully qualified dns hostname which will be used in the tls sni extension in server connections if sni is enabled.
|
||||
@@ -277,10 +313,26 @@ options:
|
||||
server_reselect:
|
||||
description:
|
||||
- Server reselect configuration for http requests.
|
||||
server_timeout:
|
||||
description:
|
||||
- Server timeout value specifies the time within which a server connection needs to be established and a request-response exchange completes
|
||||
- between avi and the server.
|
||||
- Value of 0 results in using default timeout of 60 minutes.
|
||||
- Allowed values are 0-3600000.
|
||||
- Field introduced in 18.1.5,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
servers:
|
||||
description:
|
||||
- The pool directs load balanced traffic to this list of destination servers.
|
||||
- The servers can be configured by ip address, name, network or via ip address group.
|
||||
service_metadata:
|
||||
description:
|
||||
- Metadata pertaining to the service provided by this pool.
|
||||
- In openshift/kubernetes environments, app metadata info is stored.
|
||||
- Any user input to this field will be overwritten by avi vantage.
|
||||
- Field introduced in 17.2.14,18.1.5,18.2.1.
|
||||
version_added: "2.9"
|
||||
sni_enabled:
|
||||
description:
|
||||
- Enable tls sni for server connections.
|
||||
@@ -365,7 +417,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -380,6 +432,8 @@ def main():
|
||||
a_pool=dict(type='str',),
|
||||
ab_pool=dict(type='dict',),
|
||||
ab_priority=dict(type='int',),
|
||||
analytics_policy=dict(type='dict',),
|
||||
analytics_profile_ref=dict(type='str',),
|
||||
apic_epg_name=dict(type='str',),
|
||||
application_persistence_profile_ref=dict(type='str',),
|
||||
autoscale_launch_config_ref=dict(type='str',),
|
||||
@@ -389,9 +443,11 @@ def main():
|
||||
capacity_estimation_ttfb_thresh=dict(type='int',),
|
||||
cloud_config_cksum=dict(type='str',),
|
||||
cloud_ref=dict(type='str',),
|
||||
conn_pool_properties=dict(type='dict',),
|
||||
connection_ramp_duration=dict(type='int',),
|
||||
created_by=dict(type='str',),
|
||||
default_server_port=dict(type='int',),
|
||||
delete_server_on_dns_refresh=dict(type='bool',),
|
||||
description=dict(type='str',),
|
||||
domain_name=dict(type='list',),
|
||||
east_west=dict(type='bool',),
|
||||
@@ -412,6 +468,8 @@ def main():
|
||||
lookup_server_by_name=dict(type='bool',),
|
||||
max_concurrent_connections_per_server=dict(type='int',),
|
||||
max_conn_rate_per_server=dict(type='dict',),
|
||||
min_health_monitors_up=dict(type='int',),
|
||||
min_servers_up=dict(type='int',),
|
||||
name=dict(type='str', required=True),
|
||||
networks=dict(type='list',),
|
||||
nsx_securitygroup=dict(type='list',),
|
||||
@@ -426,7 +484,9 @@ def main():
|
||||
server_count=dict(type='int',),
|
||||
server_name=dict(type='str',),
|
||||
server_reselect=dict(type='dict',),
|
||||
server_timeout=dict(type='int',),
|
||||
servers=dict(type='list',),
|
||||
service_metadata=dict(type='str',),
|
||||
sni_enabled=dict(type='bool',),
|
||||
ssl_key_and_certificate_ref=dict(type='str',),
|
||||
ssl_profile_ref=dict(type='str',),
|
||||
@@ -441,7 +501,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'pool',
|
||||
set([]))
|
||||
|
||||
@@ -88,6 +88,13 @@ options:
|
||||
- Uuid of the priority labels.
|
||||
- If not provided, pool group member priority label will be interpreted as a number with a larger number considered higher priority.
|
||||
- It is a reference to an object of type prioritylabels.
|
||||
service_metadata:
|
||||
description:
|
||||
- Metadata pertaining to the service provided by this poolgroup.
|
||||
- In openshift/kubernetes environments, app metadata info is stored.
|
||||
- Any user input to this field will be overwritten by avi vantage.
|
||||
- Field introduced in 17.2.14,18.1.5,18.2.1.
|
||||
version_added: "2.9"
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
@@ -121,7 +128,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -144,6 +151,7 @@ def main():
|
||||
min_servers=dict(type='int',),
|
||||
name=dict(type='str', required=True),
|
||||
priority_labels_ref=dict(type='str',),
|
||||
service_metadata=dict(type='str',),
|
||||
tenant_ref=dict(type='str',),
|
||||
url=dict(type='str',),
|
||||
uuid=dict(type='str',),
|
||||
@@ -153,7 +161,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'poolgroup',
|
||||
set([]))
|
||||
|
||||
@@ -46,9 +46,6 @@ options:
|
||||
- It will automatically disable old production pools once there is a new production candidate.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
type: bool
|
||||
cloud_ref:
|
||||
description:
|
||||
- It is a reference to an object of type cloud.
|
||||
description:
|
||||
description:
|
||||
- User defined description for the object.
|
||||
@@ -57,7 +54,6 @@ options:
|
||||
- Duration of evaluation period for automatic deployment.
|
||||
- Allowed values are 60-86400.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
name:
|
||||
description:
|
||||
- The name of the pool group deployment policy.
|
||||
@@ -75,7 +71,6 @@ options:
|
||||
- Target traffic ratio before pool is made production.
|
||||
- Allowed values are 1-100.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 100.
|
||||
- Units(RATIO).
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
@@ -121,7 +116,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -134,7 +129,6 @@ def main():
|
||||
choices=['put', 'patch']),
|
||||
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
|
||||
auto_disable_old_prod_pools=dict(type='bool',),
|
||||
cloud_ref=dict(type='str',),
|
||||
description=dict(type='str',),
|
||||
evaluation_duration=dict(type='int',),
|
||||
name=dict(type='str', required=True),
|
||||
@@ -152,7 +146,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -87,7 +87,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -112,7 +112,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'prioritylabels',
|
||||
set([]))
|
||||
|
||||
@@ -82,7 +82,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -105,7 +105,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'role',
|
||||
set([]))
|
||||
|
||||
@@ -115,7 +115,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -146,7 +146,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -82,7 +82,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -105,7 +105,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -91,7 +91,6 @@ options:
|
||||
description:
|
||||
- Cooldown period during which no new scalein is triggered to allow previous scalein to successfully complete.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
scaleout_alertconfig_refs:
|
||||
description:
|
||||
- Trigger scaleout when alerts due to any of these alert configurations are raised.
|
||||
@@ -100,7 +99,6 @@ options:
|
||||
description:
|
||||
- Cooldown period during which no new scaleout is triggered to allow previous scaleout to successfully complete.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
@@ -139,7 +137,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -174,7 +172,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -127,7 +127,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -163,7 +163,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -42,11 +42,26 @@ options:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
accelerated_networking:
|
||||
description:
|
||||
- Enable accelerated networking option for azure se.
|
||||
- Accelerated networking enables single root i/o virtualization (sr-iov) to a se vm.
|
||||
- This improves networking performance.
|
||||
- Field introduced in 17.2.14,18.1.5,18.2.1.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
active_standby:
|
||||
description:
|
||||
- Service engines in active/standby mode for ha failover.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
additional_config_memory:
|
||||
description:
|
||||
- Indicates the percent of config memory used for config updates.
|
||||
- Allowed values are 0-90.
|
||||
- Field deprecated in 18.1.2.
|
||||
- Field introduced in 18.1.1.
|
||||
version_added: "2.9"
|
||||
advertise_backend_networks:
|
||||
description:
|
||||
- Advertise reach-ability of backend server networks via adc through bgp for default gateway feature.
|
||||
@@ -68,12 +83,28 @@ options:
|
||||
- Field introduced in 17.2.5.
|
||||
version_added: "2.5"
|
||||
type: bool
|
||||
app_cache_percent:
|
||||
description:
|
||||
- A percent value of total se memory reserved for application caching.
|
||||
- This is an se bootup property and requires se restart.
|
||||
- Allowed values are 0 - 100.
|
||||
- Special values are 0- 'disable'.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
app_learning_memory_percent:
|
||||
description:
|
||||
- A percent value of total se memory reserved for application learning.
|
||||
- This is an se bootup property and requires se restart.
|
||||
- Allowed values are 0 - 10.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
archive_shm_limit:
|
||||
description:
|
||||
- Amount of se memory in gb until which shared memory is collected in core archive.
|
||||
- Field introduced in 17.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 8.
|
||||
- Units(GB).
|
||||
async_ssl:
|
||||
description:
|
||||
- Ssl handshakes will be handled by dedicated ssl threads.
|
||||
@@ -107,13 +138,19 @@ options:
|
||||
description:
|
||||
- Frequency of rebalance, if 'auto rebalance' is enabled.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
- Units(SEC).
|
||||
auto_redistribute_active_standby_load:
|
||||
description:
|
||||
- Redistribution of virtual services from the takeover se to the replacement se can cause momentary traffic loss.
|
||||
- If the auto-redistribute load option is left in its default off state, any desired rebalancing requires calls to rest api.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
bgp_state_update_interval:
|
||||
description:
|
||||
- Bgp peer state update interval.
|
||||
- Allowed values are 5-100.
|
||||
- Field introduced in 17.2.14,18.1.5,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10.
|
||||
version_added: "2.9"
|
||||
buffer_se:
|
||||
description:
|
||||
- Excess service engine capacity provisioned for ha failover.
|
||||
@@ -121,13 +158,19 @@ options:
|
||||
cloud_ref:
|
||||
description:
|
||||
- It is a reference to an object of type cloud.
|
||||
config_debugs_on_all_cores:
|
||||
description:
|
||||
- Enable config debugs on all cores of se.
|
||||
- Field introduced in 17.2.13,18.1.5,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
connection_memory_percentage:
|
||||
description:
|
||||
- Percentage of memory for connection state.
|
||||
- This will come at the expense of memory used for http in-memory cache.
|
||||
- Allowed values are 10-90.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 50.
|
||||
- Units(PERCENT).
|
||||
cpu_reserve:
|
||||
description:
|
||||
- Boolean flag to set cpu_reserve.
|
||||
@@ -151,6 +194,19 @@ options:
|
||||
description:
|
||||
- Custom tag will be used to create the tags for se instance in aws.
|
||||
- Note this is not the same as the prefix for se name.
|
||||
data_network_id:
|
||||
description:
|
||||
- Subnet used to spin up the data nic for service engines, used only for azure cloud.
|
||||
- Overrides the cloud level setting for service engine subnet.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
datascript_timeout:
|
||||
description:
|
||||
- Number of instructions before datascript times out.
|
||||
- Allowed values are 0-100000000.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1000000.
|
||||
version_added: "2.9"
|
||||
dedicated_dispatcher_core:
|
||||
description:
|
||||
- Dedicate the core that handles packet receive/transmit from the network to just the dispatching function.
|
||||
@@ -160,10 +216,20 @@ options:
|
||||
description:
|
||||
description:
|
||||
- User defined description for the object.
|
||||
disable_avi_securitygroups:
|
||||
description:
|
||||
- By default, avi creates and manages security groups along with custom sg provided by user.
|
||||
- Set this to true to disallow avi to create and manage new security groups.
|
||||
- Avi will only make use of custom security groups provided by user.
|
||||
- This option is only supported for aws cloud type.
|
||||
- Field introduced in 17.2.13,18.1.4,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
disable_csum_offloads:
|
||||
description:
|
||||
- Stop using tcp/udp and ip checksum offload features of nics.
|
||||
- Field introduced in 17.1.14, 17.2.5.
|
||||
- Field introduced in 17.1.14, 17.2.5, 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.5"
|
||||
type: bool
|
||||
@@ -171,15 +237,22 @@ options:
|
||||
description:
|
||||
- Disable generic receive offload (gro) in dpdk poll-mode driver packet receive path.
|
||||
- Gro is on by default on nics that do not support lro (large receive offload) or do not gain performance boost from lro.
|
||||
- Field introduced in 17.2.5.
|
||||
- Field introduced in 17.2.5, 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.5"
|
||||
type: bool
|
||||
disable_se_memory_check:
|
||||
description:
|
||||
- If set, disable the config memory check done in service engine.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
disable_tso:
|
||||
description:
|
||||
- Disable tcp segmentation offload (tso) in dpdk poll-mode driver packet transmit path.
|
||||
- Tso is on by default on nics that support it.
|
||||
- Field introduced in 17.2.5.
|
||||
- Field introduced in 17.2.5, 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.5"
|
||||
type: bool
|
||||
@@ -187,21 +260,35 @@ options:
|
||||
description:
|
||||
- Amount of disk space for each of the service engine virtual machines.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10.
|
||||
- Units(GB).
|
||||
distribute_load_active_standby:
|
||||
description:
|
||||
- Use both the active and standby service engines for virtual service placement in the legacy active standby ha mode.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
distribute_queues:
|
||||
description:
|
||||
- Distributes queue ownership among cores so multiple cores handle dispatcher duties.
|
||||
- Field introduced in 17.2.8.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
enable_hsm_priming:
|
||||
description:
|
||||
- (this is a beta feature).
|
||||
- Enable hsm key priming.
|
||||
- If enabled, key handles on the hsm will be synced to se before processing client connections.
|
||||
- Field introduced in 17.2.7.
|
||||
- Field introduced in 17.2.7, 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.6"
|
||||
type: bool
|
||||
enable_multi_lb:
|
||||
description:
|
||||
- Applicable only for azure cloud with basic sku lb.
|
||||
- If set, additional azure lbs will be automatically created if resources in existing lb are exhausted.
|
||||
- Field introduced in 17.2.10, 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
enable_routing:
|
||||
description:
|
||||
- Enable routing for this serviceenginegroup .
|
||||
@@ -218,6 +305,16 @@ options:
|
||||
- Use virtual mac address for interfaces on which floating interface ips are placed.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
ephemeral_portrange_end:
|
||||
description:
|
||||
- End local ephemeral port number for outbound connections.
|
||||
- Field introduced in 17.2.13, 18.1.5, 18.2.1.
|
||||
version_added: "2.9"
|
||||
ephemeral_portrange_start:
|
||||
description:
|
||||
- Start local ephemeral port number for outbound connections.
|
||||
- Field introduced in 17.2.13, 18.1.5, 18.2.1.
|
||||
version_added: "2.9"
|
||||
extra_config_multiplier:
|
||||
description:
|
||||
- Multiplier for extra config to support large vs/pool config.
|
||||
@@ -227,7 +324,6 @@ options:
|
||||
- Extra config memory to support large geo db configuration.
|
||||
- Field introduced in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
- Units(MB).
|
||||
floating_intf_ip:
|
||||
description:
|
||||
- If serviceenginegroup is configured for legacy 1+1 active standby ha mode, floating ip's will be advertised only by the active se in the pair.
|
||||
@@ -244,6 +340,12 @@ options:
|
||||
- Field introduced in 17.2.5.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.5"
|
||||
free_list_size:
|
||||
description:
|
||||
- Number of entries in the free list.
|
||||
- Field introduced in 17.2.10, 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1024.
|
||||
version_added: "2.9"
|
||||
ha_mode:
|
||||
description:
|
||||
- High availability mode for all the virtual services using this service engine group.
|
||||
@@ -252,6 +354,13 @@ options:
|
||||
hardwaresecuritymodulegroup_ref:
|
||||
description:
|
||||
- It is a reference to an object of type hardwaresecuritymodulegroup.
|
||||
heap_minimum_config_memory:
|
||||
description:
|
||||
- Minimum required heap memory to apply any configuration.
|
||||
- Allowed values are 0-100.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 8.
|
||||
version_added: "2.9"
|
||||
hm_on_standby:
|
||||
description:
|
||||
- Enable active health monitoring from the standby se for all placed virtual services.
|
||||
@@ -288,7 +397,6 @@ options:
|
||||
- Ignore rtt samples if it is above threshold.
|
||||
- Field introduced in 17.1.6,17.2.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 5000.
|
||||
- Units(MILLISECONDS).
|
||||
version_added: "2.5"
|
||||
ingress_access_data:
|
||||
description:
|
||||
@@ -306,7 +414,7 @@ options:
|
||||
version_added: "2.5"
|
||||
instance_flavor:
|
||||
description:
|
||||
- Instance/flavor type for se instance.
|
||||
- Instance/flavor name for se instance.
|
||||
iptables:
|
||||
description:
|
||||
- Iptable rules.
|
||||
@@ -325,7 +433,7 @@ options:
|
||||
license_type:
|
||||
description:
|
||||
- If no license type is specified then default license enforcement for the cloud type is chosen.
|
||||
- Enum options - LIC_BACKEND_SERVERS, LIC_SOCKETS, LIC_CORES, LIC_HOSTS, LIC_SE_BANDWIDTH.
|
||||
- Enum options - LIC_BACKEND_SERVERS, LIC_SOCKETS, LIC_CORES, LIC_HOSTS, LIC_SE_BANDWIDTH, LIC_METERED_SE_BANDWIDTH.
|
||||
- Field introduced in 17.2.5.
|
||||
version_added: "2.5"
|
||||
log_disksz:
|
||||
@@ -333,14 +441,32 @@ options:
|
||||
- Maximum disk capacity (in mb) to be allocated to an se.
|
||||
- This is exclusively used for debug and log data.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10000.
|
||||
- Units(MB).
|
||||
max_cpu_usage:
|
||||
description:
|
||||
- When cpu usage on an se exceeds this threshold, virtual services hosted on this se may be rebalanced to other ses to reduce load.
|
||||
- A new se may be created as part of this process.
|
||||
- Allowed values are 40-90.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 80.
|
||||
- Units(PERCENT).
|
||||
max_memory_per_mempool:
|
||||
description:
|
||||
- Max bytes that can be allocated in a single mempool.
|
||||
- Field introduced in 18.1.5.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 64.
|
||||
version_added: "2.9"
|
||||
max_public_ips_per_lb:
|
||||
description:
|
||||
- Applicable to azure platform only.
|
||||
- Maximum number of public ips per azure lb.
|
||||
- Field introduced in 17.2.12, 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 30.
|
||||
version_added: "2.9"
|
||||
max_rules_per_lb:
|
||||
description:
|
||||
- Applicable to azure platform only.
|
||||
- Maximum number of rules per azure lb.
|
||||
- Field introduced in 17.2.12, 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 150.
|
||||
version_added: "2.9"
|
||||
max_scaleout_per_vs:
|
||||
description:
|
||||
- Maximum number of active service engines for the virtual service.
|
||||
@@ -362,6 +488,13 @@ options:
|
||||
- Boolean flag to set mem_reserve.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
type: bool
|
||||
memory_for_config_update:
|
||||
description:
|
||||
- Indicates the percent of memory reserved for config updates.
|
||||
- Allowed values are 0-100.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 15.
|
||||
version_added: "2.9"
|
||||
memory_per_se:
|
||||
description:
|
||||
- Amount of memory for each of the service engine virtual machines.
|
||||
@@ -379,12 +512,39 @@ options:
|
||||
- After consolidation, unused service engines may then be eligible for deletion.
|
||||
- Allowed values are 20-60.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 30.
|
||||
- Units(PERCENT).
|
||||
min_scaleout_per_vs:
|
||||
description:
|
||||
- Minimum number of active service engines for the virtual service.
|
||||
- Allowed values are 1-64.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
min_se:
|
||||
description:
|
||||
- Minimum number of services engines in this group (relevant for se autorebalance only).
|
||||
- Allowed values are 0-1000.
|
||||
- Field introduced in 17.2.13,18.1.3,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
version_added: "2.9"
|
||||
minimum_connection_memory:
|
||||
description:
|
||||
- Indicates the percent of memory reserved for connections.
|
||||
- Allowed values are 0-100.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 20.
|
||||
version_added: "2.9"
|
||||
minimum_required_config_memory:
|
||||
description:
|
||||
- Required available config memory to apply any configuration.
|
||||
- Allowed values are 0-90.
|
||||
- Field deprecated in 18.1.2.
|
||||
- Field introduced in 18.1.1.
|
||||
version_added: "2.9"
|
||||
n_log_streaming_threads:
|
||||
description:
|
||||
- Number of threads to use for log streaming.
|
||||
- Allowed values are 1-100.
|
||||
- Field introduced in 17.2.12, 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
version_added: "2.9"
|
||||
name:
|
||||
description:
|
||||
- Name of the object.
|
||||
@@ -396,7 +556,14 @@ options:
|
||||
- Set it to zero (0) to disable throttling.
|
||||
- Field introduced in 17.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 100.
|
||||
- Units(PER_SECOND).
|
||||
num_dispatcher_cores:
|
||||
description:
|
||||
- Number of dispatcher cores (0,1,2,4,8 or 16).
|
||||
- If set to 0, then number of dispatcher cores is deduced automatically.
|
||||
- Allowed values are 0,1,2,4,8,16.
|
||||
- Field introduced in 17.2.12, 18.1.3, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
num_flow_cores_sum_changes_to_ignore:
|
||||
description:
|
||||
- Number of changes in num flow cores sum to ignore.
|
||||
@@ -432,6 +599,13 @@ options:
|
||||
realtime_se_metrics:
|
||||
description:
|
||||
- Enable or disable real time se metrics.
|
||||
reboot_on_stop:
|
||||
description:
|
||||
- Reboot the system if the se is stopped.
|
||||
- Field introduced in 17.2.16,18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
se_bandwidth_type:
|
||||
description:
|
||||
- Select the se bandwidth for the bandwidth license.
|
||||
@@ -445,10 +619,31 @@ options:
|
||||
- If this value is set to 0, controller will never delete any ses and administrator has to manually cleanup unused ses.
|
||||
- Allowed values are 0-525600.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 120.
|
||||
- Units(MIN).
|
||||
se_dos_profile:
|
||||
description:
|
||||
- Dosthresholdprofile settings for serviceenginegroup.
|
||||
se_dpdk_pmd:
|
||||
description:
|
||||
- Determines if dpdk pool mode driver should be used or not 0 automatically determine based on hypervisor/nic type 1 unconditionally use dpdk
|
||||
- poll mode driver 2 don't use dpdk poll mode driver.
|
||||
- Allowed values are 0-2.
|
||||
- Field introduced in 18.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
se_flow_probe_retries:
|
||||
description:
|
||||
- Flow probe retry count if no replies are received.
|
||||
- Allowed values are 0-5.
|
||||
- Field introduced in 18.1.4, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 2.
|
||||
version_added: "2.9"
|
||||
se_flow_probe_timer:
|
||||
description:
|
||||
- Timeout in milliseconds for flow probe entries.
|
||||
- Allowed values are 10-200.
|
||||
- Field introduced in 18.1.4, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 100.
|
||||
version_added: "2.9"
|
||||
se_ipc_udp_port:
|
||||
description:
|
||||
- Udp port for se_dp ipc in docker bridge mode.
|
||||
@@ -459,6 +654,33 @@ options:
|
||||
description:
|
||||
- Prefix to use for virtual machine name of service engines.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as Avi.
|
||||
se_pcap_lookahead:
|
||||
description:
|
||||
- Enables lookahead mode of packet receive in pcap mode.
|
||||
- Introduced to overcome an issue with hv_netvsc driver.
|
||||
- Lookahead mode attempts to ensure that application and kernel's view of the receive rings are consistent.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
se_pcap_reinit_frequency:
|
||||
description:
|
||||
- Frequency in seconds at which periodically a pcap reinit check is triggered.
|
||||
- May be used in conjunction with the configuration pcap_reinit_threshold.
|
||||
- (valid range 15 mins - 12 hours, 0 - disables).
|
||||
- Allowed values are 900-43200.
|
||||
- Special values are 0- 'disable'.
|
||||
- Field introduced in 17.2.13, 18.1.3, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
se_pcap_reinit_threshold:
|
||||
description:
|
||||
- Threshold for input packet receive errors in pcap mode exceeding which a pcap reinit is triggered.
|
||||
- If not set, an unconditional reinit is performed.
|
||||
- This value is checked every pcap_reinit_frequency interval.
|
||||
- Field introduced in 17.2.13, 18.1.3, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
se_probe_port:
|
||||
description:
|
||||
- Tcp port on se where echo service will be run.
|
||||
@@ -471,6 +693,15 @@ options:
|
||||
- Field introduced in 17.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1501.
|
||||
version_added: "2.4"
|
||||
se_routing:
|
||||
description:
|
||||
- Enable routing via service engine datapath.
|
||||
- When disabled, routing is done by the linux kernel.
|
||||
- Ip routing needs to be enabled in service engine group for se routing to be effective.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
se_sb_dedicated_core:
|
||||
description:
|
||||
- Sideband traffic will be handled by a dedicated core.
|
||||
@@ -490,11 +721,17 @@ options:
|
||||
- Multiplier for se threads based on vcpu.
|
||||
- Allowed values are 1-10.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
se_tracert_port_range:
|
||||
description:
|
||||
- Traceroute port range.
|
||||
- Field introduced in 17.2.8.
|
||||
version_added: "2.9"
|
||||
se_tunnel_mode:
|
||||
description:
|
||||
- Determines if dsr from secondary se is active or not 0 automatically determine based on hypervisor type.
|
||||
- 1 disable dsr unconditionally.
|
||||
- ~[0,1] enable dsr unconditionally.
|
||||
- 2 enable dsr unconditionally.
|
||||
- Allowed values are 0-2.
|
||||
- Field introduced in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
se_tunnel_udp_port:
|
||||
@@ -504,29 +741,57 @@ options:
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1550.
|
||||
se_udp_encap_ipc:
|
||||
description:
|
||||
- Determines if se-se ipc messages are encapsulated in an udp header 0 automatically determine based on hypervisor type.
|
||||
- Determines if se-se ipc messages are encapsulated in a udp header 0 automatically determine based on hypervisor type.
|
||||
- 1 use udp encap unconditionally.
|
||||
- ~[0,1] don't use udp encap.
|
||||
- Allowed values are 0-1.
|
||||
- Field introduced in 17.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.4"
|
||||
se_use_dpdk:
|
||||
description:
|
||||
- Determines if dpdk library should be used or not 0 automatically determine based on hypervisor type 1 use dpdk if pcap is not enabled 2
|
||||
- don't use dpdk.
|
||||
- Allowed values are 0-2.
|
||||
- Field introduced in 18.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
se_vs_hb_max_pkts_in_batch:
|
||||
description:
|
||||
- Maximum number of aggregated vs heartbeat packets to send in a batch.
|
||||
- Allowed values are 1-256.
|
||||
- Field introduced in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 8.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 64.
|
||||
se_vs_hb_max_vs_in_pkt:
|
||||
description:
|
||||
- Maximum number of virtualservices for which heartbeat messages are aggregated in one packet.
|
||||
- Allowed values are 1-1024.
|
||||
- Field introduced in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 256.
|
||||
self_se_election:
|
||||
description:
|
||||
- Enable ses to elect a primary amongst themselves in the absence of a connectivity to controller.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
service_ip6_subnets:
|
||||
description:
|
||||
- Ipv6 subnets assigned to the se group.
|
||||
- Required for vs group placement.
|
||||
- Field introduced in 18.1.1.
|
||||
version_added: "2.9"
|
||||
service_ip_subnets:
|
||||
description:
|
||||
- Subnets assigned to the se group.
|
||||
- Required for vs group placement.
|
||||
- Field introduced in 17.1.1.
|
||||
shm_minimum_config_memory:
|
||||
description:
|
||||
- Minimum required shared memory to apply any configuration.
|
||||
- Allowed values are 0-100.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 4.
|
||||
version_added: "2.9"
|
||||
significant_log_throttle:
|
||||
description:
|
||||
- This setting limits the number of significant logs generated per second per core on this se.
|
||||
@@ -534,7 +799,14 @@ options:
|
||||
- Set it to zero (0) to disable throttling.
|
||||
- Field introduced in 17.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 100.
|
||||
- Units(PER_SECOND).
|
||||
ssl_preprocess_sni_hostname:
|
||||
description:
|
||||
- (beta) preprocess ssl client hello for sni hostname extension.if set to true, this will apply sni child's ssl protocol(s), if they are different
|
||||
- from sni parent's allowed ssl protocol(s).
|
||||
- Field introduced in 17.2.12, 18.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as True.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
@@ -546,10 +818,17 @@ options:
|
||||
- Set it to zero (0) to disable throttling.
|
||||
- Field introduced in 17.1.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 100.
|
||||
- Units(PER_SECOND).
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
use_standard_alb:
|
||||
description:
|
||||
- Use standard sku azure load balancer.
|
||||
- By default cloud level flag is set.
|
||||
- If not set, it inherits/uses the use_standard_alb flag from the cloud.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
uuid:
|
||||
description:
|
||||
- Unique object identifier of the object.
|
||||
@@ -579,6 +858,11 @@ options:
|
||||
description:
|
||||
- Number of vcpus for each of the service engine virtual machines.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1.
|
||||
vip_asg:
|
||||
description:
|
||||
- When vip_asg is set, vip configuration will be managed by avi.user will be able to configure vip_asg or vips individually at the time of create.
|
||||
- Field introduced in 17.2.12, 18.1.2.
|
||||
version_added: "2.9"
|
||||
vs_host_redundancy:
|
||||
description:
|
||||
- Ensure primary and secondary service engines are deployed on different physical hosts.
|
||||
@@ -588,22 +872,64 @@ options:
|
||||
description:
|
||||
- Time to wait for the scaled in se to drain existing flows before marking the scalein done.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 30.
|
||||
- Units(SEC).
|
||||
vs_scalein_timeout_for_upgrade:
|
||||
description:
|
||||
- During se upgrade, time to wait for the scaled-in se to drain existing flows before marking the scalein done.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 30.
|
||||
- Units(SEC).
|
||||
vs_scaleout_timeout:
|
||||
description:
|
||||
- Time to wait for the scaled out se to become ready before marking the scaleout done.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 30.
|
||||
- Units(SEC).
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 600.
|
||||
vs_se_scaleout_additional_wait_time:
|
||||
description:
|
||||
- Wait time for sending scaleout ready notification after virtual service is marked up.
|
||||
- In certain deployments, there may be an additional delay to accept traffic.
|
||||
- For example, for bgp, some time is needed for route advertisement.
|
||||
- Allowed values are 0-20.
|
||||
- Field introduced in 18.1.5,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
vs_se_scaleout_ready_timeout:
|
||||
description:
|
||||
- Timeout in seconds for service engine to sendscaleout ready notification of a virtual service.
|
||||
- Allowed values are 0-60.
|
||||
- Field introduced in 18.1.5,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 25.
|
||||
version_added: "2.9"
|
||||
vs_switchover_timeout:
|
||||
description:
|
||||
- During se upgrade in a legacy active/standby segroup, time to wait for the new primary se to accept flows before marking the switchover done.
|
||||
- Field introduced in 17.2.13,18.1.4,18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 300.
|
||||
version_added: "2.9"
|
||||
vss_placement:
|
||||
description:
|
||||
- If set, virtual services will be placed on only a subset of the cores of an se.
|
||||
- Parameters to place virtual services on only a subset of the cores of an se.
|
||||
- Field introduced in 17.2.5.
|
||||
version_added: "2.5"
|
||||
vss_placement_enabled:
|
||||
description:
|
||||
- If set, virtual services will be placed on only a subset of the cores of an se.
|
||||
- Field introduced in 18.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
waf_learning_interval:
|
||||
description:
|
||||
- Frequency with which se publishes waf learning.
|
||||
- Allowed values are 1-43200.
|
||||
- Field deprecated in 18.2.3.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 10.
|
||||
version_added: "2.9"
|
||||
waf_learning_memory:
|
||||
description:
|
||||
- Amount of memory reserved on se for waf learning.
|
||||
- This can be atmost 5% of se memory.
|
||||
- Field deprecated in 18.2.3.
|
||||
- Field introduced in 18.1.2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 0.
|
||||
version_added: "2.9"
|
||||
waf_mempool:
|
||||
description:
|
||||
- Enable memory pool for waf.
|
||||
@@ -616,7 +942,6 @@ options:
|
||||
- Memory pool size used for waf.
|
||||
- Field introduced in 17.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 64.
|
||||
- Units(KB).
|
||||
version_added: "2.5"
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
@@ -642,7 +967,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -654,11 +979,15 @@ def main():
|
||||
avi_api_update_method=dict(default='put',
|
||||
choices=['put', 'patch']),
|
||||
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
|
||||
accelerated_networking=dict(type='bool',),
|
||||
active_standby=dict(type='bool',),
|
||||
additional_config_memory=dict(type='int',),
|
||||
advertise_backend_networks=dict(type='bool',),
|
||||
aggressive_failure_detection=dict(type='bool',),
|
||||
algo=dict(type='str',),
|
||||
allow_burst=dict(type='bool',),
|
||||
app_cache_percent=dict(type='int',),
|
||||
app_learning_memory_percent=dict(type='int',),
|
||||
archive_shm_limit=dict(type='int',),
|
||||
async_ssl=dict(type='bool',),
|
||||
async_ssl_threads=dict(type='int',),
|
||||
@@ -667,32 +996,44 @@ def main():
|
||||
auto_rebalance_criteria=dict(type='list',),
|
||||
auto_rebalance_interval=dict(type='int',),
|
||||
auto_redistribute_active_standby_load=dict(type='bool',),
|
||||
bgp_state_update_interval=dict(type='int',),
|
||||
buffer_se=dict(type='int',),
|
||||
cloud_ref=dict(type='str',),
|
||||
config_debugs_on_all_cores=dict(type='bool',),
|
||||
connection_memory_percentage=dict(type='int',),
|
||||
cpu_reserve=dict(type='bool',),
|
||||
cpu_socket_affinity=dict(type='bool',),
|
||||
custom_securitygroups_data=dict(type='list',),
|
||||
custom_securitygroups_mgmt=dict(type='list',),
|
||||
custom_tag=dict(type='list',),
|
||||
data_network_id=dict(type='str',),
|
||||
datascript_timeout=dict(type='int',),
|
||||
dedicated_dispatcher_core=dict(type='bool',),
|
||||
description=dict(type='str',),
|
||||
disable_avi_securitygroups=dict(type='bool',),
|
||||
disable_csum_offloads=dict(type='bool',),
|
||||
disable_gro=dict(type='bool',),
|
||||
disable_se_memory_check=dict(type='bool',),
|
||||
disable_tso=dict(type='bool',),
|
||||
disk_per_se=dict(type='int',),
|
||||
distribute_load_active_standby=dict(type='bool',),
|
||||
distribute_queues=dict(type='bool',),
|
||||
enable_hsm_priming=dict(type='bool',),
|
||||
enable_multi_lb=dict(type='bool',),
|
||||
enable_routing=dict(type='bool',),
|
||||
enable_vip_on_all_interfaces=dict(type='bool',),
|
||||
enable_vmac=dict(type='bool',),
|
||||
ephemeral_portrange_end=dict(type='int',),
|
||||
ephemeral_portrange_start=dict(type='int',),
|
||||
extra_config_multiplier=dict(type='float',),
|
||||
extra_shared_config_memory=dict(type='int',),
|
||||
floating_intf_ip=dict(type='list',),
|
||||
floating_intf_ip_se_2=dict(type='list',),
|
||||
flow_table_new_syn_max_entries=dict(type='int',),
|
||||
free_list_size=dict(type='int',),
|
||||
ha_mode=dict(type='str',),
|
||||
hardwaresecuritymodulegroup_ref=dict(type='str',),
|
||||
heap_minimum_config_memory=dict(type='int',),
|
||||
hm_on_standby=dict(type='bool',),
|
||||
host_attribute_key=dict(type='str',),
|
||||
host_attribute_value=dict(type='str',),
|
||||
@@ -708,17 +1049,26 @@ def main():
|
||||
license_type=dict(type='str',),
|
||||
log_disksz=dict(type='int',),
|
||||
max_cpu_usage=dict(type='int',),
|
||||
max_memory_per_mempool=dict(type='int',),
|
||||
max_public_ips_per_lb=dict(type='int',),
|
||||
max_rules_per_lb=dict(type='int',),
|
||||
max_scaleout_per_vs=dict(type='int',),
|
||||
max_se=dict(type='int',),
|
||||
max_vs_per_se=dict(type='int',),
|
||||
mem_reserve=dict(type='bool',),
|
||||
memory_for_config_update=dict(type='int',),
|
||||
memory_per_se=dict(type='int',),
|
||||
mgmt_network_ref=dict(type='str',),
|
||||
mgmt_subnet=dict(type='dict',),
|
||||
min_cpu_usage=dict(type='int',),
|
||||
min_scaleout_per_vs=dict(type='int',),
|
||||
min_se=dict(type='int',),
|
||||
minimum_connection_memory=dict(type='int',),
|
||||
minimum_required_config_memory=dict(type='int',),
|
||||
n_log_streaming_threads=dict(type='int',),
|
||||
name=dict(type='str', required=True),
|
||||
non_significant_log_throttle=dict(type='int',),
|
||||
num_dispatcher_cores=dict(type='int',),
|
||||
num_flow_cores_sum_changes_to_ignore=dict(type='int',),
|
||||
openstack_availability_zone=dict(type='str',),
|
||||
openstack_availability_zones=dict(type='list',),
|
||||
@@ -728,26 +1078,41 @@ def main():
|
||||
per_app=dict(type='bool',),
|
||||
placement_mode=dict(type='str',),
|
||||
realtime_se_metrics=dict(type='dict',),
|
||||
reboot_on_stop=dict(type='bool',),
|
||||
se_bandwidth_type=dict(type='str',),
|
||||
se_deprovision_delay=dict(type='int',),
|
||||
se_dos_profile=dict(type='dict',),
|
||||
se_dpdk_pmd=dict(type='int',),
|
||||
se_flow_probe_retries=dict(type='int',),
|
||||
se_flow_probe_timer=dict(type='int',),
|
||||
se_ipc_udp_port=dict(type='int',),
|
||||
se_name_prefix=dict(type='str',),
|
||||
se_pcap_lookahead=dict(type='bool',),
|
||||
se_pcap_reinit_frequency=dict(type='int',),
|
||||
se_pcap_reinit_threshold=dict(type='int',),
|
||||
se_probe_port=dict(type='int',),
|
||||
se_remote_punt_udp_port=dict(type='int',),
|
||||
se_routing=dict(type='bool',),
|
||||
se_sb_dedicated_core=dict(type='bool',),
|
||||
se_sb_threads=dict(type='int',),
|
||||
se_thread_multiplier=dict(type='int',),
|
||||
se_tracert_port_range=dict(type='dict',),
|
||||
se_tunnel_mode=dict(type='int',),
|
||||
se_tunnel_udp_port=dict(type='int',),
|
||||
se_udp_encap_ipc=dict(type='int',),
|
||||
se_use_dpdk=dict(type='int',),
|
||||
se_vs_hb_max_pkts_in_batch=dict(type='int',),
|
||||
se_vs_hb_max_vs_in_pkt=dict(type='int',),
|
||||
self_se_election=dict(type='bool',),
|
||||
service_ip6_subnets=dict(type='list',),
|
||||
service_ip_subnets=dict(type='list',),
|
||||
shm_minimum_config_memory=dict(type='int',),
|
||||
significant_log_throttle=dict(type='int',),
|
||||
ssl_preprocess_sni_hostname=dict(type='bool',),
|
||||
tenant_ref=dict(type='str',),
|
||||
udf_log_throttle=dict(type='int',),
|
||||
url=dict(type='str',),
|
||||
use_standard_alb=dict(type='bool',),
|
||||
uuid=dict(type='str',),
|
||||
vcenter_clusters=dict(type='dict',),
|
||||
vcenter_datastore_mode=dict(type='str',),
|
||||
@@ -756,11 +1121,18 @@ def main():
|
||||
vcenter_folder=dict(type='str',),
|
||||
vcenter_hosts=dict(type='dict',),
|
||||
vcpus_per_se=dict(type='int',),
|
||||
vip_asg=dict(type='dict',),
|
||||
vs_host_redundancy=dict(type='bool',),
|
||||
vs_scalein_timeout=dict(type='int',),
|
||||
vs_scalein_timeout_for_upgrade=dict(type='int',),
|
||||
vs_scaleout_timeout=dict(type='int',),
|
||||
vs_se_scaleout_additional_wait_time=dict(type='int',),
|
||||
vs_se_scaleout_ready_timeout=dict(type='int',),
|
||||
vs_switchover_timeout=dict(type='int',),
|
||||
vss_placement=dict(type='dict',),
|
||||
vss_placement_enabled=dict(type='bool',),
|
||||
waf_learning_interval=dict(type='int',),
|
||||
waf_learning_memory=dict(type='int',),
|
||||
waf_mempool=dict(type='bool',),
|
||||
waf_mempool_size=dict(type='int',),
|
||||
)
|
||||
@@ -769,7 +1141,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'serviceenginegroup',
|
||||
set([]))
|
||||
|
||||
@@ -81,7 +81,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -104,7 +104,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'snmptrapprofile',
|
||||
set([]))
|
||||
|
||||
@@ -49,6 +49,13 @@ options:
|
||||
description:
|
||||
- Sslcertificate settings for sslkeyandcertificate.
|
||||
required: true
|
||||
certificate_base64:
|
||||
description:
|
||||
- States if the certificate is base64 encoded.
|
||||
- Field introduced in 18.1.2, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
certificate_management_profile_ref:
|
||||
description:
|
||||
- It is a reference to an object of type certificatemanagementprofile.
|
||||
@@ -66,15 +73,34 @@ options:
|
||||
description:
|
||||
- Name of the encrypted private key (e.g.
|
||||
- Those generated by an hsm such as thales nshield).
|
||||
format:
|
||||
description:
|
||||
- Format of the key/certificate file.
|
||||
- Enum options - SSL_PEM, SSL_PKCS12.
|
||||
- Field introduced in 18.1.2, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as SSL_PEM.
|
||||
version_added: "2.9"
|
||||
hardwaresecuritymodulegroup_ref:
|
||||
description:
|
||||
- It is a reference to an object of type hardwaresecuritymodulegroup.
|
||||
key:
|
||||
description:
|
||||
- Private key.
|
||||
key_base64:
|
||||
description:
|
||||
- States if the private key is base64 encoded.
|
||||
- Field introduced in 18.1.2, 18.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
key_params:
|
||||
description:
|
||||
- Sslkeyparams settings for sslkeyandcertificate.
|
||||
key_passphrase:
|
||||
description:
|
||||
- Passphrase used to encrypt the private key.
|
||||
- Field introduced in 18.1.2, 18.2.1.
|
||||
version_added: "2.9"
|
||||
name:
|
||||
description:
|
||||
- Name of the object.
|
||||
@@ -89,7 +115,6 @@ options:
|
||||
type:
|
||||
description:
|
||||
- Enum options - ssl_certificate_type_virtualservice, ssl_certificate_type_system, ssl_certificate_type_ca.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as SSL_CERTIFICATE_TYPE_VIRTUALSERVICE.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
@@ -130,7 +155,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -144,14 +169,18 @@ def main():
|
||||
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',),
|
||||
@@ -164,10 +193,10 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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']))
|
||||
set(['key_passphrase', 'key']))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -88,9 +88,8 @@ options:
|
||||
- Sslrating settings for sslprofile.
|
||||
ssl_session_timeout:
|
||||
description:
|
||||
- The amount of time before an ssl session expires.
|
||||
- The amount of time in seconds before an ssl session expires.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 86400.
|
||||
- Units(SEC).
|
||||
tags:
|
||||
description:
|
||||
- List of tag.
|
||||
@@ -169,7 +168,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -203,7 +202,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -102,7 +102,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -127,7 +127,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'stringgroup',
|
||||
set([]))
|
||||
|
||||
@@ -87,6 +87,11 @@ options:
|
||||
proxy_configuration:
|
||||
description:
|
||||
- Proxyconfiguration settings for systemconfiguration.
|
||||
secure_channel_configuration:
|
||||
description:
|
||||
- Configure secure channel properties.
|
||||
- Field introduced in 18.1.4, 18.2.1.
|
||||
version_added: "2.9"
|
||||
snmp_configuration:
|
||||
description:
|
||||
- Snmpconfiguration settings for systemconfiguration.
|
||||
@@ -94,18 +99,23 @@ options:
|
||||
description:
|
||||
- Allowed ciphers list for ssh to the management interface on the controller and service engines.
|
||||
- If this is not specified, all the default ciphers are allowed.
|
||||
- Ssh -q cipher provides the list of default ciphers supported.
|
||||
ssh_hmacs:
|
||||
description:
|
||||
- Allowed hmac list for ssh to the management interface on the controller and service engines.
|
||||
- If this is not specified, all the default hmacs are allowed.
|
||||
- Ssh -q mac provides the list of default hmacs supported.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
uuid:
|
||||
description:
|
||||
- Unique object identifier of the object.
|
||||
welcome_workflow_complete:
|
||||
description:
|
||||
- This flag is set once the initial controller setup workflow is complete.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
@@ -130,7 +140,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -154,18 +164,20 @@ def main():
|
||||
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) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -95,7 +95,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -120,7 +120,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'tenant',
|
||||
set([]))
|
||||
|
||||
@@ -94,7 +94,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -119,7 +119,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'trafficcloneprofile',
|
||||
set([]))
|
||||
|
||||
@@ -23,16 +23,15 @@
|
||||
#
|
||||
"""
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: avi_useraccount
|
||||
author: Chaitanya Deshpande (@chaitanyaavi) <chaitanya.deshpande@avinetworks.com>
|
||||
|
||||
short_description: Avi UserAccount Module
|
||||
description:
|
||||
- This module can be used for updating the password of a user.
|
||||
@@ -43,13 +42,17 @@ options:
|
||||
old_password:
|
||||
description:
|
||||
- Old password for update password or default password for bootstrap.
|
||||
force_change:
|
||||
description:
|
||||
- If specifically set to true then old password is tried first for controller and then the new password is
|
||||
tried. If not specified this flag then the new password is tried first.
|
||||
version_added: "2.9"
|
||||
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
|
||||
- name: Update user password
|
||||
avi_useraccount:
|
||||
controller: ""
|
||||
@@ -57,11 +60,13 @@ EXAMPLES = '''
|
||||
password: new_password
|
||||
old_password: ""
|
||||
api_version: ""
|
||||
force_change: false
|
||||
|
||||
- name: Update user password using avi_credentials
|
||||
avi_useraccount:
|
||||
avi_credentials: ""
|
||||
old_password: ""
|
||||
force_change: false
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
@@ -78,56 +83,70 @@ from copy import deepcopy
|
||||
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, ansible_return, HAS_AVI)
|
||||
from avi.sdk.avi_api import ApiSession, AviCredentials
|
||||
from avi.sdk.utils.ansible_utils import avi_obj_cmp, cleanup_absent_fields
|
||||
|
||||
avi_common_argument_spec, ansible_return, avi_obj_cmp,
|
||||
cleanup_absent_fields, HAS_AVI)
|
||||
from ansible.module_utils.network.avi.avi_api import (
|
||||
ApiSession, AviCredentials)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
|
||||
def main():
|
||||
argument_specs = dict(
|
||||
old_password=dict(type='str', required=True, no_log=True)
|
||||
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) is not installed. '
|
||||
'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)
|
||||
password_updated = False
|
||||
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=api_creds.password, timeout=api_creds.timeout,
|
||||
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)
|
||||
password_changed = True
|
||||
return ansible_return(module, None, False, req=data)
|
||||
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=old_password,
|
||||
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)
|
||||
rsp = api.put('useraccount', data=data)
|
||||
if rsp:
|
||||
return ansible_return(module, rsp, True, req=data)
|
||||
return module.exit_json(changed=False, obj=data)
|
||||
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)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -47,13 +47,11 @@ options:
|
||||
- Lock timeout period (in minutes).
|
||||
- Default is 30 minutes.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 30.
|
||||
- Units(MIN).
|
||||
credentials_timeout_threshold:
|
||||
description:
|
||||
- The time period after which credentials expire.
|
||||
- Default is 180 days.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 180.
|
||||
- Units(DAYS).
|
||||
max_concurrent_sessions:
|
||||
description:
|
||||
- Maximum number of concurrent sessions allowed.
|
||||
@@ -103,7 +101,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -129,7 +127,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -52,6 +52,14 @@ options:
|
||||
- Redistribution is based on the auto redistribute property of the serviceenginegroup.
|
||||
- Enum options - ACTIVE_STANDBY_SE_1, ACTIVE_STANDBY_SE_2.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as ACTIVE_STANDBY_SE_1.
|
||||
allow_invalid_client_cert:
|
||||
description:
|
||||
- Process request even if invalid client certificate is presented.
|
||||
- Datascript apis need to be used for processing of such requests.
|
||||
- Field introduced in 18.2.3.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
analytics_policy:
|
||||
description:
|
||||
- Determines analytics settings for the application.
|
||||
@@ -59,6 +67,13 @@ options:
|
||||
description:
|
||||
- Specifies settings related to analytics.
|
||||
- It is a reference to an object of type analyticsprofile.
|
||||
apic_contract_graph:
|
||||
description:
|
||||
- The name of the contract/graph associated with the virtual service.
|
||||
- Should be in the <contract name> <graph name> format.
|
||||
- This is applicable only for service integration mode with cisco apic controller.
|
||||
- Field introduced in 17.2.12,18.1.2.
|
||||
version_added: "2.9"
|
||||
application_profile_ref:
|
||||
description:
|
||||
- Enable application layer specific features for the virtual service.
|
||||
@@ -67,13 +82,11 @@ options:
|
||||
description:
|
||||
- Auto-allocate floating/elastic ip from the cloud infrastructure.
|
||||
- Field deprecated in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
auto_allocate_ip:
|
||||
description:
|
||||
- Auto-allocate vip from the provided subnet.
|
||||
- Field deprecated in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
availability_zone:
|
||||
description:
|
||||
@@ -83,14 +96,19 @@ options:
|
||||
description:
|
||||
- (internal-use) fip allocated by avi in the cloud infrastructure.
|
||||
- Field deprecated in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
avi_allocated_vip:
|
||||
description:
|
||||
- (internal-use) vip allocated by avi in the cloud infrastructure.
|
||||
- Field deprecated in 17.1.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as False.
|
||||
type: bool
|
||||
azure_availability_set:
|
||||
description:
|
||||
- (internal-use)applicable for azure only.
|
||||
- Azure availability set to which this vs is associated.
|
||||
- Internally set by the cloud connector.
|
||||
- Field introduced in 17.2.12, 18.1.2.
|
||||
version_added: "2.9"
|
||||
bulk_sync_kvcache:
|
||||
description:
|
||||
- (this is a beta feature).
|
||||
@@ -121,7 +139,7 @@ options:
|
||||
cloud_type:
|
||||
description:
|
||||
- Enum options - cloud_none, cloud_vcenter, cloud_openstack, cloud_aws, cloud_vca, cloud_apic, cloud_mesos, cloud_linuxserver, cloud_docker_ucp,
|
||||
- cloud_rancher, cloud_oshift_k8s, cloud_azure.
|
||||
- cloud_rancher, cloud_oshift_k8s, cloud_azure, cloud_gcp.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as CLOUD_NONE.
|
||||
connections_rate_limit:
|
||||
description:
|
||||
@@ -259,6 +277,11 @@ options:
|
||||
description:
|
||||
- Microservice representing the virtual service.
|
||||
- It is a reference to an object of type microservice.
|
||||
min_pools_up:
|
||||
description:
|
||||
- Minimum number of up pools to mark vs up.
|
||||
- Field introduced in 18.2.1, 17.2.12.
|
||||
version_added: "2.9"
|
||||
name:
|
||||
description:
|
||||
- Name for the virtual service.
|
||||
@@ -304,6 +327,11 @@ options:
|
||||
requests_rate_limit:
|
||||
description:
|
||||
- Rate limit the incoming requests to this virtual service.
|
||||
saml_sp_config:
|
||||
description:
|
||||
- Application-specific saml config.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
scaleout_ecmp:
|
||||
description:
|
||||
- Disable re-distribution of flows across service engines for a virtual service.
|
||||
@@ -315,6 +343,13 @@ options:
|
||||
- The service engine group to use for this virtual service.
|
||||
- Moving to a new se group is disruptive to existing connections for this vs.
|
||||
- It is a reference to an object of type serviceenginegroup.
|
||||
security_policy_ref:
|
||||
description:
|
||||
- Security policy applied on the traffic of the virtual service.
|
||||
- This policy is used to perform security actions such as distributed denial of service (ddos) attack mitigation, etc.
|
||||
- It is a reference to an object of type securitypolicy.
|
||||
- Field introduced in 18.2.1.
|
||||
version_added: "2.9"
|
||||
server_network_profile_ref:
|
||||
description:
|
||||
- Determines the network settings profile for the server side of tcp proxied connections.
|
||||
@@ -355,11 +390,28 @@ options:
|
||||
description:
|
||||
- Determines the set of ssl versions and ciphers to accept for ssl/tls terminated connections.
|
||||
- It is a reference to an object of type sslprofile.
|
||||
ssl_profile_selectors:
|
||||
description:
|
||||
- Select ssl profile based on client ip address match.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
ssl_sess_cache_avg_size:
|
||||
description:
|
||||
- Expected number of ssl session cache entries (may be exceeded).
|
||||
- Allowed values are 1024-16383.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as 1024.
|
||||
sso_policy:
|
||||
description:
|
||||
- Client authentication and authorization policy for the virtualservice.
|
||||
- Field deprecated in 18.2.3.
|
||||
- Field introduced in 18.2.1.
|
||||
version_added: "2.9"
|
||||
sso_policy_ref:
|
||||
description:
|
||||
- The sso policy attached to the virtualservice.
|
||||
- It is a reference to an object of type ssopolicy.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
static_dns_records:
|
||||
description:
|
||||
- List of static dns records applied to this virtual service.
|
||||
@@ -376,6 +428,11 @@ options:
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
topology_policies:
|
||||
description:
|
||||
- Topology policies applied on the dns traffic of the virtual service based ongslb topology algorithm.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
traffic_clone_profile_ref:
|
||||
description:
|
||||
- Server network or list of servers for cloning traffic.
|
||||
@@ -436,6 +493,12 @@ options:
|
||||
vs_datascripts:
|
||||
description:
|
||||
- Datascripts applied on the data traffic of the virtual service.
|
||||
vsvip_cloud_config_cksum:
|
||||
description:
|
||||
- Checksum of cloud configuration for vsvip.
|
||||
- Internally set by cloud connector.
|
||||
- Field introduced in 17.2.9, 18.1.2.
|
||||
version_added: "2.9"
|
||||
vsvip_ref:
|
||||
description:
|
||||
- Mostly used during the creation of shared vs, this field refers to entities that can be shared across virtual services.
|
||||
@@ -492,7 +555,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -505,14 +568,17 @@ def main():
|
||||
choices=['put', 'patch']),
|
||||
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
|
||||
active_standby_se_tag=dict(type='str',),
|
||||
allow_invalid_client_cert=dict(type='bool',),
|
||||
analytics_policy=dict(type='dict',),
|
||||
analytics_profile_ref=dict(type='str',),
|
||||
apic_contract_graph=dict(type='str',),
|
||||
application_profile_ref=dict(type='str',),
|
||||
auto_allocate_floating_ip=dict(type='bool',),
|
||||
auto_allocate_ip=dict(type='bool',),
|
||||
availability_zone=dict(type='str',),
|
||||
avi_allocated_fip=dict(type='bool',),
|
||||
avi_allocated_vip=dict(type='bool',),
|
||||
azure_availability_set=dict(type='str',),
|
||||
bulk_sync_kvcache=dict(type='bool',),
|
||||
client_auth=dict(type='dict',),
|
||||
close_client_conn_on_config_update=dict(type='bool',),
|
||||
@@ -549,6 +615,7 @@ def main():
|
||||
limit_doser=dict(type='bool',),
|
||||
max_cps_per_client=dict(type='int',),
|
||||
microservice_ref=dict(type='str',),
|
||||
min_pools_up=dict(type='int',),
|
||||
name=dict(type='str', required=True),
|
||||
network_profile_ref=dict(type='str',),
|
||||
network_ref=dict(type='str',),
|
||||
@@ -560,8 +627,10 @@ def main():
|
||||
port_uuid=dict(type='str',),
|
||||
remove_listening_port_on_vs_down=dict(type='bool',),
|
||||
requests_rate_limit=dict(type='dict',),
|
||||
saml_sp_config=dict(type='dict',),
|
||||
scaleout_ecmp=dict(type='bool',),
|
||||
se_group_ref=dict(type='str',),
|
||||
security_policy_ref=dict(type='str',),
|
||||
server_network_profile_ref=dict(type='str',),
|
||||
service_metadata=dict(type='str',),
|
||||
service_pool_select=dict(type='list',),
|
||||
@@ -571,11 +640,15 @@ def main():
|
||||
sp_pool_refs=dict(type='list',),
|
||||
ssl_key_and_certificate_refs=dict(type='list',),
|
||||
ssl_profile_ref=dict(type='str',),
|
||||
ssl_profile_selectors=dict(type='list',),
|
||||
ssl_sess_cache_avg_size=dict(type='int',),
|
||||
sso_policy=dict(type='dict',),
|
||||
sso_policy_ref=dict(type='str',),
|
||||
static_dns_records=dict(type='list',),
|
||||
subnet=dict(type='dict',),
|
||||
subnet_uuid=dict(type='str',),
|
||||
tenant_ref=dict(type='str',),
|
||||
topology_policies=dict(type='list',),
|
||||
traffic_clone_profile_ref=dict(type='str',),
|
||||
traffic_enabled=dict(type='bool',),
|
||||
type=dict(type='str',),
|
||||
@@ -588,6 +661,7 @@ def main():
|
||||
vip=dict(type='list',),
|
||||
vrf_context_ref=dict(type='str',),
|
||||
vs_datascripts=dict(type='list',),
|
||||
vsvip_cloud_config_cksum=dict(type='str',),
|
||||
vsvip_ref=dict(type='str',),
|
||||
waf_policy_ref=dict(type='str',),
|
||||
weight=dict(type='int',),
|
||||
@@ -597,7 +671,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'virtualservice',
|
||||
set([]))
|
||||
|
||||
@@ -107,7 +107,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -137,7 +137,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -69,6 +69,12 @@ options:
|
||||
description:
|
||||
- Uuid of pools that could be referred by vsdatascriptset objects.
|
||||
- It is a reference to an object of type pool.
|
||||
protocol_parser_refs:
|
||||
description:
|
||||
- List of protocol parsers that could be referred by vsdatascriptset objects.
|
||||
- It is a reference to an object of type protocolparser.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
string_group_refs:
|
||||
description:
|
||||
- Uuid of string groups that could be referred by vsdatascriptset objects.
|
||||
@@ -106,7 +112,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -125,6 +131,7 @@ def main():
|
||||
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',),
|
||||
@@ -135,7 +142,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -68,6 +68,14 @@ options:
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
use_standard_alb:
|
||||
description:
|
||||
- This overrides the cloud level default and needs to match the se group value in which it will be used if the se group use_standard_alb value is
|
||||
- set.
|
||||
- This is only used when fip is used for vs on azure cloud.
|
||||
- Field introduced in 18.2.3.
|
||||
version_added: "2.9"
|
||||
type: bool
|
||||
uuid:
|
||||
description:
|
||||
- Uuid of the vsvip object.
|
||||
@@ -82,6 +90,12 @@ options:
|
||||
- This is used to provide the isolation of the set of networks the application is attached to.
|
||||
- It is a reference to an object of type vrfcontext.
|
||||
- Field introduced in 17.1.1.
|
||||
vsvip_cloud_config_cksum:
|
||||
description:
|
||||
- Checksum of cloud configuration for vsvip.
|
||||
- Internally set by cloud connector.
|
||||
- Field introduced in 17.2.9, 18.1.2.
|
||||
version_added: "2.9"
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
@@ -106,7 +120,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -124,16 +138,18 @@ def main():
|
||||
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) is not installed. '
|
||||
'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([]))
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# @author: Gaurav Rastogi (grastogi@avinetworks.com)
|
||||
# Eric Anderson (eanderson@avinetworks.com)
|
||||
# module_check: supported
|
||||
#
|
||||
# Copyright: (c) 2017 Gaurav Rastogi, <grastogi@avinetworks.com>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
#
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: avi_wafpolicy
|
||||
author: Gaurav Rastogi (@grastogi23) <grastogi@avinetworks.com>
|
||||
|
||||
short_description: Module for setup of WafPolicy Avi RESTful Object
|
||||
description:
|
||||
- This module is used to configure WafPolicy object
|
||||
- more examples at U(https://github.com/avinetworks/devops)
|
||||
requirements: [ avisdk ]
|
||||
version_added: "2.5"
|
||||
options:
|
||||
state:
|
||||
description:
|
||||
- The state that should be applied on the entity.
|
||||
default: present
|
||||
choices: ["absent", "present"]
|
||||
avi_api_update_method:
|
||||
description:
|
||||
- Default method for object update is HTTP PUT.
|
||||
- Setting to patch will override that behavior to use HTTP PATCH.
|
||||
version_added: "2.5"
|
||||
default: put
|
||||
choices: ["put", "patch"]
|
||||
avi_api_patch_op:
|
||||
description:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
created_by:
|
||||
description:
|
||||
- Creator name.
|
||||
- Field introduced in 17.2.4.
|
||||
crs_groups:
|
||||
description:
|
||||
- Waf rules are categorized in to groups based on their characterization.
|
||||
- These groups are system created with crs groups.
|
||||
- Field introduced in 17.2.1.
|
||||
description:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
mode:
|
||||
description:
|
||||
- Waf policy mode.
|
||||
- This can be detection or enforcement.
|
||||
- Enum options - WAF_MODE_DETECTION_ONLY, WAF_MODE_ENFORCEMENT.
|
||||
- Field introduced in 17.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as WAF_MODE_DETECTION_ONLY.
|
||||
required: true
|
||||
name:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
required: true
|
||||
paranoia_level:
|
||||
description:
|
||||
- Waf ruleset paranoia mode.
|
||||
- This is used to select rules based on the paranoia-level tag.
|
||||
- Enum options - WAF_PARANOIA_LEVEL_LOW, WAF_PARANOIA_LEVEL_MEDIUM, WAF_PARANOIA_LEVEL_HIGH, WAF_PARANOIA_LEVEL_EXTREME.
|
||||
- Field introduced in 17.2.1.
|
||||
- Default value when not specified in API or module is interpreted by Avi Controller as WAF_PARANOIA_LEVEL_LOW.
|
||||
post_crs_groups:
|
||||
description:
|
||||
- Waf rules are categorized in to groups based on their characterization.
|
||||
- These groups are created by the user and will be enforced after the crs groups.
|
||||
- Field introduced in 17.2.1.
|
||||
pre_crs_groups:
|
||||
description:
|
||||
- Waf rules are categorized in to groups based on their characterization.
|
||||
- These groups are created by the user and will be enforced before the crs groups.
|
||||
- Field introduced in 17.2.1.
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
- Field introduced in 17.2.1.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
uuid:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
waf_profile_ref:
|
||||
description:
|
||||
- Waf profile for waf policy.
|
||||
- It is a reference to an object of type wafprofile.
|
||||
- Field introduced in 17.2.1.
|
||||
required: true
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
|
||||
EXAMPLES = """
|
||||
- name: Example to create WafPolicy object
|
||||
avi_wafpolicy:
|
||||
controller: 10.10.25.42
|
||||
username: admin
|
||||
password: something
|
||||
state: present
|
||||
name: sample_wafpolicy
|
||||
"""
|
||||
|
||||
RETURN = '''
|
||||
obj:
|
||||
description: WafPolicy (api/wafpolicy) object
|
||||
returned: success, changed
|
||||
type: dict
|
||||
'''
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
|
||||
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',),
|
||||
crs_groups=dict(type='list',),
|
||||
description=dict(type='str',),
|
||||
mode=dict(type='str', required=True),
|
||||
name=dict(type='str', required=True),
|
||||
paranoia_level=dict(type='str',),
|
||||
post_crs_groups=dict(type='list',),
|
||||
pre_crs_groups=dict(type='list',),
|
||||
tenant_ref=dict(type='str',),
|
||||
url=dict(type='str',),
|
||||
uuid=dict(type='str',),
|
||||
waf_profile_ref=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) is not installed. '
|
||||
'For more details visit https://github.com/avinetworks/sdk.'))
|
||||
return avi_ansible_api(module, 'wafpolicy',
|
||||
set([]))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,126 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# @author: Gaurav Rastogi (grastogi@avinetworks.com)
|
||||
# Eric Anderson (eanderson@avinetworks.com)
|
||||
# module_check: supported
|
||||
#
|
||||
# Copyright: (c) 2017 Gaurav Rastogi, <grastogi@avinetworks.com>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
#
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: avi_wafprofile
|
||||
author: Gaurav Rastogi (@grastogi23) <grastogi@avinetworks.com>
|
||||
|
||||
short_description: Module for setup of WafProfile Avi RESTful Object
|
||||
description:
|
||||
- This module is used to configure WafProfile object
|
||||
- more examples at U(https://github.com/avinetworks/devops)
|
||||
requirements: [ avisdk ]
|
||||
version_added: "2.5"
|
||||
options:
|
||||
state:
|
||||
description:
|
||||
- The state that should be applied on the entity.
|
||||
default: present
|
||||
choices: ["absent", "present"]
|
||||
avi_api_update_method:
|
||||
description:
|
||||
- Default method for object update is HTTP PUT.
|
||||
- Setting to patch will override that behavior to use HTTP PATCH.
|
||||
version_added: "2.5"
|
||||
default: put
|
||||
choices: ["put", "patch"]
|
||||
avi_api_patch_op:
|
||||
description:
|
||||
- Patch operation to use when using avi_api_update_method as patch.
|
||||
version_added: "2.5"
|
||||
choices: ["add", "replace", "delete"]
|
||||
config:
|
||||
description:
|
||||
- Config params for waf.
|
||||
- Field introduced in 17.2.1.
|
||||
required: true
|
||||
description:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
files:
|
||||
description:
|
||||
- List of data files used for waf rules.
|
||||
- Field introduced in 17.2.1.
|
||||
name:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
required: true
|
||||
tenant_ref:
|
||||
description:
|
||||
- It is a reference to an object of type tenant.
|
||||
- Field introduced in 17.2.1.
|
||||
url:
|
||||
description:
|
||||
- Avi controller URL of the object.
|
||||
uuid:
|
||||
description:
|
||||
- Field introduced in 17.2.1.
|
||||
extends_documentation_fragment:
|
||||
- avi
|
||||
'''
|
||||
|
||||
EXAMPLES = """
|
||||
- name: Example to create WafProfile object
|
||||
avi_wafprofile:
|
||||
controller: 10.10.25.42
|
||||
username: admin
|
||||
password: something
|
||||
state: present
|
||||
name: sample_wafprofile
|
||||
"""
|
||||
|
||||
RETURN = '''
|
||||
obj:
|
||||
description: WafProfile (api/wafprofile) object
|
||||
returned: success, changed
|
||||
type: dict
|
||||
'''
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
|
||||
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']),
|
||||
config=dict(type='dict', required=True),
|
||||
description=dict(type='str',),
|
||||
files=dict(type='list',),
|
||||
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) is not installed. '
|
||||
'For more details visit https://github.com/avinetworks/sdk.'))
|
||||
return avi_ansible_api(module, 'wafprofile',
|
||||
set([]))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -92,7 +92,7 @@ obj:
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
try:
|
||||
from ansible.module_utils.network.avi.avi import (
|
||||
avi_common_argument_spec, HAS_AVI, avi_ansible_api)
|
||||
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
|
||||
except ImportError:
|
||||
HAS_AVI = False
|
||||
|
||||
@@ -117,7 +117,7 @@ def main():
|
||||
argument_spec=argument_specs, supports_check_mode=True)
|
||||
if not HAS_AVI:
|
||||
return module.fail_json(msg=(
|
||||
'Avi python API SDK (avisdk>=17.1) is not installed. '
|
||||
'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, 'webhook',
|
||||
set([]))
|
||||
|
||||
Reference in New Issue
Block a user