def removeRouteRangeOnProtocol(self, portName, protocol, routeRange): """ Description Remove a route range for a protocol on a speficied port Parameters portName: : Name of the port eg: "1/1/11" protocol: : protocol to remove route range. eg: routeRange: : route range address Syntax DELETE: /api/v1/sessions/{id}/ixnetwork/vport/{id}/protocols//router/{id}/routeRange/{id} DELETE: /api/v1/sessions/{id}/ixnetwork/vport/{id}/protocols//neighborRange/{id}/routeRange/{id} Examples: removeRouteRangeOnProtocol(protName='1/1/11', protocol='ospf', routeRange='10.10.10.1') removeRouteRangeOnProtocol(protName='1/1/11', protocol='ospfv3', routeRange='10::1') """ vport = self.portMgmtObj.getVportObjectByName(portName) if vport == None: raise IxNetRestApiException('PortName {0} not connected to chassis'.format(portName)) RouterInstanceList = self.getRouterInstanceByPortAndProtocol(protocol=protocol, vport=vport) if RouterInstanceList == []: raise IxNetRestApiException('No Router instance exists in protocol {0}'.format(protocol)) self.ixnObj.logInfo('Router list %s' % RouterInstanceList) args = 'firstRoute' if protocol == 'ospf': args = 'networkNumber' if protocol == 'bgp': args = 'networkAddress' for eachRouterInstance in RouterInstanceList: url = self.ixnObj.httpHeader + eachRouterInstance + '/routeRange' response = self.ixnObj.get(url) RouteRangeInstanceList = ["%s" % (str(i["links"][0]["href"])) for i in response.json()] self.ixnObj.logInfo('Route Range list %s' % RouteRangeInstanceList) for eachRouteRange in RouteRangeInstanceList: url = self.ixnObj.httpHeader + eachRouteRange response = self.ixnObj.get(url) RouteRangeNetwork = response.json()[args] if RouteRangeNetwork == routeRange: self.ixnObj.delete(url) return raise IxNetRestApiException( 'Route range: {0} does not exist in protocol: {1} port: {2}'.format(routeRange, protocol, portName))