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 check_if_l3_interface_possible(self, aruba_ansible_module, interface_name): port = Port() if port.check_port_exists(aruba_ansible_module, interface_name): result = port.get_port_field_values(aruba_ansible_module, interface_name, ['vrf', 'routing']) if 'vrf' in result.keys(): return True if 'routing' in result.keys(): if result['routing'] is False: return False else: return True else: return True
def delete_vlan(self, aruba_ansible_module, vlan_id): port = Port() interface = Interface() interface_vlan_id = "vlan{id}".format(id=vlan_id) if not self.check_vlan_exist(aruba_ansible_module, vlan_id): aruba_ansible_module.warnings.append("VLAN ID {id} is not " "configured" "".format(id=vlan_id)) return aruba_ansible_module if interface.check_interface_exists(aruba_ansible_module, interface_vlan_id): aruba_ansible_module.module.fail_json(msg="VLAN ID {id} is " "configured as interface" " VLAN" "".format(id=vlan_id)) return aruba_ansible_module port_list = port.get_configured_port_list(aruba_ansible_module) vlan_port_fields = [ "vlan_tag", "vlan_mode", "vlans_per_protocol", "vlan_trunks" ] vlan_id_str = str(vlan_id) for port_name in port_list: vlan_field_values = port.get_port_field_values( aruba_ansible_module, port_name, vlan_port_fields) # NOQA if vlan_field_values["vlan_tag"] == vlan_id_str: aruba_ansible_module = port.update_port_fields( aruba_ansible_module, port_name, {"vlan_tag": "1"}) # NOQA if vlan_id_str in vlan_field_values["vlan_trunks"] and type( vlan_field_values["vlan_trunks"]) is list: # NOQA vlan_field_values["vlan_trunks"].remove(vlan_id_str) aruba_ansible_module = port.update_port_fields( aruba_ansible_module, port_name, {"vlan_trunks": vlan_field_values["vlan_trunks"]}) # NOQA aruba_ansible_module.running_config["VLAN"].pop(vlan_id_str) 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
def update_interface_vrf_details_from_l3(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 {int} is not " "configured" "".format(int=interface_name) # NOQA ) 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 {int} is attached to VRF {vrf}. " "Delete interface" " and recreate with VRF " "{vrf_name}".format(int=interface_name, vrf=result['vrf'], vrf_name=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 {vrf} does not " "exist" "".format(vrf=vrf_name)) # NOQA 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) return aruba_ansible_module