Beispiel #1
0
    def testLatestJobDataExpired(self):
        self.assertFalse(DataCache.islatestJobDataExpired())

        DataCache.setDuration(-1)
        self.assertTrue(DataCache.islatestJobDataExpired())

        DataCache.setDuration(300)
        self.assertFalse(DataCache.islatestJobDataExpired())
        DataCache._lastedActiveDataFromAgent = {}
        self.assertTrue(DataCache.islatestJobDataExpired())

        self.assertEqual({}, DataCache.getlatestJobData())
Beispiel #2
0
    def testLatestJobDataExpired(self):
        self.assertFalse(DataCache.islatestJobDataExpired())

        DataCache.setDuration(-1)
        self.assertTrue(DataCache.islatestJobDataExpired())

        DataCache.setDuration(300)
        self.assertFalse(DataCache.islatestJobDataExpired())
        DataCache._lastedActiveDataFromAgent = {}
        self.assertTrue(DataCache.islatestJobDataExpired())

        self.assertEqual({}, DataCache.getlatestJobData())
Beispiel #3
0
    def testDuration(self):
        self.assertEqual(300, DataCache.getDuration())

        DataCache.setDuration(100)
        self.assertEqual(100, DataCache.getDuration())
Beispiel #4
0
    def testDuration(self):
        self.assertEqual(300, DataCache.getDuration())

        DataCache.setDuration(100)
        self.assertEqual(100, DataCache.getDuration())
from WMCore.Services.WMStats.WMStatsReader import WMStatsReader


@profile
def gatherActiveDataStats():
    wmstats_url = "https://cmsweb.cern.ch/couchdb/wmstats"
    reqmgrdb_url = "https://cmsweb.cern.ch/couchdb/reqmgr_workload_cache"
    jobInfoFlag = False
    tStart = time.time()
    try:
        if DataCache.islatestJobDataExpired():
            wmstatsDB = WMStatsReader(wmstats_url,
                                      reqdbURL=reqmgrdb_url,
                                      reqdbCouchApp="ReqMgr")
            jobData = wmstatsDB.getActiveData(jobInfoFlag=jobInfoFlag)
            DataCache.setlatestJobData(jobData)
            print("DataCache is updated: {}".format(len(jobData)))
        else:
            print("DataCache is up-to-date")
    except Exception as ex:
        print("Exception updating cache. Details: {}\nTraceback: {}".format(
            str(ex), str(traceback.format_exc())))
    print("Total time executing this cycle: {}".format(time.time() - tStart))


if __name__ == "__main__":
    DataCache.setDuration(100)
    while True:
        gatherActiveDataStats()
        time.sleep(60)