def __call__(self, wmTask): """ Trip through steps, find CMSSW steps, pull in config files, PSet Tweaks etc """ for t in wmTask.steps().nodeIterator(): t = WMStep.WMStepHelper(t) stepPath = "%s/%s" % (self.workingDirectory(), t.name()) # the CMSSW has a special case with its ConfigCache argument if not t.stepType() in ("CMSSW", "MulticoreCMSSW"): continue if getattr(t.data.application.configuration, 'configCacheUrl', None) != None: # main config file fileTarget = "%s/%s" % ( stepPath, t.data.application.command.configuration) #urllib.urlretrieve( # t.data.application.configuration.retrieveConfigUrl, # fileTarget) # PSet Tweak cacheUrl = t.data.application.configuration.configCacheUrl cacheDb = t.data.application.configuration.cacheName configId = t.data.application.configuration.configId tweakTarget = t.data.application.command.psetTweak configCache = ConfigCache(cacheUrl, cacheDb) configCache.loadByID(configId) configCache.saveConfigToDisk(targetFile = fileTarget) tweak = TweakAPI.makeTweakFromJSON(configCache.getPSetTweaks()) if tweak: tweakFile = "%s/%s" % (stepPath, tweakTarget) tweak.persist(tweakFile, "json")
def testE_SaveConfigFileToDisk(self): """ _SaveConfigFileToDisk_ Check and see if we can save the config file attachment to disk """ targetFile = os.path.join(self.testDir, 'configCache.test') configCache = ConfigCache(os.environ["COUCHURL"], couchDBName = 'config_test') configCache.createUserGroup(groupname = "testGroup", username = '******') configCache.attachments['configFile'] = 'ThisIsAConfigFile' configCache.saveConfigToDisk(targetFile = targetFile) f = open(targetFile, 'r') content = f.read() f.close() self.assertEqual(content, configCache.getConfig()) return