Revert "When CQ-master destructs itself, it needs to record ignored slaves."
This reverts commit c034a38e7c53335bf844b4912aa54560739c3a1d.
Reason for revert: chromium:711554
Original change's description:
> When CQ-master destructs itself, it needs to record ignored slaves.
>
> When self-destruction is triggered, for each uncompleted slave builds,
> the master build will insert a message with the slave build_id as the
> value into the buildMessageTable. The slave builds may pass, fail or
> abort after the master destructs itself.
>
> BUG=chromium:707894
> TEST=unit_tests
>
> Change-Id: I75e4d946cd51600343ebda94fe58438a6837d159
> Reviewed-on: https://chromium-review.googlesource.com/471849
> Commit-Ready: Ningning Xia <nxia@chromium.org>
> Tested-by: Ningning Xia <nxia@chromium.org>
> Reviewed-by: Aviv Keshet <akeshet@chromium.org>
>
TBR=dgarrett@chromium.org,akeshet@chromium.org,davidriley@chromium.org,nxia@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:707894
Change-Id: Iee1c46f8ab205aa0e5a6fb8aa415f09888c1ce9a
Reviewed-on: https://chromium-review.googlesource.com/477440
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Ningning Xia <nxia@chromium.org>
diff --git a/cbuildbot/build_status.py b/cbuildbot/build_status.py
index 9e6cd5c..49f7f25 100644
--- a/cbuildbot/build_status.py
+++ b/cbuildbot/build_status.py
@@ -305,18 +305,6 @@
"""
return len(self.completed_builds) == len(self.builders_array)
-
- def _GetUncompletedBuilds(self, completed_builds):
- """Get uncompleted builds.
-
- Args:
- completed_builds: a set of config names (strings) of completed builds.
-
- Returns:
- A set of config names (strings) of uncompleted builds.
- """
- return set(self.builders_array) - completed_builds
-
def _ShouldFailForBuilderStartTimeout(self, current_time):
"""Decides if we should fail if a build hasn't started within 5 mins.
@@ -445,17 +433,6 @@
metrics.Counter(constants.MON_CQ_SELF_DESTRUCTION_COUNT).increment(
fields=fields)
- # For every uncompleted build, the master build will insert an
- # ignored_reason message into the buildMessageTable.
- uncompleted_builds = self._GetUncompletedBuilds(self.completed_builds)
- for build in uncompleted_builds:
- if build in self.all_cidb_status_dict:
- self.db.InsertBuildMessage(
- self.master_build_id,
- message_type=constants.MESSAGE_TYPE_IGNORED_REASON,
- message_subtype=constants.MESSAGE_SUBTYPE_SELF_DESTRUCTION,
- message_value=self.all_cidb_status_dict[build].build_id)
-
return False
# We got here which means no problems, we should still wait.
diff --git a/cbuildbot/build_status_unittest.py b/cbuildbot/build_status_unittest.py
index a620c39..7b54889 100644
--- a/cbuildbot/build_status_unittest.py
+++ b/cbuildbot/build_status_unittest.py
@@ -234,11 +234,6 @@
'_GetNewSlaveCIDBStatusInfo',
return_value=cidb_status)
- def _MockGetAllSlaveCIDBStatusInfo(self, cidb_status=None):
- return self.PatchObject(builder_status_lib.SlaveBuilderStatus,
- 'GetAllSlaveCIDBStatusInfo',
- return_value=cidb_status)
-
def _Mock_GetSlaveStatusesFromBuildbucket(self, buildbucket_info_dict=None):
self.PatchObject(builder_status_lib.SlaveBuilderStatus,
'GetAllSlaveBuildbucketInfo')
@@ -390,24 +385,6 @@
set(['passed', 'failed', 'aborted', 'skipped',
'forgiven']))
- def testGetUncompletedBuilds(self):
- """Tests _GetUncompletedBuilds"""
- self._Mock_GetSlaveStatusesFromCIDB(CIDBStatusInfos.GetFullCIDBStatusInfo())
- self._Mock_GetSlaveStatusesFromBuildbucket(
- BuildbucketInfos.GetFullBuildbucketInfoDict())
-
- slave_status = self._GetSlaveStatus(
- builders_array=self._GetFullBuildConfigs())
-
- completed_builds = {'completed_success', 'completed_failure',
- 'completed_canceled'}
- self.assertEqual(slave_status._GetUncompletedBuilds(completed_builds),
- {'scheduled', 'started'})
-
- completed_builds = {'completed_success', 'completed_failure'}
- self.assertEqual(slave_status._GetUncompletedBuilds(completed_builds),
- {'scheduled', 'started', 'completed_canceled'})
-
def testGetRetriableBuildsReturnsNone(self):
"""GetRetriableBuilds returns no build to retry."""
self._Mock_GetSlaveStatusesFromCIDB(CIDBStatusInfos.GetFullCIDBStatusInfo())
@@ -1011,23 +988,19 @@
def testShouldWaitWithTriageRelevantChangesShouldWaitFalse(self):
"""Test ShouldWait with TriageRelevantChanges.ShouldWait is False."""
- self._Mock_GetSlaveStatusesFromCIDB(CIDBStatusInfos.GetFullCIDBStatusInfo())
- self._MockGetAllSlaveCIDBStatusInfo(CIDBStatusInfos.GetFullCIDBStatusInfo())
- self._Mock_GetSlaveStatusesFromBuildbucket(
- BuildbucketInfos.GetFullBuildbucketInfoDict())
-
relevant_changes.TriageRelevantChanges.__init__ = mock.Mock(
return_value=None)
self.PatchObject(relevant_changes.TriageRelevantChanges,
'ShouldWait', return_value=False)
self.PatchObject(build_status.SlaveStatus,
- '_Completed', return_value=False)
+ '_Completed',
+ return_value=False)
self.PatchObject(build_status.SlaveStatus,
- '_ShouldFailForBuilderStartTimeout', return_value=False)
- self.PatchObject(build_status.SlaveStatus, '_RetryBuilds')
+ '_ShouldFailForBuilderStartTimeout',
+ return_value=False)
pool = validation_pool_unittest.MakePool(applied=[])
slave_status = self._GetSlaveStatus(
- builders_array=self._GetFullBuildConfigs(),
+ builders_array=['slave1', 'slave2'],
config=self.master_cq_config,
version='9289.0.0-rc2',
pool=pool)
@@ -1036,15 +1009,6 @@
self.assertTrue(slave_status.metadata.GetValueWithDefault(
constants.SELF_DESTRUCTED_BUILD, False))
- build_messages = self.db.GetBuildMessages(self.master_build_id)
- self.assertEqual(len(build_messages), 3)
- for m in build_messages:
- self.assertEqual(m['message_type'],
- constants.MESSAGE_TYPE_IGNORED_REASON)
- self.assertEqual(m['message_subtype'],
- constants.MESSAGE_SUBTYPE_SELF_DESTRUCTION)
- self.assertTrue(m['message_value'] in (1, 3, 4))
-
def testShouldWaitWithTriageRelevantChangesShouldWaitTrue(self):
"""Test ShouldWait with TriageRelevantChanges.ShouldWait is True."""
relevant_changes.TriageRelevantChanges.__init__ = mock.Mock(
diff --git a/lib/constants.py b/lib/constants.py
index 8ea10ac..fc9274e 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -710,10 +710,6 @@
SUBSYSTEM_FAIL = 'subsystem_fail'
SUBSYSTEM_UNUSED = 'subsystem_unused'
-# Build messages
-MESSAGE_TYPE_IGNORED_REASON = 'ignored_reason'
-MESSAGE_SUBTYPE_SELF_DESTRUCTION = 'self_destruction'
-
# Define HWTEST job_keyvals
DATASTORE_PARENT_KEY = 'datastore_parent_key'
diff --git a/lib/fake_cidb.py b/lib/fake_cidb.py
index a77c42f..5844cc2 100644
--- a/lib/fake_cidb.py
+++ b/lib/fake_cidb.py
@@ -30,7 +30,6 @@
self.failureTable = {}
self.fake_time = None
self.fake_keyvals = fake_keyvals or {}
- self.buildMessageTable = {}
def _TrimStatus(self, status):
"""Trims a build row to keys that should be returned by GetBuildStatus"""
@@ -181,41 +180,6 @@
self.failureTable[failure_id] = values
return failure_id
- def InsertBuildMessage(self, build_id, message_type=None,
- message_subtype=None, message_value=None, board=None):
- """Insert a build message.
-
- Args:
- build_id: primary key of build recording this message.
- message_type: Optional str name of message type.
- message_subtype: Optional str name of message subtype.
- message_value: Optional value of message.
- board: Optional str name of the board.
-
- Returns:
- The build message id (string).
- """
- build_message_id = len(self.buildMessageTable)
- values = {'build_id': build_id,
- 'message_type': message_type,
- 'message_subtype': message_subtype,
- 'message_value': message_value,
- 'board': board}
- self.buildMessageTable[build_message_id] = values
- return build_message_id
-
- def GetBuildMessages(self, build_id):
- """Get the build messages of the given build id.
-
- Args:
- build_id: build id (string) of the build to get messages.
-
- Returns:
- A list of build messages (in the format of dict).
- """
- return [v for v in self.buildMessageTable.values()
- if v['build_id'] == build_id]
-
def StartBuildStage(self, build_stage_id):
if build_stage_id > len(self.buildStageTable):
return