Merge ~adam-collard/maas:flaky-triggers-test into maas:master

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: c0e7c190b971740d2a550204eecf6f56ca251b6b
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~adam-collard/maas:flaky-triggers-test
Merge into: maas:master
Diff against target: 129 lines (+21/-15)
4 files modified
src/maasserver/listener.py (+7/-5)
src/maasserver/triggers/testing.py (+0/-1)
src/maasserver/triggers/tests/test_websocket_listener.py (+9/-9)
src/maasserver/websockets/handlers/tests/test_config.py (+5/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Needs Fixing
Alberto Donato (community) Approve
Review via email: mp+405400@code.launchpad.net

Commit message

Don't hardcode with_boot_disk=False, so tests which want it get it.

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

+1

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b flaky-triggers-test lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/10441/console
COMMIT: 6814ea0adadc4ccaf87d5250568b796b1e014dc4

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b flaky-triggers-test lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 82936ccc584ef786d8f3654afcfc0cc46e9d0887

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
Alberto Donato (ack) :
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b flaky-triggers-test lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/10466/console
COMMIT: ab3a4222a6b352f520ed1a67626f9d7d1d0a8be6

review: Needs Fixing
Revision history for this message
Adam Collard (adam-collard) :
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b flaky-triggers-test lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/10468/console
COMMIT: dde6c1d5eba18481f519b742ab30376bcc103e68

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :
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/maasserver/listener.py b/src/maasserver/listener.py
2index b53e3f6..43a0eff 100644
3--- a/src/maasserver/listener.py
4+++ b/src/maasserver/listener.py
5@@ -4,7 +4,7 @@
6 """Listens for NOTIFY events from the postgres database."""
7
8
9-from collections import defaultdict
10+from collections import defaultdict, deque
11 from errno import ENOENT
12 import threading
13
14@@ -81,7 +81,7 @@ class PostgresListenerService(Service):
15 self.autoReconnect = False
16 self.connection = None
17 self.connectionFileno = None
18- self.notifications = set()
19+ self.notifications = deque()
20 self.notifier = task.LoopingCall(self.handleNotifies)
21 self.notifierDone = None
22 self.connecting = None
23@@ -433,8 +433,8 @@ class PostgresListenerService(Service):
24 """Process all notify message in the notifications set."""
25
26 def gen_notifications(notifications):
27- while len(notifications) != 0:
28- yield notifications.pop()
29+ while notifications:
30+ yield notifications.popleft()
31
32 return task.coiterate(
33 self.handleNotify(notification, clock=clock)
34@@ -502,7 +502,9 @@ class PostgresListenerService(Service):
35 else:
36 # Place non-system messages into the queue to be
37 # processed.
38- self.notifications.add((notify.channel, notify.payload))
39+ notification = (notify.channel, notify.payload)
40+ if notification not in self.notifications:
41+ self.notifications.append(notification)
42 # Delete the contents of the connection's notifies list so
43 # that we don't process them a second time.
44 del notifies[:]
45diff --git a/src/maasserver/triggers/testing.py b/src/maasserver/triggers/testing.py
46index 5525281..11dac74 100644
47--- a/src/maasserver/triggers/testing.py
48+++ b/src/maasserver/triggers/testing.py
49@@ -112,7 +112,6 @@ class TransactionalHelpersMixin:
50 def create_node(self, params=None):
51 if params is None:
52 params = {}
53- params["with_boot_disk"] = False
54 vlan = factory.make_VLAN(space=factory.make_Space())
55 return factory.make_Node(vlan=vlan, **params)
56
57diff --git a/src/maasserver/triggers/tests/test_websocket_listener.py b/src/maasserver/triggers/tests/test_websocket_listener.py
58index 7499384..e0ce6a7 100644
59--- a/src/maasserver/triggers/tests/test_websocket_listener.py
60+++ b/src/maasserver/triggers/tests/test_websocket_listener.py
61@@ -109,7 +109,11 @@ class TestNodeListener(
62 (
63 "machine",
64 {
65- "params": {"node_type": NODE_TYPE.MACHINE},
66+ "params": {
67+ "node_type": NODE_TYPE.MACHINE,
68+ # This is needed to avoid updating the node after creating it
69+ "with_boot_disk": False,
70+ },
71 "listener": "machine",
72 },
73 ),
74@@ -322,8 +326,7 @@ class TestControllerListener(
75 yield deferToDatabase(register_websocket_triggers)
76 listener = self.make_listener_without_delay()
77 dv = DeferredValue()
78- params = self.params.copy()
79- controller = yield deferToDatabase(self.create_node, params)
80+ controller = yield deferToDatabase(self.create_node, self.params)
81 listener.register(self.listener, lambda *args: dv.set(args))
82 yield listener.startService()
83 try:
84@@ -338,8 +341,7 @@ class TestControllerListener(
85 yield deferToDatabase(register_websocket_triggers)
86 listener = self.make_listener_without_delay()
87 dv = DeferredValue()
88- params = self.params.copy()
89- controller = yield deferToDatabase(self.create_node, params)
90+ controller = yield deferToDatabase(self.create_node, self.params)
91 yield deferToDatabase(self.set_version, controller, "2.10.0")
92 listener.register(self.listener, lambda *args: dv.set(args))
93 yield listener.startService()
94@@ -355,8 +357,7 @@ class TestControllerListener(
95 yield deferToDatabase(register_websocket_triggers)
96 listener = self.make_listener_without_delay()
97 dv = DeferredValue()
98- params = self.params.copy()
99- controller = yield deferToDatabase(self.create_node, params)
100+ controller = yield deferToDatabase(self.create_node, self.params)
101 # first set the version
102 yield deferToDatabase(self.set_version, controller, "3.0.0")
103 listener.register(self.listener, lambda *args: dv.set(args))
104@@ -380,8 +381,7 @@ class TestControllerListener(
105 yield deferToDatabase(register_websocket_triggers)
106 listener = self.make_listener_without_delay()
107 dv = DeferredValue()
108- params = self.params.copy()
109- controller = yield deferToDatabase(self.create_node, params)
110+ controller = yield deferToDatabase(self.create_node, self.params)
111 yield deferToDatabase(self.set_version, controller, "2.10.0")
112 listener.register(self.listener, lambda *args: dv.set(args))
113 yield listener.startService()
114diff --git a/src/maasserver/websockets/handlers/tests/test_config.py b/src/maasserver/websockets/handlers/tests/test_config.py
115index de99882..2a25a0f 100644
116--- a/src/maasserver/websockets/handlers/tests/test_config.py
117+++ b/src/maasserver/websockets/handlers/tests/test_config.py
118@@ -25,6 +25,11 @@ from maasserver.websockets.handlers.config import (
119
120
121 class TestConfigHandler(MAASServerTestCase):
122+ def setUp(self):
123+ super().setUp()
124+ # Avoid triggering updates e.g. update_boot_cache_source
125+ Config.objects._config_changed_connections.clear()
126+
127 def test_dehydrate_no_choice_config(self):
128 no_choice_name = random.choice(
129 list(

Subscribers

People subscribed via source and target branches