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