Example #1
0
def _discoverSoftwareCmps(sapUtils, config, system_osh):
    '@types: SapUtils, flow.DiscoveryConfigBuilder, osh -> oshv'
    logger.info("Discover software components")
    discoverer = sap_abap_discoverer.SoftwareComponentDiscovererByJco(sapUtils)
    cmps = discoverer.discoverComponents()
    logger.debug("Found %s components" % len(cmps))
    reportAsConfigFileEnabled = config.reportComponentsAsConfigFile
    vector = sap_abap.reportSoftwareCmps(cmps, system_osh, reportAsConfigFileEnabled)
    return vector
Example #2
0
def _discoverCmps(solman, sysPairsBySysName, sendVector, reportAsConfig,
                  reportError):
    '''
    Report components for systems that are discovered before

    @type sysNameToCmpPairs: tuple[str, sap.SoftwareComponent]
    @type sysPairsBySysName: dict[str, tuple[System, osh]]
    @type sendVector: oshv -> None
    '''
    try:
        sysNameToCmpPairs = _discoverSoftwareCmps(solman)
        cmpPairsBySysName = groupby(first, sysNameToCmpPairs)
        systems = sysPairsBySysName.iterkeys()
        hasComponents = cmpPairsBySysName.get
        for sysName in ifilter(hasComponents, systems):
            _, systemOsh = sysPairsBySysName.get(sysName)
            cmps = imap(second, cmpPairsBySysName.get(sysName))
            vec = sap_abap.reportSoftwareCmps(cmps, systemOsh, reportAsConfig)
            sendVector(vec)
    except (Exception, JException):
        msg = "Failed to discover Software Components"
        logger.warnException(msg)
        reportError(msg)