コード例 #1
0
    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 {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)
        try:
            aruba_ansible_module = port.delete_port_fields(
                aruba_ansible_module, interface_name, ['ip4_address'])  # NOQA
            aruba_ansible_module = port.delete_port_fields(
                aruba_ansible_module, interface_name, ['ip6_address'])  # NOQA
        except Exception:
            pass

        return aruba_ansible_module
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
    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
コード例 #5
0
    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
コード例 #6
0
    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
コード例 #7
0
    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))

        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