82 def genDb(self, dbFileName, dbName, params, folderPath, params64 = {}):
86 raise ParameterDbFillerError (
'Must set begin run number before generating db')
88 raise ParameterDbFillerError (
'Must set end run number before generating db')
90 raise ParameterDbFillerError (
'No parameters for db ' + dbName)
95 print (
"ParameterDbFiller.genDb: Removed db", dbFileName)
100 dbSvc=cool.DatabaseSvcFactory.databaseService()
103 dbstring=
"sqlite://;schema=" + dbFileName +
";dbname=" + dbName
105 db=dbSvc.createDatabase(dbstring)
106 except Exception
as e:
107 print (
'ParameterDbFiller.genDb: Problem creating database',e)
109 print (
"ParameterDbFiller.genDb: Created database",dbstring)
112 spec=cool.RecordSpecification()
114 spec.extend(key, cool.StorageType.String4k)
118 spec.extend(key, cool.StorageType.String64k)
121 desc =
'<timeStamp>run-event</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
127 folderSpec = cool.FolderSpecification(cool.FolderVersioning.SINGLE_VERSION, spec)
128 myfolder = db.createFolder(folderPath, folderSpec, desc,
True)
131 data = cool.Record(spec)
132 for k, v
in params.items():
134 for k, v
in params64.items():
137 print (
"ParameterDbFiller.genDb: Recording parameters", data)
141 print (
"ParameterDbFiller.genDb: Stored object")
151 print (
"ParameterDbFiller.dumpDb: Dumping database:", dbstring)
153 dbSvc = cool.DatabaseSvcFactory.databaseService()
156 db = dbSvc.openDatabase(dbstring,
False)
157 except Exception
as e:
158 print (
'ParameterDbFiller.dumpDb: Problem opening database',e)
162 folders = db.listAllNodes()
165 if (
not db.existsFolder(ff)):
169 print (
"ParameterDbFiller.dumpDb: Dumping folder " + str(ff))
181 nobjs = f.countObjects( cool.ValidityKeyMin,
183 cool.ChannelSelection.all())
185 print (
"ParameterDbFiller.dumpDb: number of IOV payloads", nobjs)
187 objs = f.browseObjects( cool.ValidityKeyMin,
189 cool.ChannelSelection.all())
191 while objs.goToNext():
192 obj = objs.currentRef()
193 print (
"ParameterDbFiller.dumpDb: Payload", i, end=
'')
194 print (
"since [r,l]: [", obj.since() >> 32,
',',obj.since()%0x100000000,
']', end=
'')
195 print (
"until [r,l]: [", obj.until() >> 32,
',',obj.until()%0x100000000,
']', end=
'')
196 print (
"payload", obj.payload(), end=
'')
197 print (
"chan",obj.channelId() )