예제 #1
0
파일: acl.py 프로젝트: aruba/pyaoscx
    def delete(self):
        '''
        Perform DELETE call to delete ACL table entry.

        '''

        uri = "{base_url}{class_uri}/{id1}{separator}{id2}".format(
            base_url=self.session.base_url,
            class_uri=ACL.base_uri,
            id1=self.name,
            separator=self.session.api_version.compound_index_separator,
            id2=self.list_type)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info("SUCCESS: Delete ACL table entry {} succeeded\
                    ".format(self.name))

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #2
0
    def delete(self):
        '''
        Perform DELETE call to delete VRF table entry.

        '''

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)

        uri = "{base_url}{class_uri}/{name}".format(
            base_url=self.session.base_url,
            class_uri=Vrf.base_uri,
            name=self.name)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info("SUCCESS: Delete VRF table entry '%s' succeeded" %
                         self.name)
예제 #3
0
    def delete(self):
        '''
        Perform DELETE call to delete OSPF Area table entry.

        '''

        uri = "{base_url}{class_uri}/{id}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            id=self.area_id)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info(
                "SUCCESS: Delete OSPF Area table entry {} succeeded".format(
                    self.area_id))

        # Delete back reference from ospf_routers
        for area in self.__parent_ospf_router.areas:
            if area.area_id == self.area_id:
                self.__parent_ospf_router.areas.remove(area)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #4
0
    def delete(self):
        '''
        Perform DELETE call to delete specified Static Route table entry.

        '''

        uri = "{base_url}{class_uri}/{prefix}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            prefix=self.reference_address
        )

        try:
            response = self.session.s.delete(
                uri, verify=False, proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info(
                "SUCCESS: Delete static_route table entry {} succeeded".format(
                    self.prefix))

        # Delete back reference from VRF
        for static_route in self.__parent_vrf.static_routes:
            if static_route.prefix == self.prefix:
                self.__parent_vrf.static_routes.remove(static_route)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #5
0
    def delete(self):
        '''
        Perform DELETE call to delete VRF Address Family table entry

        '''

        uri = "{base_url}{class_uri}/{address_family}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            address_family=self.address_family)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info(
                "SUCCESS: Delete VRF Address Family table entry {} succeeded\
                    ".format(self.address_family))

        # Delete back reference from VRF
        for vrf_address_family in self.__parent_vrf.address_families:
            if vrf_address_family.address_family == self.address_family:
                self.__parent_vrf.address_families.remove(vrf_address_family)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #6
0
파일: bgp_router.py 프로젝트: aruba/pyaoscx
    def delete(self):
        '''
        Perform DELETE call to delete BGP Router table entry.

        '''

        uri = "{base_url}{class_uri}/{asn}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            asn=self.asn
        )

        try:
            response = self.session.s.delete(
                uri, verify=False, proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info("SUCCESS: Delete BGP table entry {} succeeded".format(
                self.asn))

        # Delete back reference from VRF
        for bgp_router in self.__parent_vrf.bgp_routers:
            if bgp_router.asn == self.asn:
                self.__parent_vrf.bgp_routers.remove(bgp_router)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #7
0
    def delete(self):
        '''
        Perform DELETE call to delete ACL Entry from parent ACL on the switch.

        '''

        uri = "{base_url}{class_uri}/{sequence_number}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            sequence_number=self.sequence_number)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info(
                "SUCCESS: Delete ACL Entry table entry {} succeeded".format(
                    self.sequence_number))

        # Delete back reference from ACL
        for acl_entry in self.__parent_acl.cfg_aces:
            if acl_entry.sequence_number == self.sequence_number:
                self.__parent_acl.cfg_aces.remove(acl_entry)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #8
0
    def delete(self):
        '''
        Perform DELETE call to delete  BGP Neighbor table entry.

        '''

        uri = "{base_url}{class_uri}/{id}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            id=self.ip_or_ifname_or_group_name)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info("SUCCESS: Delete BGP table entry {} succeeded".format(
                self.ip_or_ifname_or_group_name))

        # Delete back reference from BGP_Routers
        for neighbor in self.__parent_bgp_router.bgp_neighbors:
            if neighbor.ip_or_ifname_or_group_name == \
                    self.ip_or_ifname_or_group_name:
                self.__parent_bgp_router.bgp_neighbors.remove(neighbor)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #9
0
파일: interface.py 프로젝트: aruba/pyaoscx
    def delete(self):
        '''
        Perform DELETE call to delete Interface.

        '''
        if not self.__is_special_type:
            raise VerificationError('Interface', "Can't be deleted")

        # Delete Interface via a DELETE request to Ports Table
        uri = "{base_url}{class_uri}/{id}".format(
            base_url=self.session.base_url,
            class_uri=Interface.base_uri_ports,
            id=self.name
        )

        try:
            response = self.session.s.delete(
                uri, verify=False, proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        # DELETE Interface via DELETE request to Interface Table
        # Check if port is a LAG
        # If not, DELETE request to Interface Table
        if self.type != 'lag':
            uri_interfaces = "{base_url}{class_uri}".format(
                base_url=self.session.base_url,
                class_uri=Interface.base_uri_interface
            )

            try:
                response_ints = self.session.s.delete(
                    uri_interfaces, verify=False, proxies=self.session.proxy)

            except Exception as e:
                raise ResponseError('DELETE', e)

            if not utils._response_ok(response_ints, "DELETE"):
                raise GenericOperationError(
                    response_ints.text,
                    response_ints.status_code)

        # Clean LAG from interfaces
        # Delete interface references
        for interface in self.__prev_interfaces:
            # If interface name is not the same as the current one
            if interface.name != self.name and self.type == 'lag':
                interface.__delete_lag(self)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)
예제 #10
0
    def delete(self):
        '''
        Perform DELETE call to delete Aggregate Address.

        '''

        uri = "{base_url}{class_uri}/{id1}{separator}{id2}".format(
            base_url=self.session.base_url,
            class_uri=self.base_uri,
            id1=self.address_family,
            separator=self.session.api_version.compound_index_separator,
            id2=self.reference_ip_prefix)

        try:
            response = self.session.s.delete(uri,
                                             verify=False,
                                             proxies=self.session.proxy)

        except Exception as e:
            raise ResponseError('DELETE', e)

        if not utils._response_ok(response, "DELETE"):
            raise GenericOperationError(response.text, response.status_code)

        else:
            logging.info(
                "SUCCESS: Delete Aggregate Address table entry {} succeeded\
                    ".format(self.address_family))

        # Delete back reference from BGP Router
        for address in self.__parent_bgp_router.aggregate_addresses:
            if address.address_family == self.address_family and\
                    address.ip_prefix == self.ip_prefix:
                self.__parent_bgp_router.aggregate_addresses.remove(address)

        # Delete object attributes
        utils.delete_attrs(self, self.config_attrs)