Exemplo n.º 1
0
def createCssDiscoverer(snmpClient, Framework, OSHVResult, hostOsh):
    for cssOidBase in CSS_OID_BASES:
        snmpAgent = SnmpAgent(cssOidBase, snmpClient, Framework)
        queryProducer = SnmpQueryBuilder(TEST_OID_OFFSET)
        queryProducer.addQueryElement(2, 'test')
        testResults = snmpAgent.getSnmpData(queryProducer)

        if len(testResults):
            return CssDiscoverer(snmpAgent, OSHVResult, Framework, hostOsh)

    raise NoCssException
Exemplo n.º 2
0
def createCssDiscoverer(snmpClient, Framework, OSHVResult, hostOsh):
	for cssOidBase in CSS_OID_BASES:
		snmpAgent = SnmpAgent(cssOidBase, snmpClient, Framework)
		queryProducer = SnmpQueryBuilder(TEST_OID_OFFSET)
		queryProducer.addQueryElement(2, 'test')
		testResults = snmpAgent.getSnmpData(queryProducer)
		
		if len(testResults):
			return CssDiscoverer(snmpAgent, OSHVResult, Framework, hostOsh)
		
	raise NoCssException
Exemplo n.º 3
0
def createF5Discoverer(snmpClient, Framework, OSHVResult):
    resultSet = snmpClient.executeQuery(F5_V4_TEST_QUERY)#@@CMD_PERMISION snmp protocol execution
    if resultSet.next():
        snmpAgent = SnmpAgent(F5_V4_OID_BASE, snmpClient, Framework)
        return F5v4Discoverer(snmpAgent, OSHVResult, Framework)
    
    resultSet = snmpClient.executeQuery(F5_V9_TEST_QUERY)#@@CMD_PERMISION snmp protocol execution
    if resultSet.next():
        snmpAgent = SnmpAgent(F5_V9_OID_BASE, snmpClient, Framework)
        return F5v9Discoverer(snmpAgent, OSHVResult, Framework)
    
    raise NoF5Exception
Exemplo n.º 4
0
def createA10Discoverer(snmpClient, Framework, OSHVResult):
    resultSet = snmpClient.executeQuery(A10_TEST_QUERY)#@@CMD_PERMISION snmp protocol execution
    if resultSet.next():
        snmpAgent = SnmpAgent(A10_OID_BASE, snmpClient, Framework)
        return A10Discoverer(snmpAgent, OSHVResult, Framework)

    raise NoA10Exception
Exemplo n.º 5
0
    def discoverF5(self, f5Osh):
        queryBuilder = SnmpQueryBuilder('1.4')
        queryBuilder.addQueryElement(1, 'name')
        queryBuilder.addQueryElement(2, 'version')
        queryBuilder.addQueryElement(3, 'build')
        queryBuilder.addQueryElement(4, 'edition')
        queryBuilder.addQueryElement(5, 'date')
        
        snmpAgent = SnmpAgent('1.3.6.1.4.1.3375.2', self.snmpAgent.snmpClient, self.Framework)
        
        try:
            productInformation = snmpAgent.getSnmpData(queryBuilder)[0]        
            f5Osh.setAttribute('application_version', productInformation.version)
        except:
            errorMsg = 'Failed to get general information'
            errobj = errorobject.createError(errorcodes.FAILED_GETTING_INFORMATION, ['snmp', 'general information'], errorMsg)
            logger.debugException(errorMsg)
            logger.reportWarningObject(errobj)

        self.discoverVirtualServers(f5Osh)
Exemplo n.º 6
0
def doQuerySNMPService(client, OSHVResult):
    _hostObj = modeling.createHostOSH(client.getIpAddress())
    snmpAgent = SnmpAgent('1.3.6.1.4.1.77', client, None)

    serviceTableWorker = SimpleTableWorker('1.2.3.1', 'service', snmpAgent)

    serviceTableWorker.defineMapping(1, 'data_name')
    serviceTableWorker.defineMappingByMap(2, 'service_installstatus', INSTALL_STATUS_DICT)
    serviceTableWorker.defineMappingByMap(3, 'service_operatingstatus', OPERATING_STATUS_DICT)
    serviceTableWorker.defineMappingByMap(4, 'service_canbeuninstalled', TRUE_FALSE_DICT)
    serviceTableWorker.defineMappingByMap(5, 'service_canbepaused', TRUE_FALSE_DICT)

    oshs = serviceTableWorker.createOSHs()

    for osh in oshs:
        osh.setContainer(_hostObj)
        OSHVResult.add(osh)
Exemplo n.º 7
0
def DiscoveryMain(Framework):
    OSHVResult = ObjectStateHolderVector()
    
    try:
        checkAlteon(Framework)
        snmpClient = Framework.createClient()
        ipAddress = Framework.getDestinationAttribute('ip_address')
        hostOsh = modeling.createHostOSH(ipAddress)
        OSHVResult.add(hostOsh)
        try:
            snmpAgent = SnmpAgent(ALTEON_OID_BASE, snmpClient, Framework);
            alteonDiscoverer = AlteonDiscoverer(snmpAgent, OSHVResult, Framework)
            alteonDiscoverer.discoverAlteon(hostOsh)
        finally:
            snmpClient.close()
    except:
        logger.errorException('')
        errobj = errorobject.createError(errorcodes.FAILED_TO_DISCOVER_ALTEON, None, 'Failed to discover Alteon')
        logger.reportErrorObject(errobj)
            
    return OSHVResult
Exemplo n.º 8
0
def DiscoveryMain(Framework):
    OSHVResult = ObjectStateHolderVector()
    ipAddress = Framework.getDestinationAttribute('ip_address')
    try:
        snmpClient = Framework.createClient()
        snmpAgent = SnmpAgent(CISCO_ACE_OID_BASE, snmpClient, Framework)
        try:
            cisco_Discoverer = Cisco_Discoverer(snmpAgent, OSHVResult,
                                                Framework)
            cisco_Discoverer.getTopology(ipAddress)
        finally:
            snmpClient.close()
    except NO_CISCO_ACE_Exception:
        logger.reportWarning("No Cisco ACE found on the remote machine")
    except:
        #TODO: use errormessages here
        msg = logger.prepareFullStackTrace('')
        errobj = errormessages.resolveError(msg, 'snmp')
        logger.reportErrorObject(errobj)
        logger.debugException('')

    return OSHVResult