示例#1
0
  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)
示例#2
0
    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)
示例#3
0
 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)
示例#4
0
 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))
示例#5
0
 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())
示例#6
0
    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)
示例#7
0
 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))
示例#8
0
 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())
示例#9
0
  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)
示例#10
0
    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)
示例#11
0
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()])
示例#12
0
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()])
示例#13
0
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)
示例#15
0
  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)