Merge ~newell-jensen/maas:lp1828493 into maas:master

Proposed by Newell Jensen
Status: Merged
Approved by: Newell Jensen
Approved revision: 112b1ad6a65bf3329322d6551d992c0fb11f6ca7
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~newell-jensen/maas:lp1828493
Merge into: maas:master
Diff against target: 100 lines (+28/-33)
4 files modified
src/maasserver/models/signals/scriptresult.py (+4/-0)
src/maasserver/models/signals/tests/test_scriptresult.py (+24/-0)
src/metadataserver/api.py (+0/-2)
src/metadataserver/tests/test_api.py (+0/-31)
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+367436@code.launchpad.net

Commit message

LP: #1828493 -- Improve when status message for Rebooting takes place. This creates the event when the install.log completes and the node's netboot is already set to False.

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good!

review: Approve
~newell-jensen/maas:lp1828493 updated
112b1ad... by Newell Jensen

Rename unit test.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/models/signals/scriptresult.py b/src/maasserver/models/signals/scriptresult.py
2index 49be5d7..68e88da 100644
3--- a/src/maasserver/models/signals/scriptresult.py
4+++ b/src/maasserver/models/signals/scriptresult.py
5@@ -54,6 +54,10 @@ def emit_script_result_status_transition_event(instance, old_values, **kwargs):
6 EVENT_TYPES.SCRIPT_RESULT_CHANGED_STATUS,
7 event_description="%s changed status from '%s' to '%s'" % (
8 script_result.name, old_status_name, new_status_name))
9+ if ('install.log' in script_result.name and not
10+ script_result.script_set.node.netboot):
11+ Event.objects.create_node_event(
12+ script_result.script_set.node, EVENT_TYPES.REBOOTING)
13
14
15 signals.watch_fields(
16diff --git a/src/maasserver/models/signals/tests/test_scriptresult.py b/src/maasserver/models/signals/tests/test_scriptresult.py
17index 7ca8d1e..4be637d 100644
18--- a/src/maasserver/models/signals/tests/test_scriptresult.py
19+++ b/src/maasserver/models/signals/tests/test_scriptresult.py
20@@ -98,3 +98,27 @@ class TestStatusTransitionEvent(MAASServerTestCase):
21 latest_event.type.description,
22 latest_event.description,
23 ))
24+
25+ def test__install_log_emits_event(self):
26+
27+ old_status = SCRIPT_STATUS.RUNNING
28+ script_result = factory.make_ScriptResult(
29+ status=old_status, script_set=factory.make_ScriptSet(
30+ result_type=RESULT_TYPE.COMMISSIONING),
31+ script=factory.make_Script(name="/tmp/install.log"))
32+ script_result.status = SCRIPT_STATUS.PASSED
33+ script_result.script_set.node.netboot = False
34+ script_result.save()
35+
36+ latest_event = Event.objects.last()
37+ self.assertEqual(
38+ (
39+ EVENT_TYPES.REBOOTING,
40+ EVENT_DETAILS[EVENT_TYPES.REBOOTING].description,
41+ "",
42+ ),
43+ (
44+ latest_event.type.name,
45+ latest_event.type.description,
46+ latest_event.description,
47+ ))
48diff --git a/src/metadataserver/api.py b/src/metadataserver/api.py
49index 791e290..ff79192 100644
50--- a/src/metadataserver/api.py
51+++ b/src/metadataserver/api.py
52@@ -1238,6 +1238,4 @@ class AnonMetaDataHandler(VersionIndexHandler):
53 Event.objects.create_node_event(
54 node, EVENT_TYPES.NODE_INSTALLATION_FINISHED,
55 event_description="Node disabled netboot")
56- # Create status message event for rebooting the machine.
57- Event.objects.create_node_event(node, EVENT_TYPES.REBOOTING)
58 return rc.ALL_OK
59diff --git a/src/metadataserver/tests/test_api.py b/src/metadataserver/tests/test_api.py
60index 1a36c9e..f93f02b 100644
61--- a/src/metadataserver/tests/test_api.py
62+++ b/src/metadataserver/tests/test_api.py
63@@ -2904,37 +2904,6 @@ class TestAnonymousAPI(MAASServerTestCase):
64 response = self.client.get(anon_node_url, {'op': 'get_preseed'})
65 self.assertThat(response, HasStatusCode(http.client.OK))
66
67- def test_anonymous_netboot_off_adds_install_and_reboot_events(self):
68- node = factory.make_Node(netboot=True)
69- anon_netboot_off_url = reverse(
70- 'metadata-node-by-id', args=['latest', node.system_id])
71- self.client.post(
72- anon_netboot_off_url, {'op': 'netboot_off'})
73- events = Event.objects.filter(node=node)
74- self.assertEqual(
75- (
76- EVENT_TYPES.NODE_INSTALLATION_FINISHED,
77- EVENT_DETAILS[
78- EVENT_TYPES.NODE_INSTALLATION_FINISHED].description,
79- "Node disabled netboot",
80- ),
81- (
82- events[0].type.name,
83- events[0].type.description,
84- events[0].description,
85- ))
86- self.assertEqual(
87- (
88- EVENT_TYPES.REBOOTING,
89- EVENT_DETAILS[EVENT_TYPES.REBOOTING].description,
90- "",
91- ),
92- (
93- events[1].type.name,
94- events[1].type.description,
95- events[1].description,
96- ))
97-
98
99 class TestEnlistViews(MAASServerTestCase):
100 """Tests for the enlistment metadata views."""

Subscribers

People subscribed via source and target branches