Merge ~adam-collard/maas:3.3-maas-url-from-region-config into maas:3.3

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: 838e2b83b7d10ebb329e2a5f64a6545968ec6b02
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~adam-collard/maas:3.3-maas-url-from-region-config
Merge into: maas:3.3
Diff against target: 109 lines (+23/-21)
3 files modified
src/maasserver/regiondservices/networks_monitoring.py (+3/-1)
src/maasserver/regiondservices/tests/test_networks_monitoring.py (+6/-1)
src/provisioningserver/refresh/__init__.py (+14/-19)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Adam Collard (community) Approve
Review via email: mp+434440@code.launchpad.net

Commit message

Use MAAS_URL from RegionConfiguration

To post a comment you must log in.
Revision history for this message
Adam Collard (adam-collard) wrote :

Self-approve backport

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

UNIT TESTS
-b 3.3-maas-url-from-region-config lp:~adam-collard/maas/+git/maas into -b 3.3 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 838e2b83b7d10ebb329e2a5f64a6545968ec6b02

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/regiondservices/networks_monitoring.py b/src/maasserver/regiondservices/networks_monitoring.py
2index e76a4a8..e1a7293 100644
3--- a/src/maasserver/regiondservices/networks_monitoring.py
4+++ b/src/maasserver/regiondservices/networks_monitoring.py
5@@ -5,6 +5,7 @@
6
7 from twisted.internet.defer import inlineCallbacks, returnValue
8
9+from maasserver.config import RegionConfiguration
10 from maasserver.models.node import RegionController
11 from maasserver.utils.orm import transactional
12 from maasserver.utils.threads import deferToDatabase
13@@ -26,7 +27,8 @@ class RegionNetworksMonitoringService(NetworksMonitoringService):
14 """Record the interfaces information."""
15 regiond = yield deferToDatabase(self._getRegion)
16 credentials = yield regiond.start_refresh()
17- returnValue((None, regiond.system_id, credentials))
18+ with RegionConfiguration.open() as config:
19+ returnValue((config.maas_url, regiond.system_id, credentials))
20
21 def reportNeighbours(self, neighbours):
22 """Record the specified list of neighbours."""
23diff --git a/src/maasserver/regiondservices/tests/test_networks_monitoring.py b/src/maasserver/regiondservices/tests/test_networks_monitoring.py
24index f4aa0a4..8d3cc4b 100644
25--- a/src/maasserver/regiondservices/tests/test_networks_monitoring.py
26+++ b/src/maasserver/regiondservices/tests/test_networks_monitoring.py
27@@ -10,6 +10,7 @@ from twisted.internet.defer import Deferred, inlineCallbacks, returnValue
28 from maasserver.regiondservices.networks_monitoring import (
29 RegionNetworksMonitoringService,
30 )
31+from maasserver.testing.config import RegionConfigurationFixture
32 from maasserver.testing.factory import factory
33 from maasserver.testing.testcase import MAASTransactionServerTestCase
34 from maasserver.utils.threads import deferToDatabase
35@@ -62,6 +63,8 @@ class TestRegionNetworksMonitoringService(MAASTransactionServerTestCase):
36 @wait_for()
37 @inlineCallbacks
38 def test_get_refresh_details_running(self):
39+ example_url = factory.make_simple_http_url()
40+ self.useFixture(RegionConfigurationFixture(maas_url=example_url))
41 region = yield deferToDatabase(factory.make_RegionController)
42 region.owner = yield deferToDatabase(factory.make_admin)
43 yield deferToDatabase(region.save)
44@@ -83,4 +86,6 @@ class TestRegionNetworksMonitoringService(MAASTransactionServerTestCase):
45 "token_key": region_token.key,
46 "token_secret": region_token.secret,
47 }
48- self.assertEqual((None, region.system_id, region_credentials), details)
49+ self.assertEqual(
50+ (example_url, region.system_id, region_credentials), details
51+ )
52diff --git a/src/provisioningserver/refresh/__init__.py b/src/provisioningserver/refresh/__init__.py
53index 8b737ed..04c19cd 100644
54--- a/src/provisioningserver/refresh/__init__.py
55+++ b/src/provisioningserver/refresh/__init__.py
56@@ -3,7 +3,6 @@
57
58 """Functionality to refresh rack controller hardware and networking details."""
59
60-import copy
61 import os
62 from subprocess import DEVNULL, PIPE, Popen, TimeoutExpired
63 import tempfile
64@@ -99,6 +98,11 @@ def runscripts(
65 os.makedirs(out_dir)
66 fd, resources_file = tempfile.mkstemp()
67 os.close(fd)
68+ # derive the base URL from the metadata one
69+ parsed_url = urllib.parse.urlparse(url)
70+ base_url = urllib.parse.urlunparse(
71+ (parsed_url.scheme, parsed_url.netloc, "", "", "", "")
72+ )
73 for script_name in sorted(scripts.keys()):
74 signal_wrapper(
75 url,
76@@ -117,24 +121,15 @@ def runscripts(
77 result_name = f"{script_name}.yaml"
78 result_path = os.path.join(out_dir, result_name)
79
80- # derive the base URL for from the metadata one
81- parsed_url = urllib.parse.urlparse(url)
82- base_url = urllib.parse.urlunparse(
83- (parsed_url.scheme, parsed_url.netloc, "", "", "", "")
84- )
85-
86- env = copy.deepcopy(os.environ)
87- env.update(
88- {
89- "MAAS_BASE_URL": base_url,
90- "MAAS_RESOURCES_FILE": resources_file,
91- "OUTPUT_COMBINED_PATH": combined_path,
92- "OUTPUT_STDOUT_PATH": stdout_path,
93- "OUTPUT_STDERR_PATH": stderr_path,
94- "RESULT_PATH": result_path,
95- "TMPDIR": tmpdir,
96- }
97- )
98+ env = os.environ | {
99+ "MAAS_BASE_URL": base_url,
100+ "MAAS_RESOURCES_FILE": resources_file,
101+ "OUTPUT_COMBINED_PATH": combined_path,
102+ "OUTPUT_STDOUT_PATH": stdout_path,
103+ "OUTPUT_STDERR_PATH": stderr_path,
104+ "RESULT_PATH": result_path,
105+ "TMPDIR": tmpdir,
106+ }
107 timeout = 60
108 command = [script_path] if in_snap else ["sudo", "-E", script_path]
109 try:

Subscribers

People subscribed via source and target branches