Merge ~newell-jensen/maas:lp1834500-1468830 into maas:master

Proposed by Newell Jensen
Status: Merged
Approved by: Newell Jensen
Approved revision: 4d2d85b7f9ffdae8122ebb84cbeb1d663919063c
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~newell-jensen/maas:lp1834500-1468830
Merge into: maas:master
Diff against target: 72 lines (+12/-5)
5 files modified
src/maasserver/models/node.py (+4/-1)
src/maasserver/models/tests/test_node.py (+6/-0)
src/maasserver/node_action.py (+0/-3)
src/maasserver/node_status.py (+1/-0)
src/maasserver/tests/test_node_action.py (+1/-1)
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
Alberto Donato (community) Approve
Review via email: mp+369426@code.launchpad.net

Commit message

LP: #1834500, #1468830 -- Mark previously deployed machines deployed when mark fixed. Allow marking a machine fixed if power is not on.

To post a comment you must log in.
Revision history for this message
Alberto Donato (ack) wrote :

lgtm, +1

review: Approve
Revision history for this message
Lee Trager (ltrager) 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/maasserver/models/node.py b/src/maasserver/models/node.py
index 2a2a53b..fdafba9 100644
--- a/src/maasserver/models/node.py
+++ b/src/maasserver/models/node.py
@@ -3291,7 +3291,10 @@ class Node(CleanSave, TimestampedModel):
3291 raise NodeStateViolation(3291 raise NodeStateViolation(
3292 "Can't mark a non-broken node as 'Ready'.")3292 "Can't mark a non-broken node as 'Ready'.")
3293 maaslog.info("%s: Marking node fixed", self.hostname)3293 maaslog.info("%s: Marking node fixed", self.hostname)
3294 self.status = NODE_STATUS.READY3294 if self.previous_status == NODE_STATUS.DEPLOYED:
3295 self.status = NODE_STATUS.DEPLOYED
3296 else:
3297 self.status = NODE_STATUS.READY
3295 self.error_description = ''3298 self.error_description = ''
3296 self.osystem = ''3299 self.osystem = ''
3297 self.distro_series = ''3300 self.distro_series = ''
diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
index c71407e..593fd5d 100644
--- a/src/maasserver/models/tests/test_node.py
+++ b/src/maasserver/models/tests/test_node.py
@@ -3715,6 +3715,12 @@ class TestNode(MAASServerTestCase):
3715 node.mark_fixed(factory.make_User())3715 node.mark_fixed(factory.make_User())
3716 self.assertEqual(NODE_STATUS.READY, reload_object(node).status)3716 self.assertEqual(NODE_STATUS.READY, reload_object(node).status)
37173717
3718 def test_mark_fixed_changes_status_to_deployed_if_previous_status(self):
3719 node = factory.make_Node(
3720 status=NODE_STATUS.BROKEN, previous_status=NODE_STATUS.DEPLOYED)
3721 node.mark_fixed(factory.make_User())
3722 self.assertEqual(NODE_STATUS.DEPLOYED, reload_object(node).status)
3723
3718 def test_mark_fixed_logs_user_request(self):3724 def test_mark_fixed_logs_user_request(self):
3719 owner = factory.make_User()3725 owner = factory.make_User()
3720 node = factory.make_Node(status=NODE_STATUS.BROKEN, owner=owner)3726 node = factory.make_Node(status=NODE_STATUS.BROKEN, owner=owner)
diff --git a/src/maasserver/node_action.py b/src/maasserver/node_action.py
index 730d8b2..02bc99b 100644
--- a/src/maasserver/node_action.py
+++ b/src/maasserver/node_action.py
@@ -670,9 +670,6 @@ class MarkFixed(NodeAction):
670670
671 def _execute(self):671 def _execute(self):
672 """See `NodeAction.execute`."""672 """See `NodeAction.execute`."""
673 if self.node.power_state == POWER_STATE.ON:
674 raise NodeActionError(
675 "Unable to be mark fixed because the power is currently on.")
676 if not self.has_commissioning_data():673 if not self.has_commissioning_data():
677 raise NodeActionError(674 raise NodeActionError(
678 "Unable to be mark fixed because it has not been commissioned "675 "Unable to be mark fixed because it has not been commissioned "
diff --git a/src/maasserver/node_status.py b/src/maasserver/node_status.py
index 615ab03..9c44a70 100644
--- a/src/maasserver/node_status.py
+++ b/src/maasserver/node_status.py
@@ -176,6 +176,7 @@ NODE_TRANSITIONS = {
176 NODE_STATUS.RELEASING,176 NODE_STATUS.RELEASING,
177 NODE_STATUS.ENTERING_RESCUE_MODE,177 NODE_STATUS.ENTERING_RESCUE_MODE,
178 NODE_STATUS.TESTING,178 NODE_STATUS.TESTING,
179 NODE_STATUS.DEPLOYED,
179 ],180 ],
180 NODE_STATUS.FAILED_RELEASING: [181 NODE_STATUS.FAILED_RELEASING: [
181 NODE_STATUS.RELEASING,182 NODE_STATUS.RELEASING,
diff --git a/src/maasserver/tests/test_node_action.py b/src/maasserver/tests/test_node_action.py
index bb09d2c..eeec31a 100644
--- a/src/maasserver/tests/test_node_action.py
+++ b/src/maasserver/tests/test_node_action.py
@@ -1301,7 +1301,7 @@ class TestMarkFixedAction(MAASServerTestCase):
13011301
1302 def test_changes_status(self):1302 def test_changes_status(self):
1303 node = factory.make_Node(1303 node = factory.make_Node(
1304 status=NODE_STATUS.BROKEN, power_state=POWER_STATE.OFF)1304 status=NODE_STATUS.BROKEN, power_state=POWER_STATE.ON)
1305 self.make_commissioning_data(node)1305 self.make_commissioning_data(node)
1306 user = factory.make_admin()1306 user = factory.make_admin()
1307 request = factory.make_fake_request('/')1307 request = factory.make_fake_request('/')

Subscribers

People subscribed via source and target branches