def verifyAllProtocolSessionsNgpf(self, timeout=120, silentMode=False): """ Description Loop through each Topology Group and its enabled Device Groups and verify all the created and activated protocols for session up. Applies to Ethernet, IPv4 and IPv6. Parameters timeout: : The timeout value for declaring as failed. Default = 120 seconds. silentMode: : True to not display less on the terminal. False for debugging purpose. """ l2ProtocolList = ['isisL3', 'lacp', 'mpls'] l3ProtocolList = ['ancp', 'bfdv4Interface', 'bgpIpv4Peer', 'bgpIpv6Peer', 'dhcpv4relayAgent', 'dhcpv6relayAgent', 'geneve', 'greoipv4', 'greoipv6', 'igmpHost', 'igmpQuerier', 'lac', 'ldpBasicRouter', 'ldpBasicRouterV6', 'ldpConnectedInterface', 'ldpv6ConnectedInterface', 'ldpTargetedRouter', 'ldpTargetedRouterV6', 'lns', 'mldHost', 'mldQuerier', 'ptp', 'ipv6sr', 'openFlowController', 'openFlowSwitch', 'ospfv2', 'ospfv3', 'ovsdbcontroller', 'ovsdbserver', 'pcc', 'pce', 'pcepBackupPCEs', 'pimV4Interface', 'pimV6Interface', 'ptp', 'rsvpteIf', 'rsvpteLsps', 'tag', 'vxlan'] queryData = {'from': '/', 'nodes': [{'node': 'topology', 'properties': [], 'where': []}, {'node': 'deviceGroup', 'properties': ['href'], 'where': []}] } queryResponse = self.ixnObj.query(data=queryData) try: topologyGroupList = queryResponse.json()['result'][0]['topology'] except IndexError: raise IxNetRestApiException('\nNo Device Group objects found') deviceGroupObjList = [] for topology in topologyGroupList: for deviceGroup in topology['deviceGroup']: deviceGroup = deviceGroup['href'] response = self.ixnObj.get(self.ixnObj.httpHeader+deviceGroup) # Verify if the Device Group is enabled. If not, don't go further. enabledMultivalue = response.json()['enabled'] response = self.ixnObj.getMultivalueValues(enabledMultivalue, silentMode=silentMode) self.ixnObj.logInfo('DeviceGroup is enabled: %s'% response) if response[0] == 'false': continue response = self.ixnObj.get(self.ixnObj.httpHeader+deviceGroup+'/ethernet', silentMode=silentMode) match = re.match('/api/v[0-9]+/sessions/[0-9]+/ixnetwork(.*)', deviceGroup) queryData = {'from': match.group(1), 'nodes': [{'node': 'ethernet', 'properties': [], 'where': []}] } queryResponse = self.ixnObj.query(data=queryData) ethernetIds = queryResponse.json()['result'][0]['ethernet'] ethernetList = [ethernet['href'] for ethernet in ethernetIds] for ethernet in ethernetList: # Verify Layer2 first for protocol in l2ProtocolList: response = self.ixnObj.get(self.ixnObj.httpHeader+ethernet+'/'+protocol, silentMode=True, ignoreError=True) if response.json() == [] or 'errors' in response.json(): continue currentProtocolList = ['%s/%s/%s' % (ethernet, protocol, str(i["id"])) for i in response.json()] for currentProtocol in currentProtocolList: if 'isis' in currentProtocol: response = self.ixnObj.get(self.ixnObj.httpHeader+deviceGroup+'/isisL3Router', silentMode=silentMode) self.verifyAllProtocolSessionsInternal(currentProtocol) response = self.ixnObj.get(self.ixnObj.httpHeader+ethernet+'/ipv4', silentMode=silentMode) ipv4List = ['%s/%s/%s' % (ethernet, 'ipv4', str(i["id"])) for i in response.json()] response = self.ixnObj.get(self.ixnObj.httpHeader+ethernet+'/ipv6', silentMode=silentMode) ipv6List = ['%s/%s/%s' % (ethernet, 'ipv6', str(i["id"])) for i in response.json()] for layer3Ip in ipv4List+ipv6List: for protocol in l3ProtocolList: response = self.ixnObj.get(self.ixnObj.httpHeader+layer3Ip+'/'+protocol, silentMode=True, ignoreError=True) if response.json() == [] or 'errors' in response.json(): continue currentProtocolList = ['%s/%s/%s' % (layer3Ip, protocol, str(i["id"])) for i in response.json()] for currentProtocol in currentProtocolList: self.verifyAllProtocolSessionsInternal(currentProtocol, silentMode=silentMode)