def start(self): check_beginning_time = time.time() print 'Starting IB requests state check' building_requests = tagCollectorAPI.getBuildingIBRequests() now = datetime.datetime.today() for building_request in building_requests: btime = time.strptime(building_request['building_timestamp'], '%Y-%m-%d %H:%M:%S') build_start_time = datetime.datetime(*btime[0:6]) delta = (now - build_start_time) total_building_time = delta.days * 24 * 60 * 60 + delta.seconds if total_building_time >= MAX_BUILDING_TIME_IN_SECONDS: isSetToFailed = tagCollectorAPI.failRequest( building_request['id'], 0, 0, 0, 0, '') while not isSetToFailed and (time.time() - check_beginning_time ) > MAX_CHECK_RUNNING_TIME: isSetToFailed = tagCollectorAPI.failRequest( data['id'], 0, 0, 0, 0, '') if not isSetToFailed: time.sleep(STATUS_SETTING_RETRY_TIME) print "Cancelled build request: \n%s\nReason: %s\n" % ( str(building_request), 'The building time is more than %s hours' % str(MAX_BUILDING_TIME_IN_SECONDS / 60 / 60), ) self.sendMail = True
def test_build_and_fail_ib(self): ibData = tagCollectorAPI.getIBPendingRequests() self.assertTrue(ibData) tagCollectorAPI.setRequestBuilding( ibData["id"], ibData["release_name"], machine=socket.gethostname(), pid=os.getpid() ) ibBuildingRequests = tagCollectorAPI.getBuildingIBRequests() self.assertTrue(ibBuildingRequests) self.assertEquals(self.release_name, ibBuildingRequests[0]["release_name"]) self.assertEquals(self.architecture_name, ibBuildingRequests[0]["architecture_name"]) self.assertEquals("IB", ibBuildingRequests[0]["type"]) isFinished = tagCollectorAPI.failRequest(ibBuildingRequests[0]["id"]) self.assertTrue(isFinished)
def test_build_and_fail_ib(self): ibData = tagCollectorAPI.getIBPendingRequests() self.assertTrue(ibData) tagCollectorAPI.setRequestBuilding(ibData['id'], ibData['release_name'], machine=socket.gethostname(), pid=os.getpid()) ibBuildingRequests = tagCollectorAPI.getBuildingIBRequests() self.assertTrue(ibBuildingRequests) self.assertEquals(self.release_name, ibBuildingRequests[0]['release_name']) self.assertEquals(self.architecture_name, ibBuildingRequests[0]['architecture_name']) self.assertEquals('IB', ibBuildingRequests[0]['type']) isFinished = tagCollectorAPI.failRequest(ibBuildingRequests[0]['id']) self.assertTrue(isFinished)
def start(self): check_beginning_time = time.time() print 'Starting IB requests state check' building_requests = tagCollectorAPI.getBuildingIBRequests() now = datetime.datetime.today() for building_request in building_requests: btime = time.strptime(building_request['building_timestamp'], '%Y-%m-%d %H:%M:%S') build_start_time = datetime.datetime(*btime[0:6]) delta = (now - build_start_time) total_building_time = delta.days*24*60*60 + delta.seconds if total_building_time >= MAX_BUILDING_TIME_IN_SECONDS: isSetToFailed = tagCollectorAPI.failRequest(building_request['id'], 0,0,0,0,'') while not isSetToFailed and (time.time()-check_beginning_time) > MAX_CHECK_RUNNING_TIME: isSetToFailed = tagCollectorAPI.failRequest(data['id'], 0,0,0,0,'') if not isSetToFailed: time.sleep(STATUS_SETTING_RETRY_TIME) print "Cancelled build request: \n%s\nReason: %s\n" % (str(building_request), 'The building time is more than %s hours' % str(MAX_BUILDING_TIME_IN_SECONDS / 60 / 60),) self.sendMail=True
def test_ib_building_queue_empty(self): ibBuildingRequests = tagCollectorAPI.getBuildingIBRequests() self.assertFalse(ibBuildingRequests)