Merge ~andreserl/maas:lp1707850 into maas:master

Proposed by Andres Rodriguez
Status: Merged
Approved by: Andres Rodriguez
Approved revision: 5b3ee3b5a9da0ddca38571273faf18ced01cbf83
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~andreserl/maas:lp1707850
Merge into: maas:master
Diff against target: 58 lines (+10/-1)
3 files modified
src/metadataserver/api.py (+2/-0)
src/metadataserver/tests/test_api.py (+3/-1)
src/provisioningserver/events.py (+5/-0)
Reviewer Review Type Date Requested Status
Mike Pontillo (community) Approve
Review via email: mp+330100@code.launchpad.net

Commit message

LP: #1707850 - MAAS doesn't report cloud-init failures post-deployment

To post a comment you must log in.
Revision history for this message
Mike Pontillo (mpontillo) wrote :

Looks good.

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 02c02b6..a7473da 100644
--- a/src/metadataserver/api.py
+++ b/src/metadataserver/api.py
@@ -188,6 +188,8 @@ def add_event_to_node_event_log(
188 type_name = EVENT_TYPES.NODE_INSTALL_EVENT188 type_name = EVENT_TYPES.NODE_INSTALL_EVENT
189 else:189 else:
190 type_name = EVENT_TYPES.NODE_INSTALL_EVENT_FAILED190 type_name = EVENT_TYPES.NODE_INSTALL_EVENT_FAILED
191 elif node.status == NODE_STATUS.DEPLOYED and result in ['FAIL']:
192 type_name = EVENT_TYPES.NODE_POST_INSTALL_EVENT_FAILED
191 elif node.status == NODE_STATUS.ENTERING_RESCUE_MODE:193 elif node.status == NODE_STATUS.ENTERING_RESCUE_MODE:
192 if result in ['SUCCESS', None]:194 if result in ['SUCCESS', None]:
193 type_name = EVENT_TYPES.NODE_ENTERING_RESCUE_MODE_EVENT195 type_name = EVENT_TYPES.NODE_ENTERING_RESCUE_MODE_EVENT
diff --git a/src/metadataserver/tests/test_api.py b/src/metadataserver/tests/test_api.py
index 6738480..f5c0800 100644
--- a/src/metadataserver/tests/test_api.py
+++ b/src/metadataserver/tests/test_api.py
@@ -203,7 +203,6 @@ class TestHelpers(MAASServerTestCase):
203 NODE_STATUS.READY: EVENT_TYPES.NODE_STATUS_EVENT,203 NODE_STATUS.READY: EVENT_TYPES.NODE_STATUS_EVENT,
204 NODE_STATUS.RESERVED: EVENT_TYPES.NODE_STATUS_EVENT,204 NODE_STATUS.RESERVED: EVENT_TYPES.NODE_STATUS_EVENT,
205 NODE_STATUS.ALLOCATED: EVENT_TYPES.NODE_STATUS_EVENT,205 NODE_STATUS.ALLOCATED: EVENT_TYPES.NODE_STATUS_EVENT,
206 NODE_STATUS.DEPLOYED: EVENT_TYPES.NODE_STATUS_EVENT,
207 NODE_STATUS.RETIRED: EVENT_TYPES.NODE_STATUS_EVENT,206 NODE_STATUS.RETIRED: EVENT_TYPES.NODE_STATUS_EVENT,
208 NODE_STATUS.BROKEN: EVENT_TYPES.NODE_STATUS_EVENT,207 NODE_STATUS.BROKEN: EVENT_TYPES.NODE_STATUS_EVENT,
209 NODE_STATUS.FAILED_DEPLOYMENT: EVENT_TYPES.NODE_STATUS_EVENT,208 NODE_STATUS.FAILED_DEPLOYMENT: EVENT_TYPES.NODE_STATUS_EVENT,
@@ -211,6 +210,9 @@ class TestHelpers(MAASServerTestCase):
211 NODE_STATUS.FAILED_RELEASING: EVENT_TYPES.NODE_STATUS_EVENT,210 NODE_STATUS.FAILED_RELEASING: EVENT_TYPES.NODE_STATUS_EVENT,
212 NODE_STATUS.DISK_ERASING: EVENT_TYPES.NODE_STATUS_EVENT,211 NODE_STATUS.DISK_ERASING: EVENT_TYPES.NODE_STATUS_EVENT,
213 NODE_STATUS.FAILED_DISK_ERASING: EVENT_TYPES.NODE_STATUS_EVENT,212 NODE_STATUS.FAILED_DISK_ERASING: EVENT_TYPES.NODE_STATUS_EVENT,
213 # Deployed generates different event types.
214 NODE_STATUS.DEPLOYED: EVENT_TYPES.NODE_POST_INSTALL_EVENT_FAILED,
215 NODE_STATUS.DEPLOYED: EVENT_TYPES.NODE_STATUS_EVENT,
214 }216 }
215217
216 for status in expected_type:218 for status in expected_type:
diff --git a/src/provisioningserver/events.py b/src/provisioningserver/events.py
index f4227ec..6af6f2d 100644
--- a/src/provisioningserver/events.py
+++ b/src/provisioningserver/events.py
@@ -78,6 +78,7 @@ class EVENT_TYPES:
78 NODE_COMMISSIONING_EVENT_FAILED = "NODE_COMMISSIONING_EVENT_FAILED"78 NODE_COMMISSIONING_EVENT_FAILED = "NODE_COMMISSIONING_EVENT_FAILED"
79 NODE_INSTALL_EVENT = "NODE_INSTALL_EVENT"79 NODE_INSTALL_EVENT = "NODE_INSTALL_EVENT"
80 NODE_INSTALL_EVENT_FAILED = "NODE_INSTALL_EVENT_FAILED"80 NODE_INSTALL_EVENT_FAILED = "NODE_INSTALL_EVENT_FAILED"
81 NODE_POST_INSTALL_EVENT_FAILED = "NODE_POST_INSTALL_EVENT_FAILED"
81 NODE_ENTERING_RESCUE_MODE_EVENT = "NODE_ENTERING_RESCUE_MODE_EVENT"82 NODE_ENTERING_RESCUE_MODE_EVENT = "NODE_ENTERING_RESCUE_MODE_EVENT"
82 NODE_ENTERING_RESCUE_MODE_EVENT_FAILED = (83 NODE_ENTERING_RESCUE_MODE_EVENT_FAILED = (
83 "NODE_ENTERING_RESCUE_MODE_EVENT_FAILED")84 "NODE_ENTERING_RESCUE_MODE_EVENT_FAILED")
@@ -203,6 +204,10 @@ EVENT_DETAILS = {
203 description="Node installation failure",204 description="Node installation failure",
204 level=ERROR,205 level=ERROR,
205 ),206 ),
207 EVENT_TYPES.NODE_POST_INSTALL_EVENT_FAILED: EventDetail(
208 description="Node post-installation failure",
209 level=ERROR,
210 ),
206 EVENT_TYPES.NODE_ENTERING_RESCUE_MODE_EVENT: EventDetail(211 EVENT_TYPES.NODE_ENTERING_RESCUE_MODE_EVENT: EventDetail(
207 description="Node entering rescue mode",212 description="Node entering rescue mode",
208 level=DEBUG,213 level=DEBUG,

Subscribers

People subscribed via source and target branches