Fix multiple issues in vmware_vswitch (#27969)

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2017-08-22 02:37:04 +05:30 committed by Dag Wieers
parent a897193bce
commit 69d03d26e5

View file

@ -29,16 +29,18 @@ requirements:
- "python >= 2.6" - "python >= 2.6"
- PyVmomi - PyVmomi
options: options:
switch_name: switch:
description: description:
- vSwitch name to add - vSwitch name to add
- Alias C('switch') is added in version 2.4
required: True required: True
aliases: ['switch'] aliases: ['switch_name']
nic_name: nics:
description: description:
- A list of vmnic names or vmnic name to attach to vSwitch - A list of vmnic names or vmnic name to attach to vSwitch
- Alias C('nics') is added in version 2.4
required: False required: False
aliases: ['nics'] aliases: ['nic_name']
number_of_ports: number_of_ports:
description: description:
- Number of port to configure on vSwitch - Number of port to configure on vSwitch
@ -83,8 +85,8 @@ EXAMPLES = '''
hostname: esxi_hostname hostname: esxi_hostname
username: esxi_username username: esxi_username
password: esxi_password password: esxi_password
switch_name: vmware_vswitch_0004 switch: vmware_vswitch_0004
nic_name: ['vmnic1', 'vmnic2'] nics: ['vmnic1', 'vmnic2']
mtu: 9000 mtu: 9000
''' '''
@ -112,9 +114,9 @@ class VMwareHostVirtualSwitch(object):
self.content = None self.content = None
self.vss = None self.vss = None
self.module = module self.module = module
self.switch_name = module.params['switch_name'] self.switch = module.params['switch']
self.number_of_ports = module.params['number_of_ports'] self.number_of_ports = module.params['number_of_ports']
self.nic_name = module.params['nic_name'] self.nics = module.params['nics']
self.mtu = module.params['mtu'] self.mtu = module.params['mtu']
self.state = module.params['state'] self.state = module.params['state']
self.content = connect_to_api(self.module) self.content = connect_to_api(self.module)
@ -149,13 +151,9 @@ class VMwareHostVirtualSwitch(object):
vss_spec = vim.host.VirtualSwitch.Specification() vss_spec = vim.host.VirtualSwitch.Specification()
vss_spec.numPorts = self.number_of_ports vss_spec.numPorts = self.number_of_ports
vss_spec.mtu = self.mtu vss_spec.mtu = self.mtu
if self.nic_name: if self.nics:
if isinstance(self.nic_name, list): vss_spec.bridge = vim.host.VirtualSwitch.BondBridge(nicDevice=self.nics)
# Multiple Physical NICs self.host_system.configManager.networkSystem.AddVirtualSwitch(vswitchName=self.switch, spec=vss_spec)
vss_spec.bridge = vim.host.VirtualSwitch.BondBridge(nicDevice=self.nic_name)
else:
vss_spec.bridge = vim.host.VirtualSwitch.BondBridge(nicDevice=[self.nic_name])
self.host_system.configManager.networkSystem.AddVirtualSwitch(vswitchName=self.switch_name, spec=vss_spec)
self.module.exit_json(changed=True) self.module.exit_json(changed=True)
def state_exit_unchanged(self): def state_exit_unchanged(self):
@ -189,7 +187,7 @@ class VMwareHostVirtualSwitch(object):
self.module.fail_json(msg="Unable to find host") self.module.fail_json(msg="Unable to find host")
self.host_system = list(host.keys())[0] self.host_system = list(host.keys())[0]
self.vss = find_vswitch_by_name(self.host_system, self.switch_name) self.vss = find_vswitch_by_name(self.host_system, self.switch)
if self.vss is None: if self.vss is None:
return 'absent' return 'absent'