Exemple #1
0
def _discoverDatabase(client, baseTopology):
    r'@types: BaseSapJmxClient, BaseTopology -> oshv'
    logger.info("Discover DB information")
    vector = ObjectStateHolderVector()
    try:
        dbInfo = _getDatabase(client)
    except (Exception, JException):
        logger.warnException("Failed to get DB info using new MBean model")
    else:
        if dbInfo:
            try:
                logger.info("Resolve DB address: ", dbInfo.hostname)
                dnsResolver = netutils.JavaDnsResolver()
                ips = dnsResolver.resolveIpsByHostname(dbInfo.hostname)
                hostReporter = sap.HostReporter(sap.HostBuilder())
                hostOsh, hVector = hostReporter.reportHostWithIps(*ips)
                vector.addAll(hVector)
                hVector.clear()
            except netutils.ResolveException:
                logger.warn("DB won't be reported as DB addr is not resolved")
            else:
                try:
                    logger.info("Discovered: ", dbInfo)
                    systemOsh = baseTopology.systemOsh
                    vector.addAll(sap_db.report_db_info(dbInfo, systemOsh, hostOsh))
                except ValueError, ve:
                    logger.warn("%s: %s" % (ve, dbInfo.type))
def _reportDatabases(dbInstance, systemOsh):
    r'''
    @type dbInstance: SapJEEMonitoringXmlParser.DbInstance
    @rtype: ObjectStateHolderVector
    '''
    vector = ObjectStateHolderVector()
    dbHostOsh, _, vector_ = _buildHostAndIpOshs(dbInstance.host.ip)
    vector.addAll(vector_)
    info = _buildDatabaseInfo(dbInstance)
    try:
        vector.addAll(sap_db.report_db_info(info, systemOsh, dbHostOsh))
    except ValueError, ve:
        logger.warn("Failed to report DB based on %s. %s" % (dbInstance, ve))
 def _report_topology(self, osh, host_osh, db_host_osh, topology):
     '@types: osh, osh, osh, _Topology -> list[osh]'
     system = topology.system
     system_osh, oshs = self.report_system(system, osh)
     system_osh.setStringAttribute('data_note', 'This SAP System link to ' + host_osh.getAttributeValue('host_key'))
     
     #Making database reporting optional depending on global configuration according to QCCR1H100374 Keep a possibility option to discover SAP related database via Host Applications job
     do_report_database = GeneralSettingsConfigFile.getInstance().getPropertyStringValue('reportSapAppServerDatabase', 'false')
     if do_report_database.lower() == 'true' and topology.db_info and db_host_osh:
         try:
             oshs.extend(sap_db.report_db_info(topology.db_info, system_osh, db_host_osh))
         except(Exception, JException), ve:
             msg = "Failed to report %s. %s" % (str(topology.db_info), ve)
             logger.warn(msg)
Exemple #4
0
    def _report_topology(self, osh, host_osh, db_host_osh, topology):
        '@types: osh, osh, osh, _Topology -> list[osh]'
        system = topology.system
        system_osh, oshs = self.report_system(system, osh)
        system_osh.setStringAttribute(
            'data_note', 'This SAP System link to ' +
            host_osh.getAttributeValue('host_key'))

        #Making database reporting optional depending on global configuration according to QCCR1H100374 Keep a possibility option to discover SAP related database via Host Applications job
        do_report_database = GeneralSettingsConfigFile.getInstance(
        ).getPropertyStringValue('reportSapAppServerDatabase', 'false')
        if do_report_database.lower(
        ) == 'true' and topology.db_info and db_host_osh:
            try:
                oshs.extend(
                    sap_db.report_db_info(topology.db_info, system_osh,
                                          db_host_osh))
            except (Exception, JException), ve:
                msg = "Failed to report %s. %s" % (str(topology.db_info), ve)
                logger.warn(msg)