def testGetSlaveStatuses(self):
     """Tests the redirect for GetSlaveStatuses function."""
     init = self.PatchObject(BuildStore,
                             'InitializeClients',
                             return_value=True)
     bs = BuildStore(_read_from_bb=False)
     fake_statuses = object()
     bs.cidb_conn = mock.MagicMock()
     self.PatchObject(bs.cidb_conn,
                      'GetSlaveStatuses',
                      return_value=fake_statuses)
     result = bs.GetSlaveStatuses(buildstore.BuildIdentifier(cidb_id=1234))
     bs.cidb_conn.GetSlaveStatuses.assert_called_once_with(1234, None)
     self.assertEqual(result, fake_statuses)
     bs = BuildStore(_read_from_bb=True)
     fake_statuses = object()
     bs.bb_client = mock.MagicMock()
     self.PatchObject(bs.bb_client,
                      'GetChildStatuses',
                      return_value=fake_statuses)
     result = bs.GetSlaveStatuses(
         buildstore.BuildIdentifier(cidb_id=1234, buildbucket_id=1234))
     self.assertEqual(result, fake_statuses)
     bs.bb_client.GetChildStatuses.assert_called_once_with(1234)
     init.return_value = False
     with self.assertRaises(buildstore.BuildStoreException):
         bs.GetSlaveStatuses(1234)
Example #2
0
  def GetCIDBHandle(self):
    """Get the build_identifier and cidb handle, if available.

    Returns:
      A (BuildIdentifier, CIDBConnection) tuple if cidb is set up and
      a build_id is known in metadata. Otherwise,
      (BuildIdentifier(None, None), None).
    """
    try:
      build_id = self.attrs.metadata.GetValue('build_id')
      buildbucket_id = self.options.buildbucket_id
      build_identifier = buildstore.BuildIdentifier(
          cidb_id=build_id, buildbucket_id=buildbucket_id)
    except KeyError:
      return (buildstore.BuildIdentifier(None, None), None)
    except AttributeError:
      return (buildstore.BuildIdentifier(None, None), None)

    if not cidb.CIDBConnectionFactory.IsCIDBSetup():
      return (buildstore.BuildIdentifier(None, None), None)

    cidb_handle = cidb.CIDBConnectionFactory.GetCIDBConnectionForBuilder()
    if cidb_handle:
      return (build_identifier, cidb_handle)
    else:
      return (buildstore.BuildIdentifier(None, None), None)
 def testGetKilledChildBuilds(self):
     """Tests the redirect for GetKilledChildBuilds function."""
     init = self.PatchObject(BuildStore,
                             'InitializeClients',
                             return_value=True)
     bs = BuildStore(_read_from_bb=False)
     fake_result = [{
         'message_value': 1234
     }, {
         'message_value': 2341
     }, {
         'message_value': 3412
     }]
     bs.cidb_conn = mock.MagicMock()
     self.PatchObject(bs.cidb_conn,
                      'GetBuildMessages',
                      return_value=fake_result)
     build_identifier = buildstore.BuildIdentifier(cidb_id=1,
                                                   buildbucket_id=1234)
     # Test for buildbucket_ids.
     result = bs.GetKilledChildBuilds(build_identifier)
     bs.cidb_conn.GetBuildMessages.assert_called_once_with(
         1,
         message_type=constants.MESSAGE_TYPE_IGNORED_REASON,
         message_subtype=constants.MESSAGE_SUBTYPE_SELF_DESTRUCTION)
     self.assertEqual(result, [1234, 2341, 3412])
     bs = BuildStore(_read_from_bb=True)
     bs.bb_client = mock.MagicMock()
     bs.GetKilledChildBuilds(build_identifier)
     bs.bb_client.GetKilledChildBuilds.assert_called_once_with(1234)
     init.return_value = False
     with self.assertRaises(buildstore.BuildStoreException):
         bs.GetKilledChildBuilds(build_identifier)