Example #1
0
    def add_trunk_vlan(self, interface_id, vlan):
        interface_data = self.get_interface_data(interface_id)

        actual_port_mode = resolve_port_mode(interface_data)
        if actual_port_mode == "access":
            raise InterfaceInWrongPortMode("access")

        vlans = self.get_vlans()
        if not [v for v in vlans if v.number == vlan]:
            raise UnknownVlan(vlan)

        with self.config(), self.interface(interface_id):
            if actual_port_mode is None:
                self.set("switchport mode trunk")
                actual_port_mode = "trunk"

            if actual_port_mode == "trunk":
                if has_trunk_vlans(interface_data):
                    self.set("switchport {} allowed vlan add {}", actual_port_mode, vlan) \
                        .on_result_matching(".*VLAN does not exist.*", UnknownVlan, vlan)
                else:
                    self.set("switchport {} allowed vlan {}", actual_port_mode, vlan) \
                        .on_result_matching(".*VLAN does not exist.*", UnknownVlan, vlan)
            else:
                self.set("switchport {} allowed vlan add {}", actual_port_mode, vlan) \
                    .on_result_matching(".*VLAN does not exist.*", UnknownVlan, vlan)
Example #2
0
    def add_trunk_vlan(self, interface_id, vlan):
        interface_data = self.get_interface_data(interface_id)

        actual_port_mode = resolve_port_mode(interface_data)
        if actual_port_mode == "access":
            raise InterfaceInWrongPortMode("access")

        vlans = self.get_vlans()
        if not [v for v in vlans if v.number == vlan]:
            raise UnknownVlan(vlan)

        with self.config(), self.interface(interface_id):
            if actual_port_mode is None:
                self.set("switchport mode trunk")
                actual_port_mode = "trunk"

            if actual_port_mode == "trunk":
                if has_trunk_vlans(interface_data):
                    self.set("switchport {} allowed vlan add {}", actual_port_mode, vlan) \
                        .on_result_matching(".*VLAN does not exist.*", UnknownVlan, vlan)
                else:
                    self.set("switchport {} allowed vlan {}", actual_port_mode, vlan) \
                        .on_result_matching(".*VLAN does not exist.*", UnknownVlan, vlan)
            else:
                self.set("switchport {} allowed vlan add {}", actual_port_mode, vlan) \
                    .on_result_matching(".*VLAN does not exist.*", UnknownVlan, vlan)
Example #3
0
    def set_trunk_mode(self, interface_id):
        interface_data = self.get_interface_data(interface_id)
        actual_port_mode = resolve_port_mode(interface_data)

        if actual_port_mode in ("access", None):
            with self.config(), self.interface(interface_id):
                self.shell.do("no switchport access vlan")
                self.shell.do("switchport mode trunk")
Example #4
0
    def set_trunk_mode(self, interface_id):
        interface_data = self.get_interface_data(interface_id)
        actual_port_mode = resolve_port_mode(interface_data)

        if actual_port_mode in ("access", None):
            with self.config(), self.interface(interface_id):
                self.shell.do("no switchport access vlan")
                self.shell.do("switchport mode trunk")
Example #5
0
    def set_access_vlan(self, interface_id, vlan):
        interface_data = self.get_interface_data(interface_id)

        actual_port_mode = resolve_port_mode(interface_data)
        if actual_port_mode in ("trunk", "general"):
            raise InterfaceInWrongPortMode(actual_port_mode)

        with self.config(), self.interface(interface_id):
            self.set("switchport access vlan {}", vlan).on_result_matching(".*VLAN ID not found.*", UnknownVlan, vlan)
Example #6
0
    def remove_trunk_vlan(self, interface_id, vlan):
        interface_data = self.get_interface_data(interface_id)
        trunk_vlans = resolve_trunk_vlans(interface_data)

        if vlan not in trunk_vlans:
            raise TrunkVlanNotSet(interface_id)

        actual_port_mode = resolve_port_mode(interface_data)
        with self.config(), self.interface(interface_id):
            self.set("switchport {} allowed vlan remove {}", actual_port_mode, vlan)
Example #7
0
    def set_access_vlan(self, interface_id, vlan):
        interface_data = self.get_interface_data(interface_id)

        actual_port_mode = resolve_port_mode(interface_data)
        if actual_port_mode in ("trunk", "general"):
            raise InterfaceInWrongPortMode(actual_port_mode)

        with self.config(), self.interface(interface_id):
            self.set("switchport access vlan {}", vlan) \
                .on_result_matching(".*VLAN ID not found.*", UnknownVlan, vlan)
Example #8
0
    def remove_trunk_vlan(self, interface_id, vlan):
        interface_data = self.get_interface_data(interface_id)
        trunk_vlans = resolve_trunk_vlans(interface_data)

        if vlan not in trunk_vlans:
            raise TrunkVlanNotSet(interface_id)

        actual_port_mode = resolve_port_mode(interface_data)
        with self.config(), self.interface(interface_id):
            self.set("switchport {} allowed vlan remove {}", actual_port_mode, vlan)