def testRequestDBWriter(self): # test getWork schema = generate_reqmgr_schema() result = self.requestWriter.insertGenericRequest(schema[0]) self.assertEqual(len(result), 1, 'insert fail'); result = self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "assigned") self.assertEqual(result, 'not allowed state assigned', 'update fail') self.assertEqual(self.requestWriter.updateRequestStatus("not_exist_schema", "new"), 'Error: document not found') allowedStates = ["Closed", "Merge", "AlcaSkim", "Harvesting", "Processing Done", "completed"] for state in allowedStates: self.assertEqual(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], state), 'OK') self.assertEqual(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "Processing Done"), 'not allowed transition completed to Processing Done') self.assertEqual(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "normal-archived"), 'OK') result = self.requestWriter.getRequestByStatus(["normal-archived"], False, 1) self.assertEqual(len(result), 1, "should be 1 but %s" % result)
def testRequestDBWriter(self): # test getWork schema = generate_reqmgr_schema() result = self.requestWriter.insertGenericRequest(schema[0]) self.assertEquals(len(result), 1, "insert fail") self.assertEquals( self.requestWriter.updateRequestStatus(schema[0]["RequestName"], "failed"), "OK", "update fail" ) self.assertEquals( self.requestWriter.updateRequestStatus("not_exist_schema", "assigned"), "Error: document not found" ) result = self.requestWriter.updateRequestProperty(schema[0]["RequestName"], {"Teams": ["teamA"]}) self.assertEquals( self.requestWriter.updateRequestProperty(schema[0]["RequestName"], {"Teams": ["teamA"]}), "OK", "update fail", ) self.assertEquals( self.requestWriter.updateRequestProperty("not_exist_schema", {"Teams": "teamA"}), "Error: document not found", ) result = self.requestWriter.getRequestByNames([schema[0]["RequestName"]]) self.assertEquals(len(result), 1, "should be 1") result = self.requestWriter.getRequestByStatus(["failed"], False, 1) self.assertEquals(len(result), 1, "should be 1")
def testRequestDBWriter(self): # test getWork schema = generate_reqmgr_schema(3) result = self.requestWriter.insertGenericRequest(schema[0]) self.assertEqual(len(result), 1, 'insert fail'); self.assertEqual(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "failed"), 'OK', 'update fail') self.assertEqual(self.requestWriter.updateRequestStatus("not_exist_schema", "assigned"), 'Error: document not found') result = self.requestWriter.updateRequestProperty(schema[0]['RequestName'], {'Teams': ['teamA']}) self.assertEqual(self.requestWriter.updateRequestProperty(schema[0]['RequestName'], {'Teams': ['teamA']}), 'OK', 'update fail') self.assertEqual(self.requestWriter.updateRequestProperty("not_exist_schema", {'Teams': 'teamA'}), 'Error: document not found') result = self.requestReader.getRequestByNames([schema[0]['RequestName']]) self.assertEqual(len(result), 1, "should be 1") result = self.requestReader.getRequestByStatus(["failed"], False, 1) self.assertEqual(len(result), 1, "should be 1") result = self.requestReader.getStatusAndTypeByRequest([schema[0]['RequestName']]) self.assertEqual(result[schema[0]['RequestName']][0], 'failed', "should be failed") result = self.requestWriter.insertGenericRequest(schema[1]) time.sleep(2) result = self.requestWriter.insertGenericRequest(schema[2]) endTime = int(time.time()) - 1 result = self.requestReader.getRequestByStatusAndEndTime("new", False, endTime) self.assertEqual(len(result), 1, "should be 1") endTime = int(time.time()) + 1 result = self.requestReader.getRequestByStatusAndEndTime("new", False, endTime) self.assertEqual(len(result), 2, "should be 2")
def testRequestDBWriter(self): # test getWork schema = generate_reqmgr_schema() result = self.requestWriter.insertGenericRequest(schema[0]) self.assertEquals(len(result), 1, 'insert fail'); result = self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "assigned") self.assertEquals(result, 'not allowed state assigned', 'update fail') self.assertEquals(self.requestWriter.updateRequestStatus("not_exist_schema", "new"), 'Error: document not found') allowedStates = ["Closed", "Merge", "AlcaSkim", "Harvesting", "Processing Done", "completed"] for state in allowedStates: self.assertEquals(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], state), 'OK') self.assertEquals(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "Processing Done"), 'not allowed transition completed to Processing Done') self.assertEquals(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "normal-archived"), 'OK') result = self.requestWriter.getRequestByStatus(["normal-archived"], False, 1) self.assertEquals(len(result), 1, "should be 1 but %s" % result)
def testRequestDBWriter(self): # test getWork schema = generate_reqmgr_schema(3) result = self.requestWriter.insertGenericRequest(schema[0]) self.assertEqual(len(result), 1, "insert fail") self.assertEqual( self.requestWriter.updateRequestStatus(schema[0]["RequestName"], "failed"), "OK", "update fail" ) self.assertEqual( self.requestWriter.updateRequestStatus("not_exist_schema", "assigned"), "Error: document not found" ) result = self.requestWriter.updateRequestProperty(schema[0]["RequestName"], {"Teams": ["teamA"]}) self.assertEqual( self.requestWriter.updateRequestProperty(schema[0]["RequestName"], {"Teams": ["teamA"]}), "OK", "update fail", ) self.assertEqual( self.requestWriter.updateRequestProperty("not_exist_schema", {"Teams": "teamA"}), "Error: document not found", ) result = self.requestReader.getRequestByNames([schema[0]["RequestName"]]) self.assertEqual(len(result), 1, "should be 1") result = self.requestReader.getRequestByStatus(["failed"], False, 1) self.assertEqual(len(result), 1, "should be 1") result = self.requestReader.getStatusAndTypeByRequest([schema[0]["RequestName"]]) self.assertEqual(result[schema[0]["RequestName"]][0], "failed", "should be failed") result = self.requestWriter.insertGenericRequest(schema[1]) time.sleep(2) result = self.requestWriter.insertGenericRequest(schema[2]) endTime = int(time.time()) - 1 result = self.requestReader.getRequestByStatusAndStartTime("new", False, endTime) self.assertEqual(len(result), 1, "should be 1") endTime = int(time.time()) + 1 result = self.requestReader.getRequestByStatusAndStartTime("new", False, endTime) self.assertEqual(len(result), 2, "should be 2")
def testRequestDBWriter(self): # test getWork schema = generate_reqmgr_schema() result = self.requestWriter.insertGenericRequest(schema[0]) self.assertEquals(len(result), 1, 'insert fail'); self.assertEquals(self.requestWriter.updateRequestStatus(schema[0]['RequestName'], "failed"), 'OK', 'update fail') self.assertEquals(self.requestWriter.updateRequestStatus("not_exist_schema", "assigned"), 'Error: document not found') result = self.requestWriter.updateRequestProperty(schema[0]['RequestName'], {'Teams': ['teamA']}) self.assertEquals(self.requestWriter.updateRequestProperty(schema[0]['RequestName'], {'Teams': ['teamA']}), 'OK', 'update fail') self.assertEquals(self.requestWriter.updateRequestProperty("not_exist_schema", {'Teams': 'teamA'}), 'Error: document not found') result = self.requestWriter.getRequestByNames([schema[0]['RequestName']]) self.assertEquals(len(result), 1, "should be 1") result = self.requestWriter.getRequestByStatus(["failed"], False, 1) self.assertEquals(len(result), 1, "should be 1")
def testWMStatsWriter(self): # test getWork schema = generate_reqmgr_schema() result = self.reqDBWriter.insertGenericRequest(schema[0]) self.assertEqual(result[0]['ok'], True, 'insert fail') result = self.reqDBWriter.updateRequestStatus(schema[0]['RequestName'], "failed") self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestStatus("not_exist_schema", "assigned") self.assertEqual(result,'Error: document not found') result = self.reqDBWriter.updateRequestProperty(schema[0]['RequestName'], {"Teams": ['teamA']}) self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestProperty("not_exist_schema", {"Teams": ['teamA']}) self.assertEqual(result, 'Error: document not found') totalStats = {'TotalEstimatedJobs': 100, 'TotalInputEvents': 1000, 'TotalInputLumis': 1234, 'TotalInputFiles': 5} result = self.reqDBWriter.updateRequestProperty(schema[0]['RequestName'], totalStats) self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestProperty(schema[0]['RequestName'], totalStats) self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestProperty("not_exist_schema", totalStats) self.assertEqual(result, 'Error: document not found') spec1 = newWorkload(schema[0]['RequestName']) production = spec1.newTask("Production") production.setTaskType("Merge") production.setSiteWhitelist(['TEST_SITE']) properties = {"RequestPriority": spec1.priority(), 'SiteWhitelist': spec1.getTopLevelTask()[0].siteWhitelist(), 'OutputDatasets': spec1.listOutputDatasets()} result = self.reqDBWriter.updateRequestProperty(spec1.name(), properties) self.assertEqual(result, 'OK', 'update fail') spec2 = newWorkload("not_exist_schema") production = spec2.newTask("Production") production.setTaskType("Merge") properties = {"RequestPriority": spec2.priority(), 'SiteWhitelist': spec2.getTopLevelTask()[0].siteWhitelist(), 'OutputDatasets': spec2.listOutputDatasets()} result = self.reqDBWriter.updateRequestProperty(spec2.name(), properties) self.assertEqual(result, 'Error: document not found') requests = self.wmstatsReader.getRequestByStatus(["failed"], jobInfoFlag = False, legacyFormat = True) self.assertEqual(requests.keys(), [schema[0]['RequestName']]) requestCollection = RequestInfoCollection(requests) result = requestCollection.getJSONData() self.assertEqual(result.keys(), [schema[0]['RequestName']]) requests = self.wmstatsReader.getActiveData() self.assertEqual(requests.keys(), [schema[0]['RequestName']]) requests = self.wmstatsReader.getRequestByStatus(["failed"]) self.assertEqual(requests.keys(), [schema[0]['RequestName']]) requests = self.wmstatsReader.getRequestSummaryWithJobInfo(schema[0]['RequestName']) self.assertEqual(requests.keys(), [schema[0]['RequestName']])
def testWMStatsWriter(self): # test getWork schema = generate_reqmgr_schema() result = self.reqDBWriter.insertGenericRequest(schema[0]) self.assertEqual(result[0]['ok'], True, 'insert fail') result = self.reqDBWriter.updateRequestStatus(schema[0]['RequestName'], "failed") self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestStatus("not_exist_schema", "assigned") self.assertEqual(result, 'Error: document not found') result = self.reqDBWriter.updateRequestProperty( schema[0]['RequestName'], {"Team": 'teamA'}) self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestProperty( "not_exist_schema", {"Team": 'teamA'}) self.assertEqual(result, 'Error: document not found') totalStats = { 'TotalEstimatedJobs': 100, 'TotalInputEvents': 1000, 'TotalInputLumis': 1234, 'TotalInputFiles': 5 } result = self.reqDBWriter.updateRequestProperty( schema[0]['RequestName'], totalStats) self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestProperty( schema[0]['RequestName'], totalStats) self.assertEqual(result, 'OK', 'update fail') result = self.reqDBWriter.updateRequestProperty( "not_exist_schema", totalStats) self.assertEqual(result, 'Error: document not found') spec1 = newWorkload(schema[0]['RequestName']) production = spec1.newTask("Production") production.setTaskType("Merge") production.setSiteWhitelist(['TEST_SITE']) properties = { "RequestPriority": spec1.priority(), 'SiteWhitelist': spec1.getTopLevelTask()[0].siteWhitelist(), 'OutputDatasets': spec1.listOutputDatasets() } result = self.reqDBWriter.updateRequestProperty( spec1.name(), properties) self.assertEqual(result, 'OK', 'update fail') spec2 = newWorkload("not_exist_schema") production = spec2.newTask("Production") production.setTaskType("Merge") properties = { "RequestPriority": spec2.priority(), 'SiteWhitelist': spec2.getTopLevelTask()[0].siteWhitelist(), 'OutputDatasets': spec2.listOutputDatasets() } result = self.reqDBWriter.updateRequestProperty( spec2.name(), properties) self.assertEqual(result, 'Error: document not found') requests = self.wmstatsReader.getRequestByStatus(["failed"], jobInfoFlag=False, legacyFormat=True) self.assertEqual(requests.keys(), [schema[0]['RequestName']]) requestCollection = RequestInfoCollection(requests) result = requestCollection.getJSONData() self.assertEqual(result.keys(), [schema[0]['RequestName']]) requests = self.wmstatsReader.getActiveData() self.assertEqual(requests.keys(), [schema[0]['RequestName']]) requests = self.wmstatsReader.getRequestByStatus(["failed"]) self.assertEqual(requests.keys(), [schema[0]['RequestName']]) requests = self.wmstatsReader.getRequestSummaryWithJobInfo( schema[0]['RequestName']) self.assertEqual(requests.keys(), [schema[0]['RequestName']])