Merge ~mpontillo/maas:refactor-plugin-tests into maas:master

Proposed by Mike Pontillo
Status: Merged
Approved by: Mike Pontillo
Approved revision: 465230a7e58308b03c1b80ce3c06c7949a58d4ea
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~mpontillo/maas:refactor-plugin-tests
Merge into: maas:master
Diff against target: 146 lines (+17/-17)
2 files modified
src/provisioningserver/plugin.py (+6/-6)
src/provisioningserver/tests/test_plugin.py (+11/-11)
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
Review via email: mp+326391@code.launchpad.net

Commit message

Refactor plugin.py to allow the reactor to be passed in.

Since the beaconing code will start a UDP/Multicast listener, this
change was necessary in order to ensure the reactor is left in a
clean state after these tests run.

To post a comment you must log in.
Revision history for this message
Lee Trager (ltrager) wrote :

LGTM!

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

LANDING
-b refactor-plugin-tests lp:~mpontillo/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://ci.maas.io/job/maas/branch-tester/10/console

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/provisioningserver/plugin.py b/src/provisioningserver/plugin.py
2index 0671f96..031d53c 100644
3--- a/src/provisioningserver/plugin.py
4+++ b/src/provisioningserver/plugin.py
5@@ -134,10 +134,10 @@ class ProvisioningServiceMaker:
6 rpc_service.setName("rpc")
7 return rpc_service
8
9- def _makeNetworksMonitoringService(self, rpc_service):
10+ def _makeNetworksMonitoringService(self, rpc_service, clock=reactor):
11 from provisioningserver.rackdservices.networks_monitoring_service \
12 import RackNetworksMonitoringService
13- networks_monitor = RackNetworksMonitoringService(rpc_service, reactor)
14+ networks_monitor = RackNetworksMonitoringService(rpc_service, clock)
15 networks_monitor.setName("networks_monitor")
16 return networks_monitor
17
18@@ -162,12 +162,12 @@ class ProvisioningServiceMaker:
19 ntp_service.setName("ntp")
20 return ntp_service
21
22- def _makeServices(self, tftp_root, tftp_port):
23+ def _makeServices(self, tftp_root, tftp_port, clock=reactor):
24 # Several services need to make use of the RPC service.
25 rpc_service = self._makeRPCService()
26 yield rpc_service
27 # Other services that make up the MAAS Region Controller.
28- yield self._makeNetworksMonitoringService(rpc_service)
29+ yield self._makeNetworksMonitoringService(rpc_service, clock=clock)
30 yield self._makeDHCPProbeService(rpc_service)
31 yield self._makeLeaseSocketService(rpc_service)
32 yield self._makeNodePowerMonitorService()
33@@ -188,7 +188,7 @@ class ProvisioningServiceMaker:
34 # Get something going with the logs.
35 logger.configure(verbosity, logger.LoggingMode.TWISTD)
36
37- def makeService(self, options):
38+ def makeService(self, options, clock=reactor):
39 """Construct the MAAS Cluster service."""
40 register_sigusr2_thread_dump_handler()
41 add_patches_to_txtftp()
42@@ -202,7 +202,7 @@ class ProvisioningServiceMaker:
43 tftp_port = config.tftp_port
44
45 from provisioningserver import services
46- for service in self._makeServices(tftp_root, tftp_port):
47+ for service in self._makeServices(tftp_root, tftp_port, clock=clock):
48 service.setServiceParent(services)
49
50 return services
51diff --git a/src/provisioningserver/tests/test_plugin.py b/src/provisioningserver/tests/test_plugin.py
52index 680f622..d62b765 100644
53--- a/src/provisioningserver/tests/test_plugin.py
54+++ b/src/provisioningserver/tests/test_plugin.py
55@@ -101,7 +101,7 @@ class TestProvisioningServiceMaker(MAASTestCase):
56 """
57 options = Options()
58 service_maker = ProvisioningServiceMaker("Harry", "Hill")
59- service = service_maker.makeService(options)
60+ service = service_maker.makeService(options, clock=None)
61 self.assertIsInstance(service, MultiService)
62 expected_services = [
63 "dhcp_probe", "networks_monitor", "image_download",
64@@ -127,7 +127,7 @@ class TestProvisioningServiceMaker(MAASTestCase):
65
66 options = Options()
67 service_maker = ProvisioningServiceMaker("Harry", "Hill")
68- service = service_maker.makeService(options)
69+ service = service_maker.makeService(options, clock=None)
70 self.assertIsInstance(service, MultiService)
71 self.assertThat(service.namedServices, Not(Contains("tftp")))
72 self.assertThat(service.namedServices, Contains("tftp-offload"))
73@@ -139,41 +139,41 @@ class TestProvisioningServiceMaker(MAASTestCase):
74 self.patch(plugin_module, 'add_patches_to_txtftp'))
75 options = Options()
76 service_maker = ProvisioningServiceMaker("Harry", "Hill")
77- service_maker.makeService(options)
78+ service_maker.makeService(options, clock=None)
79 self.assertThat(mock_tftp_patch, MockCalledOnceWith())
80
81 def test_image_download_service(self):
82 options = Options()
83 service_maker = ProvisioningServiceMaker("Harry", "Hill")
84- service = service_maker.makeService(options)
85+ service = service_maker.makeService(options, clock=None)
86 image_service = service.getServiceNamed("image_download")
87 self.assertIsInstance(image_service, ImageDownloadService)
88
89 def test_node_monitor_service(self):
90 options = Options()
91 service_maker = ProvisioningServiceMaker("Harry", "Hill")
92- service = service_maker.makeService(options)
93+ service = service_maker.makeService(options, clock=None)
94 node_monitor = service.getServiceNamed("node_monitor")
95 self.assertIsInstance(node_monitor, NodePowerMonitorService)
96
97 def test_networks_monitor_service(self):
98 options = Options()
99 service_maker = ProvisioningServiceMaker("Spike", "Milligan")
100- service = service_maker.makeService(options)
101+ service = service_maker.makeService(options, clock=None)
102 networks_monitor = service.getServiceNamed("networks_monitor")
103 self.assertIsInstance(networks_monitor, RackNetworksMonitoringService)
104
105 def test_dhcp_probe_service(self):
106 options = Options()
107 service_maker = ProvisioningServiceMaker("Spike", "Milligan")
108- service = service_maker.makeService(options)
109+ service = service_maker.makeService(options, clock=None)
110 dhcp_probe = service.getServiceNamed("dhcp_probe")
111 self.assertIsInstance(dhcp_probe, DHCPProbeService)
112
113 def test_service_monitor_service(self):
114 options = Options()
115 service_maker = ProvisioningServiceMaker("Harry", "Hill")
116- service = service_maker.makeService(options)
117+ service = service_maker.makeService(options, clock=None)
118 service_monitor = service.getServiceNamed("service_monitor")
119 self.assertIsInstance(service_monitor, ServiceMonitorService)
120
121@@ -181,7 +181,7 @@ class TestProvisioningServiceMaker(MAASTestCase):
122 # A TFTP service is configured and added to the top-level service.
123 options = Options()
124 service_maker = ProvisioningServiceMaker("Harry", "Hill")
125- service = service_maker.makeService(options)
126+ service = service_maker.makeService(options, clock=None)
127 tftp_service = service.getServiceNamed("tftp")
128 self.assertIsInstance(tftp_service, TFTPService)
129
130@@ -204,7 +204,7 @@ class TestProvisioningServiceMaker(MAASTestCase):
131 def test_image_service(self):
132 options = Options()
133 service_maker = ProvisioningServiceMaker("Harry", "Hill")
134- service = service_maker.makeService(options)
135+ service = service_maker.makeService(options, clock=None)
136 image_service = service.getServiceNamed("image_service")
137 self.assertIsInstance(image_service, BootImageEndpointService)
138 self.assertIsInstance(image_service.site, Site)
139@@ -222,6 +222,6 @@ class TestProvisioningServiceMaker(MAASTestCase):
140 def test_lease_socket_service(self):
141 options = Options()
142 service_maker = ProvisioningServiceMaker("Harry", "Hill")
143- service = service_maker.makeService(options)
144+ service = service_maker.makeService(options, clock=None)
145 lease_socket_service = service.getServiceNamed("lease_socket_service")
146 self.assertIsInstance(lease_socket_service, LeaseSocketService)

Subscribers

People subscribed via source and target branches