Ejemplo n.º 1
0
    def remove_vrrp_group(self, vlan_number, group_id):
        vlan = self.get_vlan_interface_data(vlan_number)

        if not [group for group in vlan.vrrp_groups if group.id == group_id]:
            raise VrrpDoesNotExistForVlan(vlan=vlan_number, vrrp_group_id=group_id)

        with self.config(), self.interface_vlan(vlan_number):
            result = self.ssh.do('no standby {group_id}'.format(group_id=group_id))
            if len(result) > 0:
                raise VrrpDoesNotExistForVlan(vlan=vlan_number, vrrp_group_id=group_id)
Ejemplo n.º 2
0
    def remove_vrrp_group(self, vlan_number, group_id):
        vlan = self._get_vlan(vlan_number, include_vif_data=True)

        if not [group for group in vlan.vrrp_groups if group.id == group_id]:
            raise VrrpDoesNotExistForVlan(vlan=vlan_number, vrrp_group_id=group_id)

        with self.config(), self.interface_vlan(vlan):
            result = self.shell.do('no ip vrrp-extended vrid {group_id}'.format(group_id=group_id))
            if len(result) > 0:
                raise VrrpDoesNotExistForVlan(vlan=vlan_number, vrrp_group_id=group_id)
            if len(vlan.vrrp_groups) == 1:
                self.shell.do('ip vrrp-extended auth-type no-auth')
Ejemplo n.º 3
0
    def remove_vrrp_group(self, vlan_id, group_id):
        config = self.query(one_interface_vlan(vlan_id))

        if len(config.xpath(
                "data/configuration/interfaces/interface/unit")) < 1:
            raise UnknownVlan(vlan_id)

        address_node = first(
            config.xpath(
                "data/configuration/interfaces/interface/unit/family"
                "/inet/address/vrrp-group/name[text()=\"{}\"]/../..".format(
                    group_id)))

        if address_node is None:
            raise VrrpDoesNotExistForVlan(vlan=vlan_id, vrrp_group_id=group_id)

        vrrp_node = to_ele("""
            <vrrp-group operation="delete">
              <name>{group_id}</name>
            </vrrp-group>""".format(group_id=group_id))

        update = Update()
        update.add_interface(
            irb_address_update(vlan_id,
                               first_text(address_node.xpath("name")),
                               children=[vrrp_node]))

        self._push(update)