diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/module_utils/network/vyos/config/interfaces/interfaces.py | 41 | ||||
-rw-r--r-- | plugins/modules/vyos_interfaces.py | 13 |
2 files changed, 26 insertions, 28 deletions
diff --git a/plugins/module_utils/network/vyos/config/interfaces/interfaces.py b/plugins/module_utils/network/vyos/config/interfaces/interfaces.py index 62e4f92..a9d9307 100644 --- a/plugins/module_utils/network/vyos/config/interfaces/interfaces.py +++ b/plugins/module_utils/network/vyos/config/interfaces/interfaces.py @@ -275,7 +275,9 @@ class Interfaces(ConfigBase): commands.append( self._compute_commands(key=key, interface=want_copy["name"], remove=True), ) - if have_copy["enabled"] is False and not ('enabled' in want_copy and want_copy["enabled"] is False): + if have_copy["enabled"] is False and not ( + "enabled" in want_copy and want_copy["enabled"] is False + ): commands.append( self._compute_commands(key="enabled", value=True, interface=want_copy["name"]), ) @@ -284,43 +286,48 @@ class Interfaces(ConfigBase): for have_vif in have_vifs: want_vif = search_obj_in_list(have_vif["vlan_id"], want_vifs, key="vlan_id") if not want_vif: - want_vif = { - "vlan_id": have_vif["vlan_id"], - "enabled": True, - } - - for key in dict_delete(have_vif, want_vif).keys(): - if key == "enabled": - continue commands.append( self._compute_commands( - key=key, + key="", interface=want_copy["name"], - vif=want_vif["vlan_id"], + vif=have_vif["vlan_id"], remove=True, ), ) - if have_vif["enabled"] is False: + continue + + for key in dict_delete(have_vif, want_vif).keys(): + if key == "enabled": + continue commands.append( self._compute_commands( - key="enabled", - value=True, + key=key, interface=want_copy["name"], vif=want_vif["vlan_id"], + remove=True, ), ) return commands def _compute_commands(self, interface, key, vif=None, value=None, remove=False): - intf_context = "interfaces {0} {1}".format(get_interface_type(interface), interface) + interface_type = get_interface_type(interface) + if not interface_type: + self._module.fail_json( + msg="interface {0} is not a valid interface type".format(interface), + ) + intf_context = "interfaces {0} {1}".format(interface_type, interface) set_cmd = "set {0}".format(intf_context) del_cmd = "delete {0}".format(intf_context) if vif: set_cmd = set_cmd + (" vif {0}".format(vif)) del_cmd = del_cmd + (" vif {0}".format(vif)) - - if key == "enabled": + if key == "" or key is None: + if not remove: + command = "{0}".format(set_cmd) + else: + command = "{0}".format(del_cmd) + elif key == "enabled": if not value: command = "{0} disable".format(set_cmd) else: diff --git a/plugins/modules/vyos_interfaces.py b/plugins/modules/vyos_interfaces.py index b679a22..6125b4b 100644 --- a/plugins/modules/vyos_interfaces.py +++ b/plugins/modules/vyos_interfaces.py @@ -353,7 +353,7 @@ EXAMPLES = """ # - delete interfaces ethernet eth2 speed # - delete interfaces ethernet eth2 duplex # - delete interfaces ethernet eth2 mtu -# - delete interfaces ethernet eth2 vif 200 description +# - delete interfaces ethernet eth2 vif 200 # - set interfaces ethernet eth2 description 'Replaced by Ansible' # - delete interfaces ethernet eth3 speed # - delete interfaces ethernet eth3 duplex @@ -375,9 +375,6 @@ EXAMPLES = """ # - description: Replaced by Ansible # enabled: true # name: eth2 -# vifs: -# - enabled: true -# vlan_id: '200' # - description: Replaced by Ansible # enabled: true # name: eth1 @@ -405,7 +402,6 @@ EXAMPLES = """ # set interfaces ethernet eth2 description 'Replaced by Ansible' # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23' # set interfaces ethernet eth2 smp-affinity 'auto' -# set interfaces ethernet eth2 vif 200 # set interfaces ethernet eth3 description 'Replaced by Ansible' # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c' # set interfaces loopback lo @@ -490,8 +486,7 @@ EXAMPLES = """ # - delete interfaces vti vti1 mtu # - delete interfaces ethernet eth1 description # - delete interfaces ethernet eth1 mtu -# - delete interfaces ethernet eth1 vif 100 description -# - delete interfaces ethernet eth1 vif 100 disable +# - delete interfaces ethernet eth1 vif 100 # - delete interfaces ethernet eth0 mtu # - set interfaces ethernet eth0 description 'Outbound Interface For The Appliance' # - delete interfaces ethernet eth2 description @@ -515,9 +510,6 @@ EXAMPLES = """ # speed: auto # - enabled: true # name: eth1 -# vifs: -# - enabled: true -# vlan_id: '100' # - description: Outbound Interface For The Appliance # duplex: auto # enabled: true @@ -536,7 +528,6 @@ EXAMPLES = """ # set interfaces ethernet eth0 speed 'auto' # set interfaces ethernet eth1 hw-id '08:00:27:ea:0f:b9' # set interfaces ethernet eth1 smp-affinity 'auto' -# set interfaces ethernet eth1 vif 100 # set interfaces ethernet eth2 duplex 'auto' # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23' # set interfaces ethernet eth2 smp-affinity 'auto' |