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
1diff --git a/src/metadataserver/api.py b/src/metadataserver/api.py
2index 02c02b6..a7473da 100644
3--- a/src/metadataserver/api.py
4+++ b/src/metadataserver/api.py
5@@ -188,6 +188,8 @@ def add_event_to_node_event_log(
6 type_name = EVENT_TYPES.NODE_INSTALL_EVENT
7 else:
8 type_name = EVENT_TYPES.NODE_INSTALL_EVENT_FAILED
9+ elif node.status == NODE_STATUS.DEPLOYED and result in ['FAIL']:
10+ type_name = EVENT_TYPES.NODE_POST_INSTALL_EVENT_FAILED
11 elif node.status == NODE_STATUS.ENTERING_RESCUE_MODE:
12 if result in ['SUCCESS', None]:
13 type_name = EVENT_TYPES.NODE_ENTERING_RESCUE_MODE_EVENT
14diff --git a/src/metadataserver/tests/test_api.py b/src/metadataserver/tests/test_api.py
15index 6738480..f5c0800 100644
16--- a/src/metadataserver/tests/test_api.py
17+++ b/src/metadataserver/tests/test_api.py
18@@ -203,7 +203,6 @@ class TestHelpers(MAASServerTestCase):
19 NODE_STATUS.READY: EVENT_TYPES.NODE_STATUS_EVENT,
20 NODE_STATUS.RESERVED: EVENT_TYPES.NODE_STATUS_EVENT,
21 NODE_STATUS.ALLOCATED: EVENT_TYPES.NODE_STATUS_EVENT,
22- NODE_STATUS.DEPLOYED: EVENT_TYPES.NODE_STATUS_EVENT,
23 NODE_STATUS.RETIRED: EVENT_TYPES.NODE_STATUS_EVENT,
24 NODE_STATUS.BROKEN: EVENT_TYPES.NODE_STATUS_EVENT,
25 NODE_STATUS.FAILED_DEPLOYMENT: EVENT_TYPES.NODE_STATUS_EVENT,
26@@ -211,6 +210,9 @@ class TestHelpers(MAASServerTestCase):
27 NODE_STATUS.FAILED_RELEASING: EVENT_TYPES.NODE_STATUS_EVENT,
28 NODE_STATUS.DISK_ERASING: EVENT_TYPES.NODE_STATUS_EVENT,
29 NODE_STATUS.FAILED_DISK_ERASING: EVENT_TYPES.NODE_STATUS_EVENT,
30+ # Deployed generates different event types.
31+ NODE_STATUS.DEPLOYED: EVENT_TYPES.NODE_POST_INSTALL_EVENT_FAILED,
32+ NODE_STATUS.DEPLOYED: EVENT_TYPES.NODE_STATUS_EVENT,
33 }
34
35 for status in expected_type:
36diff --git a/src/provisioningserver/events.py b/src/provisioningserver/events.py
37index f4227ec..6af6f2d 100644
38--- a/src/provisioningserver/events.py
39+++ b/src/provisioningserver/events.py
40@@ -78,6 +78,7 @@ class EVENT_TYPES:
41 NODE_COMMISSIONING_EVENT_FAILED = "NODE_COMMISSIONING_EVENT_FAILED"
42 NODE_INSTALL_EVENT = "NODE_INSTALL_EVENT"
43 NODE_INSTALL_EVENT_FAILED = "NODE_INSTALL_EVENT_FAILED"
44+ NODE_POST_INSTALL_EVENT_FAILED = "NODE_POST_INSTALL_EVENT_FAILED"
45 NODE_ENTERING_RESCUE_MODE_EVENT = "NODE_ENTERING_RESCUE_MODE_EVENT"
46 NODE_ENTERING_RESCUE_MODE_EVENT_FAILED = (
47 "NODE_ENTERING_RESCUE_MODE_EVENT_FAILED")
48@@ -203,6 +204,10 @@ EVENT_DETAILS = {
49 description="Node installation failure",
50 level=ERROR,
51 ),
52+ EVENT_TYPES.NODE_POST_INSTALL_EVENT_FAILED: EventDetail(
53+ description="Node post-installation failure",
54+ level=ERROR,
55+ ),
56 EVENT_TYPES.NODE_ENTERING_RESCUE_MODE_EVENT: EventDetail(
57 description="Node entering rescue mode",
58 level=DEBUG,

Subscribers

People subscribed via source and target branches