113def loadConfigurableDb():
114 """Helper function to load all ConfigurableDb files (modules) holding
115 informations about Configurables
116 """
117 import os
118 from os.path import join as path_join
119
120 log.debug("loading confDb files...")
121 nFiles = 0
122 pathlist = os.getenv("GAUDI_PLUGIN_PATH", "").split(os.pathsep) + os.getenv(
123 "LD_LIBRARY_PATH", ""
124 ).split(os.pathsep)
125 ignored_files = set(os.environ.get("CONFIGURABLE_DB_IGNORE", "").split(","))
126 for path in pathlist:
127 if not os.path.isdir(path):
128 continue
129 log.debug("walking in [%s]...", path)
130 confDbFiles = [
131 f
132 for f in [
133 path_join(path, f) for f in os.listdir(path) if f.endswith(".confdb")
134 ]
135 if os.path.isfile(f) and f not in ignored_files
136 ]
137
138 mergedConfDbFiles = [f for f in confDbFiles if f.endswith("_merged.confdb")]
139 if mergedConfDbFiles:
140
141 confDbFiles = mergedConfDbFiles
142
143 for confDb in confDbFiles:
144 log.debug("\t-loading [%s]...", confDb)
145 try:
146 cfgDb._loadModule(confDb)
147 except Exception as err:
148 log.warning("Could not load file [%s] !", confDb)
149 log.warning("Reason: %s", err)
150 nFiles += 1
151 log.debug("loading confDb files... [DONE]")
152 nPkgs = len(set([k["package"] for k in cfgDb.values()]))
153 log.debug("loaded %i confDb packages", nPkgs)
154 return nFiles
155
156