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
1diff --git a/src/metadataserver/models/scriptset.py b/src/metadataserver/models/scriptset.py
2index e3943bb..7179f2d 100644
3--- a/src/metadataserver/models/scriptset.py
4+++ b/src/metadataserver/models/scriptset.py
5@@ -253,6 +253,7 @@ class ScriptSetManager(Manager):
6 # it is not associated with any disk. Check for this case and clean it
7 # up when trying commissioning again.
8 for script_result in ScriptResult.objects.filter(
9+ script_set__result_type=new_script_set.result_type,
10 script_set__node=node).exclude(parameters={}).exclude(
11 script_set=new_script_set):
12 for param in script_result.parameters.values():
13diff --git a/src/metadataserver/models/tests/test_scriptset.py b/src/metadataserver/models/tests/test_scriptset.py
14index a964fe2..bea3c77 100644
15--- a/src/metadataserver/models/tests/test_scriptset.py
16+++ b/src/metadataserver/models/tests/test_scriptset.py
17@@ -16,6 +16,7 @@ from maasserver.models import (
18 Config,
19 Event,
20 EventType,
21+ Node,
22 )
23 from maasserver.preseed import CURTIN_INSTALL_LOG
24 from maasserver.testing.factory import factory
25@@ -246,6 +247,28 @@ class TestScriptSetManager(MAASServerTestCase):
26 1,
27 ScriptResult.objects.filter(script_name=script_name).count())
28
29+ def test_create_commissioning_script_set_only_cleans_same_type(self):
30+ # Regression test for LP:1751946
31+ node = Node.objects.create()
32+ script_set = ScriptSet.objects.create_commissioning_script_set(
33+ node=node)
34+ script_set.scriptresult_set.update(status=SCRIPT_STATUS.ABORTED)
35+ node.current_commissioning_script_set = script_set
36+ script = factory.make_Script(
37+ script_type=SCRIPT_TYPE.TESTING,
38+ parameters={'storage': {'type': 'storage'}})
39+ testing_script_set = ScriptSet.objects.create_testing_script_set(
40+ node=node, scripts=[script.id])
41+ testing_script_set.scriptresult_set.update(
42+ status=SCRIPT_STATUS.ABORTED)
43+ node.current_testing_script_set = testing_script_set
44+ node.save()
45+ new_script_set = ScriptSet.objects.create_commissioning_script_set(
46+ node=node)
47+ node.current_commissioning_script_set = new_script_set
48+ node.save()
49+ self.assertIsNotNone(ScriptSet.objects.get(id=testing_script_set.id))
50+
51 def test_create_commissioning_script_set_removes_previous_placeholder(
52 self):
53 # Regression test for LP:1731075

Subscribers

People subscribed via source and target branches