コード例 #1
0
ファイル: sap_site_by_jco.py プロジェクト: deezeesms/dd-git
def _groupPfsIniByInstanceName(profiles):
    r''' Group profiles by instance to which they belong
    @types: list[tuple[str, str]] -> dict[str, InstancePfSet]
    @param profiles: list of tuples where first item is name and other is
            content of profile
    @return: dictionary of grouped profilesby instance name
    '''
    pfSetByInstName = {}
    iniParser = IniParser()
    for pfName, pfContent in profiles:
        instName = (StartProfileParser.parseInstanceNameFromPfName(pfName)
                    or InstanceProfileParser.parseInstanceNameFromPfName(pfName))
        if instName:
            iniDoc = iniParser.parseIniDoc(pfContent)
            pfSet = pfSetByInstName.get(instName, InstancePfSet(None, None))
            if StartProfileParser.isApplicable(pfName):
                pfSetByInstName[instName] = pfSet._replace(startPfIni=iniDoc)
            elif InstanceProfileParser.isApplicable(pfName):
                pfSetByInstName[instName] = pfSet._replace(instancePfIni=iniDoc)
        else:
            logger.warn("Failed to determine profile type: %s" % pfName)
    return pfSetByInstName