Merge ~ltrager/maas:lp1851620 into maas:master

Proposed by Lee Trager
Status: Merged
Approved by: Lee Trager
Approved revision: 7c2400edc6929ae2f56cc2df893a40723f88b832
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ltrager/maas:lp1851620
Merge into: maas:master
Diff against target: 49 lines (+19/-1)
2 files modified
src/metadataserver/api.py (+13/-1)
src/metadataserver/tests/test_api.py (+6/-0)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
Review via email: mp+375256@code.launchpad.net

Commit message

LP: #1851620 - Ensure all pending and running tests are aborted on failure.

To post a comment you must log in.
~ltrager/maas:lp1851620 updated
7c2400e... by Lee Trager

make format

Revision history for this message
Alberto Donato (ack) wrote :

lgtm

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/metadataserver/api.py b/src/metadataserver/api.py
index b359714..be64159 100644
--- a/src/metadataserver/api.py
+++ b/src/metadataserver/api.py
@@ -60,7 +60,10 @@ from maasserver.models import (
60from maasserver.models.event import Event60from maasserver.models.event import Event
61from maasserver.models.tag import Tag61from maasserver.models.tag import Tag
62from maasserver.models.timestampedmodel import now62from maasserver.models.timestampedmodel import now
63from maasserver.node_status import NODE_TESTING_RESET_READY_TRANSITIONS63from maasserver.node_status import (
64 FAILED_STATUSES,
65 NODE_TESTING_RESET_READY_TRANSITIONS,
66)
64from maasserver.populate_tags import populate_tags_for_single_node67from maasserver.populate_tags import populate_tags_for_single_node
65from maasserver.preseed import (68from maasserver.preseed import (
66 get_curtin_userdata,69 get_curtin_userdata,
@@ -815,6 +818,15 @@ class VersionIndexHandler(MetadataViewHandler):
815 if target_status in (None, node.status):818 if target_status in (None, node.status):
816 # No status change. Nothing to be done.819 # No status change. Nothing to be done.
817 return rc.ALL_OK820 return rc.ALL_OK
821 elif target_status in FAILED_STATUSES:
822 ScriptResult.objects.filter(
823 script_set__in=[
824 node.current_commissioning_script_set,
825 node.current_testing_script_set,
826 node.current_installation_script_set,
827 ],
828 status__in=SCRIPT_STATUS_RUNNING_OR_PENDING,
829 ).update(status=SCRIPT_STATUS.ABORTED, updated=now())
818830
819 # Only machines can change their status. This is to allow controllers831 # Only machines can change their status. This is to allow controllers
820 # to send refresh data without having their status changed to READY.832 # to send refresh data without having their status changed to READY.
diff --git a/src/metadataserver/tests/test_api.py b/src/metadataserver/tests/test_api.py
index 5846999..ce0794a 100644
--- a/src/metadataserver/tests/test_api.py
+++ b/src/metadataserver/tests/test_api.py
@@ -2931,6 +2931,12 @@ class TestTestingAPI(MAASServerTestCase):
2931 NODE_STATUS.FAILED_TESTING, reload_object(node).status2931 NODE_STATUS.FAILED_TESTING, reload_object(node).status
2932 )2932 )
2933 self.assertEqual(event.type.name, EVENT_TYPES.FAILED_TESTING)2933 self.assertEqual(event.type.name, EVENT_TYPES.FAILED_TESTING)
2934 self.assertEquals(
2935 SCRIPT_STATUS.ABORTED, node.current_commissioning_script_set.status
2936 )
2937 self.assertEquals(
2938 SCRIPT_STATUS.ABORTED, node.current_testing_script_set.status
2939 )
29342940
2935 def test_signaling_testing_testing_transitions_to_testing(self):2941 def test_signaling_testing_testing_transitions_to_testing(self):
2936 node = factory.make_Node(2942 node = factory.make_Node(

Subscribers

People subscribed via source and target branches