Example #1
0
    def unnamed_vlantags(self, action, startvlan="", endvlan=""):
        """
        Associate Unnamed VLAN Tags.

        :param action: (str) 'add', 'remove', or 'clear'
        :param startvlan: (int) Lower VLAN.
        :param endvlan: (int) Upper VLAN.
        """
        logging.debug("In unnamed_vlantags() for VlanGroupTags class.")
        if action == "add":
            startvlan, endvlan = validate_vlans(start_vlan=startvlan,
                                                end_vlan=endvlan)
            new_literal = {
                "startTag": startvlan,
                "endTag": endvlan,
                "type": ""
            }
            if "literals" in self.__dict__:
                duplicate = False
                for obj in self.literals:
                    if (obj["startTag"] == new_literal["startTag"]
                            and obj["endTag"] == new_literal["endTag"]):
                        duplicate = True
                        break
                if not duplicate:
                    self.literals.append(new_literal)
                    logging.info(
                        f'Adding "{startvlan}/{endvlan}" to VlanGroupTags.')
            else:
                self.literals = [new_literal]
                logging.info(
                    f'Adding "{startvlan}/{endvlan}" to VlanGroupTags.')
        elif action == "remove":
            startvlan, endvlan = validate_vlans(start_vlan=startvlan,
                                                end_vlan=endvlan)
            if "literals" in self.__dict__:
                literals_list = []
                for obj in self.literals:
                    if obj["startTag"] != startvlan and obj[
                            "endTag"] != endvlan:
                        literals_list.append(obj)
                self.literals = literals_list
                logging.info(
                    f'Removed "{startvlan}/{endvlan}" from VlanGroupTags.')
            else:
                logging.info(
                    "This VlanGroupTag has no unnamed_vlantags.  Nothing to remove."
                )
        elif action == "clear":
            if "literals" in self.__dict__:
                del self.literals
                logging.info(
                    "All unnamed_vlantags removed from this VlanGroupTags.")
Example #2
0
    def vlans(self, start_vlan, end_vlan=""):
        """
        Associate VLANs.

        :param start_vlan: (int) Lower VLAN.
        :param end_vlan: (int) Upper VLAN.
        """
        logging.debug("In vlans() for VlanTags class.")
        start_vlan, end_vlan = validate_vlans(start_vlan=start_vlan, end_vlan=end_vlan)
        self.data = {"startTag": start_vlan, "endTag": end_vlan}
Example #3
0
 def vlans(self, start_vlan, end_vlan=""):
     logging.debug("In vlans() for VlanTags class.")
     start_vlan, end_vlan = validate_vlans(start_vlan=start_vlan, end_vlan=end_vlan)
     self.data = {"startTag": start_vlan, "endTag": end_vlan}