Merge ~ltrager/maas:lp1751946_2.3 into maas:2.3

Proposed by Lee Trager
Status: Merged
Approved by: Lee Trager
Approved revision: 58f2c29557aad011b5ffe7a1763ff35ee637925b
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ltrager/maas:lp1751946_2.3
Merge into: maas:2.3
Diff against target: 53 lines (+24/-0)
2 files modified
src/metadataserver/models/scriptset.py (+1/-0)
src/metadataserver/models/tests/test_scriptset.py (+23/-0)
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
MAAS Lander unittests Pending
Review via email: mp+340268@code.launchpad.net

Commit message

LP: #1751946 - Only cleanup ScriptSets of the same type.

Backport 1f9751aec9041dc079b83db4e9e81485cd188ef6 from master

To post a comment you must log in.
Revision history for this message
Lee Trager (ltrager) wrote :
review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/metadataserver/models/scriptset.py b/src/metadataserver/models/scriptset.py
index e3943bb..7179f2d 100644
--- a/src/metadataserver/models/scriptset.py
+++ b/src/metadataserver/models/scriptset.py
@@ -253,6 +253,7 @@ class ScriptSetManager(Manager):
253 # it is not associated with any disk. Check for this case and clean it253 # it is not associated with any disk. Check for this case and clean it
254 # up when trying commissioning again.254 # up when trying commissioning again.
255 for script_result in ScriptResult.objects.filter(255 for script_result in ScriptResult.objects.filter(
256 script_set__result_type=new_script_set.result_type,
256 script_set__node=node).exclude(parameters={}).exclude(257 script_set__node=node).exclude(parameters={}).exclude(
257 script_set=new_script_set):258 script_set=new_script_set):
258 for param in script_result.parameters.values():259 for param in script_result.parameters.values():
diff --git a/src/metadataserver/models/tests/test_scriptset.py b/src/metadataserver/models/tests/test_scriptset.py
index a964fe2..bea3c77 100644
--- a/src/metadataserver/models/tests/test_scriptset.py
+++ b/src/metadataserver/models/tests/test_scriptset.py
@@ -16,6 +16,7 @@ from maasserver.models import (
16 Config,16 Config,
17 Event,17 Event,
18 EventType,18 EventType,
19 Node,
19)20)
20from maasserver.preseed import CURTIN_INSTALL_LOG21from maasserver.preseed import CURTIN_INSTALL_LOG
21from maasserver.testing.factory import factory22from maasserver.testing.factory import factory
@@ -246,6 +247,28 @@ class TestScriptSetManager(MAASServerTestCase):
246 1,247 1,
247 ScriptResult.objects.filter(script_name=script_name).count())248 ScriptResult.objects.filter(script_name=script_name).count())
248249
250 def test_create_commissioning_script_set_only_cleans_same_type(self):
251 # Regression test for LP:1751946
252 node = Node.objects.create()
253 script_set = ScriptSet.objects.create_commissioning_script_set(
254 node=node)
255 script_set.scriptresult_set.update(status=SCRIPT_STATUS.ABORTED)
256 node.current_commissioning_script_set = script_set
257 script = factory.make_Script(
258 script_type=SCRIPT_TYPE.TESTING,
259 parameters={'storage': {'type': 'storage'}})
260 testing_script_set = ScriptSet.objects.create_testing_script_set(
261 node=node, scripts=[script.id])
262 testing_script_set.scriptresult_set.update(
263 status=SCRIPT_STATUS.ABORTED)
264 node.current_testing_script_set = testing_script_set
265 node.save()
266 new_script_set = ScriptSet.objects.create_commissioning_script_set(
267 node=node)
268 node.current_commissioning_script_set = new_script_set
269 node.save()
270 self.assertIsNotNone(ScriptSet.objects.get(id=testing_script_set.id))
271
249 def test_create_commissioning_script_set_removes_previous_placeholder(272 def test_create_commissioning_script_set_removes_previous_placeholder(
250 self):273 self):
251 # Regression test for LP:1731075274 # Regression test for LP:1731075

Subscribers

People subscribed via source and target branches