mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
VMware: Add teaming policy for DVS Portgroup. (#35215)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
parent
75130b4a4d
commit
ca31e59b79
1 changed files with 43 additions and 2 deletions
|
@ -81,6 +81,17 @@ options:
|
||||||
- '- C(mac_changes) (bool): indicates whether mac changes are allowed. (default: false)'
|
- '- C(mac_changes) (bool): indicates whether mac changes are allowed. (default: false)'
|
||||||
required: False
|
required: False
|
||||||
version_added: '2.5'
|
version_added: '2.5'
|
||||||
|
teaming_policy:
|
||||||
|
description:
|
||||||
|
- Dictionary which configures the different teaming values for portgroup.
|
||||||
|
- 'Valid attributes are:'
|
||||||
|
- '- C(load_balance_policy) (string): Network adapter teaming policy. (default: loadbalance_srcid)'
|
||||||
|
- ' - choices: [ loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit]'
|
||||||
|
- '- C(inbound_policy) (bool): Indicate whether or not the teaming policy is applied to inbound frames as well. (default: False)'
|
||||||
|
- '- C(notify_switches) (bool): Indicate whether or not to notify the physical switch if a link fails. (default: True)'
|
||||||
|
- '- C(rolling_order) (bool): Indicate whether or not to use a rolling policy when restoring links. (default: False)'
|
||||||
|
required: False
|
||||||
|
version_added: '2.5'
|
||||||
port_policy:
|
port_policy:
|
||||||
description:
|
description:
|
||||||
- Dictionary which configures the advanced policy settings for the portgroup.
|
- Dictionary which configures the advanced policy settings for the portgroup.
|
||||||
|
@ -252,6 +263,14 @@ class VMwareDvsPortgroup(PyVmomi):
|
||||||
config.defaultPortConfig.securityPolicy.forgedTransmits = vim.BoolPolicy(value=self.security_forged_transmits)
|
config.defaultPortConfig.securityPolicy.forgedTransmits = vim.BoolPolicy(value=self.security_forged_transmits)
|
||||||
config.defaultPortConfig.securityPolicy.macChanges = vim.BoolPolicy(value=self.security_mac_changes)
|
config.defaultPortConfig.securityPolicy.macChanges = vim.BoolPolicy(value=self.security_mac_changes)
|
||||||
|
|
||||||
|
# Teaming Policy
|
||||||
|
teamingPolicy = vim.dvs.VmwareDistributedVirtualSwitch.UplinkPortTeamingPolicy()
|
||||||
|
teamingPolicy.policy = vim.StringPolicy(value=self.module.params['teaming_policy']['load_balance_policy'])
|
||||||
|
teamingPolicy.reversePolicy = vim.BoolPolicy(value=self.module.params['teaming_policy']['inbound_policy'])
|
||||||
|
teamingPolicy.notifySwitches = vim.BoolPolicy(value=self.module.params['teaming_policy']['notify_switches'])
|
||||||
|
teamingPolicy.rollingOrder = vim.BoolPolicy(value=self.module.params['teaming_policy']['rolling_order'])
|
||||||
|
config.defaultPortConfig.uplinkTeamingPolicy = teamingPolicy
|
||||||
|
|
||||||
# PG policy (advanced_policy)
|
# PG policy (advanced_policy)
|
||||||
config.policy = vim.dvs.VmwareDistributedVirtualSwitch.VMwarePortgroupPolicy()
|
config.policy = vim.dvs.VmwareDistributedVirtualSwitch.VMwarePortgroupPolicy()
|
||||||
config.policy.blockOverrideAllowed = self.policy_block_override
|
config.policy.blockOverrideAllowed = self.policy_block_override
|
||||||
|
@ -269,8 +288,7 @@ class VMwareDvsPortgroup(PyVmomi):
|
||||||
# PG Type
|
# PG Type
|
||||||
config.type = self.portgroup_type
|
config.type = self.portgroup_type
|
||||||
|
|
||||||
spec = [config]
|
task = self.dv_switch.AddDVPortgroup_Task([config])
|
||||||
task = self.dv_switch.AddDVPortgroup_Task(spec)
|
|
||||||
changed, result = wait_for_task(task)
|
changed, result = wait_for_task(task)
|
||||||
return changed, result
|
return changed, result
|
||||||
|
|
||||||
|
@ -334,6 +352,29 @@ def main():
|
||||||
mac_changes=False
|
mac_changes=False
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
teaming_policy=dict(
|
||||||
|
type='dict',
|
||||||
|
options=dict(
|
||||||
|
inbound_policy=dict(type='bool', default=False),
|
||||||
|
notify_switches=dict(type='bool', default=True),
|
||||||
|
rolling_order=dict(type='bool', default=False),
|
||||||
|
load_balance_policy=dict(type='str',
|
||||||
|
default='loadbalance_srcid',
|
||||||
|
choices=[
|
||||||
|
'loadbalance_ip',
|
||||||
|
'loadbalance_srcmac',
|
||||||
|
'loadbalance_srcid',
|
||||||
|
'failover_explicit',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
),
|
||||||
|
default=dict(
|
||||||
|
inbound_policy=False,
|
||||||
|
notify_switches=True,
|
||||||
|
rolling_order=False,
|
||||||
|
load_balance_policy='loadbalance_srcid',
|
||||||
|
),
|
||||||
|
),
|
||||||
port_policy=dict(
|
port_policy=dict(
|
||||||
type='dict',
|
type='dict',
|
||||||
options=dict(
|
options=dict(
|
||||||
|
|
Loading…
Reference in a new issue