def DiscoveryMain(Framework): properties = Properties() SITE_ID = Framework.getDestinationAttribute('SITE_ID') instance_number = Framework.getDestinationAttribute('instance_number') connection_client = Framework.getDestinationAttribute('connection_client') logger.debug('Connecting to a SAP instance number:', str(instance_number)) properties.setProperty(Protocol.SAP_PROTOCOL_ATTRIBUTE_SYSNUMBER, instance_number) if (connection_client is not None) and (connection_client != 'NA'): logger.debug('Connecting to a SAP system with client:', str(connection_client)) properties.setProperty(Protocol.SAP_PROTOCOL_ATTRIBUTE_CLIENT, connection_client) discoverScenarioProcesses = Boolean.parseBoolean(Framework.getParameter('discoverScenarioProcesses')) GET_PROCESS_STEPS = Boolean.parseBoolean(Framework.getParameter('getProcessSteps')) reportCIsInChunks = Boolean.parseBoolean(Framework.getParameter('reportCIsInChunks')) errormsg = '' client = None try: try: client = Framework.createClient(properties) solman = saputils.SapSolman(client) except (NoClassDefFoundError, MissingJarsException, ExceptionInInitializerError): errormsg = 'SAP drivers are missing' logger.debugException(errormsg) except: errormsg = 'Connection failed' logger.debugException(errormsg) else: try: sVector, sysToOshPairs = discoverSystems(solman) Framework.sendObjects(sVector) sVector.clear() sysNames = [system.getName() for system, _ in sysToOshPairs] sys_name_to_system = {} for system, _ in sysToOshPairs: sys_name_to_system[system.getName()] = system component2system = logicalComponents(sysNames, solman) businessProcesses(Framework, solman, component2system, sys_name_to_system, SITE_ID, GET_PROCESS_STEPS, reportCIsInChunks, discoverScenarioProcesses) except: strmsg = str(sys.exc_info()[1]) if (strmsg.upper().find('TABLE_NOT_AVAILABLE') > -1): errmsg = 'No solution manager found' logger.debugException(errmsg) Framework.reportError(errmsg) else: # unknown exception caught raise except JException, ex: ex_info = ex.getMessage() errormessages.resolveAndReport(ex_info, 'SAP JCO', Framework)
def getTopology(framework, solman): sendVector = framework.sendObjects reportError = framework.reportWarning reportCmpAsConfig = _isComponentsReportedAsConfigFile(framework) sysToOshPairs = () try: sVector, sysToOshPairs = sap_solman_discoverer.discoverSystems(solman) sendVector(sVector) sVector.clear() except (Exception, JException), e: logger.warnException(str(e)) raise Exception("Failed to discover Systems")
def DiscoveryMain(Framework): properties = Properties() SITE_ID = Framework.getDestinationAttribute('SITE_ID') instance_number = Framework.getDestinationAttribute('instance_number') connection_client = Framework.getDestinationAttribute('connection_client') logger.debug('Connecting to a SAP instance number:', str(instance_number)) properties.setProperty(Protocol.SAP_PROTOCOL_ATTRIBUTE_SYSNUMBER, instance_number) if (connection_client is not None) and (connection_client != 'NA'): logger.debug('Connecting to a SAP system with client:', str(connection_client)) properties.setProperty(Protocol.SAP_PROTOCOL_ATTRIBUTE_CLIENT, connection_client) discoverScenarioProcesses = Boolean.parseBoolean( Framework.getParameter('discoverScenarioProcesses')) GET_PROCESS_STEPS = Boolean.parseBoolean( Framework.getParameter('getProcessSteps')) reportCIsInChunks = Boolean.parseBoolean( Framework.getParameter('reportCIsInChunks')) errormsg = '' client = None try: try: client = Framework.createClient(properties) solman = saputils.SapSolman(client) except (NoClassDefFoundError, MissingJarsException, ExceptionInInitializerError): errormsg = 'SAP drivers are missing' logger.debugException(errormsg) except: errormsg = 'Connection failed' logger.debugException(errormsg) else: try: sVector, sysToOshPairs = discoverSystems(solman) Framework.sendObjects(sVector) sVector.clear() sysNames = [system.getName() for system, _ in sysToOshPairs] sys_name_to_system = {} for system, _ in sysToOshPairs: sys_name_to_system[system.getName()] = system component2system = logicalComponents(sysNames, solman) businessProcesses(Framework, solman, component2system, sys_name_to_system, SITE_ID, GET_PROCESS_STEPS, reportCIsInChunks, discoverScenarioProcesses) except: strmsg = str(sys.exc_info()[1]) if (strmsg.upper().find('TABLE_NOT_AVAILABLE') > -1): errmsg = 'No solution manager found' logger.debugException(errmsg) Framework.reportError(errmsg) else: # unknown exception caught raise except JException, ex: ex_info = ex.getMessage() errormessages.resolveAndReport(ex_info, 'SAP JCO', Framework)