def update_interface_acl_details(self, aruba_ansible_module, interface_name, acl_name, acl_type, acl_direction, update_type="insert"): port = Port() acl_type_prefix = "" if acl_type == "ipv4": acl_type_prefix = "aclv4" elif acl_type == "ipv6": acl_type_prefix = "aclv6" elif acl_type == "mac": acl_type_prefix = "aclmac" field1 = '{}_{}_cfg'.format(acl_type_prefix, acl_direction) value1 = '{}/{}'.format(acl_name, acl_type) field2 = '{}_{}_cfg_version'.format(acl_type_prefix, acl_direction) value2 = randint(-900719925474099, 900719925474099) port_fields = { field1: value1, field2: value2 } if (update_type == "insert") or (update_type == "update"): exisitng_values = port.get_port_field_values(aruba_ansible_module, interface_name, [field1]) if exisitng_values.has_key(field1): if (exisitng_values[field1] != port_fields[field1]): aruba_ansible_module = port.update_port_fields(aruba_ansible_module, interface_name, port_fields) else: aruba_ansible_module = port.update_port_fields(aruba_ansible_module, interface_name, port_fields) elif (update_type == 'delete'): aruba_ansible_module = port.delete_port_fields(aruba_ansible_module, interface_name, [field1, field2]) return aruba_ansible_module
def update_interface_vrf_details_from_vrf(self, aruba_ansible_module, vrf_name, interface_name, update_type="insert"): port = Port() vrf = VRF() if not port.check_port_exists(aruba_ansible_module, interface_name): aruba_ansible_module.module.fail_json(msg="Interface {} is not configured".format(interface_name)) result = port.get_port_field_values(aruba_ansible_module, interface_name, ['vrf']) if 'vrf' in result.keys(): if result['vrf'] != "" and result['vrf'] != vrf_name: aruba_ansible_module.module.fail_json( msg=("Interface {} is attached to VRF {}. Delete interface and recreate with VRF {}".format( interface_name, result['vrf'], vrf_name))) if not vrf.check_vrf_exists(aruba_ansible_module, vrf_name): if vrf_name != "default": aruba_ansible_module.module.fail_json(msg="VRF {} does not exist".format(vrf_name)) aruba_ansible_module = vrf.create_vrf(aruba_ansible_module, vrf_name) port_field = { "vrf": vrf_name } aruba_ansible_module = port.update_port_fields(aruba_ansible_module, interface_name, port_field) try: aruba_ansible_module = port.delete_port_fields(aruba_ansible_module, interface_name, ['ip4_address']) aruba_ansible_module = port.delete_port_fields(aruba_ansible_module, interface_name, ['ip6_address']) except: pass return aruba_ansible_module
def update_interface_ipv6_address(self, aruba_ansible_module, interface_name, ipv6): port = Port() port_fields = {} ip6_addresses = {} if ipv6 == ['']: aruba_ansible_module = port.delete_port_fields(aruba_ansible_module, interface_name, ['ip6_addresses']) # NOQA return aruba_ansible_module for item in ipv6: ip6_addresses[item] = { "node_address": True, "preferred_lifetime": 604800, "ra_prefix": True, "type": "global-unicast", "valid_lifetime": 2592000 } port_fields["ip6_addresses"] = ip6_addresses aruba_ansible_module = port.update_port_fields(aruba_ansible_module, interface_name, port_fields) return aruba_ansible_module
def update_interface_vlan_details(self, aruba_ansible_module, interface_name, vlan_details, update_type='insert'): port = Port() interface = L2_Interface() if not interface.check_if_l2_interface_possible(aruba_ansible_module, interface_name): aruba_ansible_module.module.fail_json(msg="Interface {int} is " "configured as an L3 " "interface. Delete " "interface then " "configure as L2." "".format(int=interface_name) # NOQA ) # NOQA if not port.check_port_exists(aruba_ansible_module, interface_name): aruba_ansible_module.module.fail_json(msg="Interface {int} is not configured".format(int=interface_name)) # NOQA if (update_type == 'insert') or (update_type == 'insert'): aruba_ansible_module = port.update_port_fields(aruba_ansible_module, interface_name, vlan_details) # NOQA elif update_type == 'delete': vlan_fields = [] for key in vlan_fields: vlan_fields.append(key) aruba_ansible_module = port.delete_port_fields(aruba_ansible_module, interface_name, vlan_fields) # NOQA return aruba_ansible_module
def update_interface_ipv4_address(self, aruba_ansible_module, interface_name, ipv4): port = Port() port_fields = {} if ipv4 == ['']: aruba_ansible_module = port.delete_port_fields(aruba_ansible_module, interface_name, ['ip4_address']) return aruba_ansible_module port_fields["ip4_address"] = ipv4[0] if len(ipv4) > 2: port_fields["ip4_address_secondary"] = [] for item in ipv4[1:]: port_fields["ip4_address_secondary"].append(item) elif len(ipv4) == 2: port_fields["ip4_address_secondary"] = ipv4[1] aruba_ansible_module = port.update_port_fields(aruba_ansible_module, interface_name, port_fields) return aruba_ansible_module
def update_interface_acl_details(self, aruba_ansible_module, interface_name, acl_name, acl_type, acl_direction, update_type="insert"): port = Port() acl_type_prefix = "" if acl_type == "ipv4": acl_type_prefix = "aclv4" elif acl_type == "ipv6": acl_type_prefix = "aclv6" elif acl_type == "mac": acl_type_prefix = "aclmac" field1 = '{type}_{dir}_cfg'.format(type=acl_type_prefix, dir=acl_direction) value1 = '{name}/{type}'.format(name=acl_name, type=acl_type) field2 = '{type}_{dir}_cfg_version'.format(type=acl_type_prefix, dir=acl_direction) value2 = randint(-900719925474099, 900719925474099) port_fields = {field1: value1, field2: value2} if (update_type == "insert") or (update_type == "update"): exisitng_values = port.get_port_field_values( aruba_ansible_module, interface_name, [field1]) if field1 in exisitng_values.keys(): if exisitng_values[field1] != port_fields[field1]: aruba_ansible_module = port.update_port_fields( aruba_ansible_module, interface_name, port_fields) # NOQA else: aruba_ansible_module = port.update_port_fields( aruba_ansible_module, interface_name, port_fields) # NOQA elif update_type == 'delete': aruba_ansible_module = port.delete_port_fields( aruba_ansible_module, interface_name, [field1, field2]) # NOQA return aruba_ansible_module