def make_task_request( self, service_account, service_account_token, try_number=1): now = utils.utcnow() args = { 'created_ts': now, 'manual_tags': [u'tag:1'], 'name': 'Request with %s' % service_account, 'priority': 50, 'task_slices': [ task_request.TaskSlice( expiration_secs=60, properties=task_request.TaskProperties( command=[u'command1'], dimensions_data={u'pool': [u'default']}, execution_timeout_secs=24*60*60)), ], 'user': '******', } req = task_request.TaskRequest(**args) task_request.init_new_request(req, True) req.key = task_request.new_request_key() req.service_account = service_account req.service_account_token = service_account_token req.put() summary_key = task_pack.request_key_to_result_summary_key(req.key) run_result_key = task_pack.result_summary_key_to_run_result_key( summary_key, try_number) return task_pack.pack_run_result_key(run_result_key)
def run_result_key(self): if self.deduped_from: # Return the run results for the original task. return task_pack.unpack_run_result_key(self.deduped_from) if not self.try_number: return None return task_pack.result_summary_key_to_run_result_key(self.key, self.try_number)
def run_result_key(self): """Returns the TaskRunResult ndb.Key that will be created for this TaskToRun once reaped. """ summary_key = task_pack.request_key_to_result_summary_key( self.request_key) return task_pack.result_summary_key_to_run_result_key( summary_key, self.try_number)
def test_run_result_key_to_result_summary_key(self): request_key = task_pack.unpack_request_key('11') result_summary_key = task_pack.request_key_to_result_summary_key( request_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 1) self.assertEqual( result_summary_key, task_pack.run_result_key_to_result_summary_key(run_result_key))
def test_run_result_key_to_performance_stats_key(self): request_key = task_pack.unpack_request_key('11') result_summary_key = task_pack.request_key_to_result_summary_key( request_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 1) perf_stats_key = task_pack.run_result_key_to_performance_stats_key( run_result_key) self.assertEqual('PerformanceStats',perf_stats_key.kind())
def run_result_key(self): if self.deduped_from: # Return the run results for the original task. return task_pack.unpack_run_result_key(self.deduped_from) if not self.try_number: return None return task_pack.result_summary_key_to_run_result_key( self.key, self.try_number)
def test_run_result_key_to_performance_stats_key(self): request_key = task_pack.unpack_request_key('11') result_summary_key = task_pack.request_key_to_result_summary_key( request_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 1) perf_stats_key = task_pack.run_result_key_to_performance_stats_key( run_result_key) self.assertEqual('PerformanceStats', perf_stats_key.kind())
def test_pack_run_result_key(self): request_key = task_pack.unpack_request_key('11') result_summary_key = task_pack.request_key_to_result_summary_key( request_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 1) self.assertEqual('111', task_pack.pack_run_result_key(run_result_key)) with self.assertRaises(AssertionError): task_pack.pack_run_result_key(result_summary_key)
def new_run_result(request, try_number, bot_id, bot_version): """Returns a new TaskRunResult for a TaskRequest. The caller must save it in the DB. """ assert isinstance(request, task_request.TaskRequest) summary_key = task_pack.request_key_to_result_summary_key(request.key) return TaskRunResult(key=task_pack.result_summary_key_to_run_result_key( summary_key, try_number), bot_id=bot_id, started_ts=utils.utcnow(), bot_version=bot_version, server_versions=[utils.get_app_version()])
def new_run_result(request, try_number, bot_id, bot_version): """Returns a new TaskRunResult for a TaskRequest. The caller must save it in the DB. """ assert isinstance(request, task_request.TaskRequest) summary_key = task_pack.request_key_to_result_summary_key(request.key) return TaskRunResult( key=task_pack.result_summary_key_to_run_result_key( summary_key, try_number), bot_id=bot_id, started_ts=utils.utcnow(), bot_version=bot_version, server_versions=[utils.get_app_version()])
def new_run_result(request, to_run, bot_id, bot_version, bot_dimensions): """Returns a new TaskRunResult for a TaskRequest. Initializes only the immutable parts. The caller must save it in the DB. """ assert isinstance(request, task_request.TaskRequest) summary_key = task_pack.request_key_to_result_summary_key(request.key) return TaskRunResult(key=task_pack.result_summary_key_to_run_result_key( summary_key, to_run.try_number), bot_dimensions=bot_dimensions, bot_id=bot_id, bot_version=bot_version, current_task_slice=to_run.task_slice_index, server_versions=[utils.get_app_version()])
def test_result_summary_key_to_run_result_key(self): request_key = task_pack.unpack_request_key('11') result_summary_key = task_pack.request_key_to_result_summary_key( request_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 1) expected = ndb.Key('TaskRequest', 0x7fffffffffffffee, 'TaskResultSummary', 1, 'TaskRunResult', 1) self.assertEqual(expected, run_result_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 2) expected = ndb.Key( 'TaskRequest', 0x7fffffffffffffee, 'TaskResultSummary', 1, 'TaskRunResult', 2) self.assertEqual(expected, run_result_key) with self.assertRaises(ValueError): task_pack.result_summary_key_to_run_result_key(result_summary_key, 0) with self.assertRaises(ValueError): task_pack.result_summary_key_to_run_result_key(result_summary_key, 3)
def test_result_summary_key_to_run_result_key(self): request_key = task_pack.unpack_request_key('11') result_summary_key = task_pack.request_key_to_result_summary_key( request_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 1) expected = ndb.Key( 'TaskRequest', 0x7fffffffffffffee, 'TaskResultSummary', 1, 'TaskRunResult', 1) self.assertEqual(expected, run_result_key) run_result_key = task_pack.result_summary_key_to_run_result_key( result_summary_key, 2) expected = ndb.Key( 'TaskRequest', 0x7fffffffffffffee, 'TaskResultSummary', 1, 'TaskRunResult', 2) self.assertEqual(expected, run_result_key) with self.assertRaises(ValueError): task_pack.result_summary_key_to_run_result_key(result_summary_key, 0) with self.assertRaises(NotImplementedError): task_pack.result_summary_key_to_run_result_key(result_summary_key, 3)