コード例 #1
0
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()
コード例 #2
0
ファイル: SNMP_Connection.py プロジェクト: ddonnelly19/dd-git
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
コード例 #3
0
ファイル: SNMP_Connection.py プロジェクト: deezeesms/dd-git
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