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
diff --git a/src/maasserver/listener.py b/src/maasserver/listener.py
index b53e3f6..43a0eff 100644
--- a/src/maasserver/listener.py
+++ b/src/maasserver/listener.py
@@ -4,7 +4,7 @@
4"""Listens for NOTIFY events from the postgres database."""4"""Listens for NOTIFY events from the postgres database."""
55
66
7from collections import defaultdict7from collections import defaultdict, deque
8from errno import ENOENT8from errno import ENOENT
9import threading9import threading
1010
@@ -81,7 +81,7 @@ class PostgresListenerService(Service):
81 self.autoReconnect = False81 self.autoReconnect = False
82 self.connection = None82 self.connection = None
83 self.connectionFileno = None83 self.connectionFileno = None
84 self.notifications = set()84 self.notifications = deque()
85 self.notifier = task.LoopingCall(self.handleNotifies)85 self.notifier = task.LoopingCall(self.handleNotifies)
86 self.notifierDone = None86 self.notifierDone = None
87 self.connecting = None87 self.connecting = None
@@ -433,8 +433,8 @@ class PostgresListenerService(Service):
433 """Process all notify message in the notifications set."""433 """Process all notify message in the notifications set."""
434434
435 def gen_notifications(notifications):435 def gen_notifications(notifications):
436 while len(notifications) != 0:436 while notifications:
437 yield notifications.pop()437 yield notifications.popleft()
438438
439 return task.coiterate(439 return task.coiterate(
440 self.handleNotify(notification, clock=clock)440 self.handleNotify(notification, clock=clock)
@@ -502,7 +502,9 @@ class PostgresListenerService(Service):
502 else:502 else:
503 # Place non-system messages into the queue to be503 # Place non-system messages into the queue to be
504 # processed.504 # processed.
505 self.notifications.add((notify.channel, notify.payload))505 notification = (notify.channel, notify.payload)
506 if notification not in self.notifications:
507 self.notifications.append(notification)
506 # Delete the contents of the connection's notifies list so508 # Delete the contents of the connection's notifies list so
507 # that we don't process them a second time.509 # that we don't process them a second time.
508 del notifies[:]510 del notifies[:]
diff --git a/src/maasserver/triggers/testing.py b/src/maasserver/triggers/testing.py
index 5525281..11dac74 100644
--- a/src/maasserver/triggers/testing.py
+++ b/src/maasserver/triggers/testing.py
@@ -112,7 +112,6 @@ class TransactionalHelpersMixin:
112 def create_node(self, params=None):112 def create_node(self, params=None):
113 if params is None:113 if params is None:
114 params = {}114 params = {}
115 params["with_boot_disk"] = False
116 vlan = factory.make_VLAN(space=factory.make_Space())115 vlan = factory.make_VLAN(space=factory.make_Space())
117 return factory.make_Node(vlan=vlan, **params)116 return factory.make_Node(vlan=vlan, **params)
118117
diff --git a/src/maasserver/triggers/tests/test_websocket_listener.py b/src/maasserver/triggers/tests/test_websocket_listener.py
index 7499384..e0ce6a7 100644
--- a/src/maasserver/triggers/tests/test_websocket_listener.py
+++ b/src/maasserver/triggers/tests/test_websocket_listener.py
@@ -109,7 +109,11 @@ class TestNodeListener(
109 (109 (
110 "machine",110 "machine",
111 {111 {
112 "params": {"node_type": NODE_TYPE.MACHINE},112 "params": {
113 "node_type": NODE_TYPE.MACHINE,
114 # This is needed to avoid updating the node after creating it
115 "with_boot_disk": False,
116 },
113 "listener": "machine",117 "listener": "machine",
114 },118 },
115 ),119 ),
@@ -322,8 +326,7 @@ class TestControllerListener(
322 yield deferToDatabase(register_websocket_triggers)326 yield deferToDatabase(register_websocket_triggers)
323 listener = self.make_listener_without_delay()327 listener = self.make_listener_without_delay()
324 dv = DeferredValue()328 dv = DeferredValue()
325 params = self.params.copy()329 controller = yield deferToDatabase(self.create_node, self.params)
326 controller = yield deferToDatabase(self.create_node, params)
327 listener.register(self.listener, lambda *args: dv.set(args))330 listener.register(self.listener, lambda *args: dv.set(args))
328 yield listener.startService()331 yield listener.startService()
329 try:332 try:
@@ -338,8 +341,7 @@ class TestControllerListener(
338 yield deferToDatabase(register_websocket_triggers)341 yield deferToDatabase(register_websocket_triggers)
339 listener = self.make_listener_without_delay()342 listener = self.make_listener_without_delay()
340 dv = DeferredValue()343 dv = DeferredValue()
341 params = self.params.copy()344 controller = yield deferToDatabase(self.create_node, self.params)
342 controller = yield deferToDatabase(self.create_node, params)
343 yield deferToDatabase(self.set_version, controller, "2.10.0")345 yield deferToDatabase(self.set_version, controller, "2.10.0")
344 listener.register(self.listener, lambda *args: dv.set(args))346 listener.register(self.listener, lambda *args: dv.set(args))
345 yield listener.startService()347 yield listener.startService()
@@ -355,8 +357,7 @@ class TestControllerListener(
355 yield deferToDatabase(register_websocket_triggers)357 yield deferToDatabase(register_websocket_triggers)
356 listener = self.make_listener_without_delay()358 listener = self.make_listener_without_delay()
357 dv = DeferredValue()359 dv = DeferredValue()
358 params = self.params.copy()360 controller = yield deferToDatabase(self.create_node, self.params)
359 controller = yield deferToDatabase(self.create_node, params)
360 # first set the version361 # first set the version
361 yield deferToDatabase(self.set_version, controller, "3.0.0")362 yield deferToDatabase(self.set_version, controller, "3.0.0")
362 listener.register(self.listener, lambda *args: dv.set(args))363 listener.register(self.listener, lambda *args: dv.set(args))
@@ -380,8 +381,7 @@ class TestControllerListener(
380 yield deferToDatabase(register_websocket_triggers)381 yield deferToDatabase(register_websocket_triggers)
381 listener = self.make_listener_without_delay()382 listener = self.make_listener_without_delay()
382 dv = DeferredValue()383 dv = DeferredValue()
383 params = self.params.copy()384 controller = yield deferToDatabase(self.create_node, self.params)
384 controller = yield deferToDatabase(self.create_node, params)
385 yield deferToDatabase(self.set_version, controller, "2.10.0")385 yield deferToDatabase(self.set_version, controller, "2.10.0")
386 listener.register(self.listener, lambda *args: dv.set(args))386 listener.register(self.listener, lambda *args: dv.set(args))
387 yield listener.startService()387 yield listener.startService()
diff --git a/src/maasserver/websockets/handlers/tests/test_config.py b/src/maasserver/websockets/handlers/tests/test_config.py
index de99882..2a25a0f 100644
--- a/src/maasserver/websockets/handlers/tests/test_config.py
+++ b/src/maasserver/websockets/handlers/tests/test_config.py
@@ -25,6 +25,11 @@ from maasserver.websockets.handlers.config import (
2525
2626
27class TestConfigHandler(MAASServerTestCase):27class TestConfigHandler(MAASServerTestCase):
28 def setUp(self):
29 super().setUp()
30 # Avoid triggering updates e.g. update_boot_cache_source
31 Config.objects._config_changed_connections.clear()
32
28 def test_dehydrate_no_choice_config(self):33 def test_dehydrate_no_choice_config(self):
29 no_choice_name = random.choice(34 no_choice_name = random.choice(
30 list(35 list(

Subscribers

People subscribed via source and target branches