コード例 #1
0
 def manage_update_vlan_exception(self, message, number):
     if "being used by" in message:
         raise VlanAlreadyExist(number)
     elif "not within range" in message:
         if message.startswith("Value"):
             raise BadVlanNumber()
     elif "Must be a string" in message:
         raise BadVlanName()
コード例 #2
0
ファイル: brocade.py プロジェクト: rjshaver/netman
    def add_vlan(self, number, name=None):
        result = self._show_vlan(number)
        if not result[0].startswith("Error"):
            raise VlanAlreadyExist(number)

        with self.config():
            result = self.shell.do('vlan {}{}'.format(number, " name {}".format(name) if name else ""))
            if len(result) > 0:
                if result[0].startswith("Error:"):
                    raise BadVlanNumber()
                else:
                    raise BadVlanName()
            else:
                self.shell.do('exit')
コード例 #3
0
ファイル: dell.py プロジェクト: idjaw/netman
    def add_vlan(self, number, name=None):
        result = self.shell.do("show vlan id {}".format(number))
        if regex.match(".*\^.*", result[0]):
            raise BadVlanNumber()
        elif regex.match("^VLAN", result[0]):
            raise VlanAlreadyExist(number)

        with self.config():
            with self.vlan_database():
                self.set('vlan {}', number)

            if name is not None:
                with self.interface("vlan {}".format(number)):
                    self.set('name {}', name).on_any_result(BadVlanName)
コード例 #4
0
    def add_vlan(self, number, name=None):
        config = self.query(all_vlans)

        try:
            self.get_vlan_config(number, config)
            raise VlanAlreadyExist(number)
        except UnknownVlan:
            pass

        update = Update()
        update.add_vlan(vlan_update(number, name))

        try:
            self._push(update)
        except RPCError as e:
            if "being used by" in e.message:
                raise VlanAlreadyExist(number)
            elif "not within range" in e.message:
                if e.message.startswith("Value"):
                    raise BadVlanNumber()
                elif e.message.startswith("Length"):
                    raise BadVlanName()

            raise
コード例 #5
0
ファイル: cisco.py プロジェクト: simon-begin/netman
    def add_vlan(self, number, name=None):
        if self._show_run_vlan(number):
            raise VlanAlreadyExist(number)

        with self.config():
            result = self.ssh.do('vlan {}'.format(number))
            if len(result) > 0:
                raise BadVlanNumber()
            else:
                if name:
                    result = self.ssh.do('name {}'.format(name))

                self.ssh.do('exit')

                if len(result) > 0:
                    raise BadVlanName()
コード例 #6
0
ファイル: arista.py プロジェクト: simon-begin/netman
    def add_vlan(self, number, name=None):
        if not isvlan(number):
            raise BadVlanNumber()
        try:
            self.node.enable(["show vlan {}".format(number)], strict=True)
            raise VlanAlreadyExist(number)
        except CommandError:
            pass

        commands = ["vlan {}".format(number)]
        if name is not None:
            commands.append("name {}".format(name))

        try:
            self.node.config(commands)
        except CommandError:
            raise BadVlanName()
コード例 #7
0
ファイル: base.py プロジェクト: simon-begin/netman
    def add_vlan(self, number, name=None):
        config = self.query(self.custom_strategies.all_vlans)

        try:
            self.custom_strategies.vlan_node(config, number)
            raise VlanAlreadyExist(number)
        except UnknownVlan:
            pass

        update = Update()
        self.custom_strategies.add_update_vlans(update, number, name)

        try:
            self._push(update)
        except RPCError as e:
            self.custom_strategies.manage_update_vlan_exception(
                e.message, number)
            raise
コード例 #8
0
ファイル: dell10g.py プロジェクト: JoProvost/netman
    def add_vlan(self, number, name=None):
        result = self.shell.do("show vlan id {}".format(number))
        if regex.match(".*\^.*", result[0]):
            raise BadVlanNumber()
        elif regex.match("^VLAN", result[0]):
            raise VlanAlreadyExist(number)

        with self.config():
            result = self.shell.do('vlan {}'.format(number))
            if len(result) > 0:
                raise BadVlanNumber()
            else:
                if name:
                    result = self.shell.do('name {}'.format(name))

                self.shell.do('exit')

                if len(result) > 0:
                    raise BadVlanName()