def DiscoveryMain(Framework): properties = Properties() properties.setProperty('timeoutDiscover', Framework.getParameter('timeoutDiscover')) properties.setProperty('retryDiscover', Framework.getParameter('retryDiscover')) properties.setProperty('pingProtocol', Framework.getParameter('pingProtocol')) properties.setProperty('threadPoolSize', Framework.getParameter('threadPoolSize')) excludePatterns = icmp_utils.preparePatterns(Framework.getParameter('excludePatternsList')) rangeString = Framework.getParameter('range') or 'NA' probeName = Framework.getDestinationAttribute('probeName') selectedRangeList = None #clear it because IP seep will load state for 'IP range'. See 'icmp_utils.getProbeRanges()' Framework.clearState() try: client = Framework.createClient(ClientsConsts.ICMP_PROTOCOL_NAME, properties) try: if rangeString != 'NA': selectedRangeList = SNMP_Connection_Utils.splitByRanges(rangeString) probeRangesForIPv6 = icmp_utils.getProbeRanges(selectedRangeList, probeName, Framework, False, True) if SNMP_Connection_Utils.isIPv6Overflow(probeRangesForIPv6): # if IPv6 addresses exceeds the max allowed count, won't ping return [] probeRanges = icmp_utils.getProbeRanges(selectedRangeList, probeName, Framework, True, True) logger.debug('Start working on total probe ranges: ', len(probeRanges)) for probeRange in probeRanges: if (probeRange.getType().equals(RangeType.CLIENT) or probeRange.getType().equals('Client')): SNMP_Connection_Utils.discoverClientInRange(Framework, client, probeRange, excludePatterns) logger.debug('Finished working on all Probes Ranges.') finally: client.close() except: msg = logger.prepareJythonStackTrace('') errormessages.resolveAndReport(msg, ClientsConsts.ICMP_PROTOCOL_NAME, Framework) return ObjectStateHolderVector()
def DiscoveryMain(Framework): OSHVResult = ObjectStateHolderVector() # just in case we couldnt do any connection (vec, errObj) = SNMP_Connection_Utils.mainFunction(Framework, 0) logger.debug('OSHVector contains ', vec.size(), ' objects.') if vec.size() == 0: logger.debug('Failed to connect or no valid protocols defined. No Host CI will be created') if (errObj == None or errObj.errMsg == None or errObj.errMsg.strip() == ''): altErr = errorobject.createError(errorcodes.INTERNAL_ERROR, None, 'Discovery failed due to internal error') logger.reportErrorObject(altErr) else: logger.reportWarningObject(errObj) else: OSHVResult.addAll(vec) return OSHVResult
def DiscoveryMain(Framework): OSHVResult = ObjectStateHolderVector() # just in case we couldnt do any connection (vec, errObj) = SNMP_Connection_Utils.mainFunction(Framework, 0) logger.debug('OSHVector contains ', vec.size(), ' objects.') if vec.size() == 0: logger.debug( 'Failed to connect or no valid protocols defined. No Host CI will be created' ) if (errObj == None or errObj.errMsg == None or errObj.errMsg.strip() == ''): altErr = errorobject.createError( errorcodes.INTERNAL_ERROR, None, 'Discovery failed due to internal error') logger.reportErrorObject(altErr) else: logger.reportWarningObject(errObj) else: OSHVResult.addAll(vec) return OSHVResult