sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #03964
[Merge] ~adam-collard/maas:maas-url-from-region-config into maas:master
Adam Collard has proposed merging ~adam-collard/maas:maas-url-from-region-config into maas:master.
Commit message:
Use MAAS_URL from RegionConfiguration
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~adam-collard/maas/+git/maas/+merge/434431
--
Your team MAAS Maintainers is requested to review the proposed merge of ~adam-collard/maas:maas-url-from-region-config into maas:master.
diff --git a/src/maasserver/regiondservices/networks_monitoring.py b/src/maasserver/regiondservices/networks_monitoring.py
index e76a4a8..e1a7293 100644
--- a/src/maasserver/regiondservices/networks_monitoring.py
+++ b/src/maasserver/regiondservices/networks_monitoring.py
@@ -5,6 +5,7 @@
from twisted.internet.defer import inlineCallbacks, returnValue
+from maasserver.config import RegionConfiguration
from maasserver.models.node import RegionController
from maasserver.utils.orm import transactional
from maasserver.utils.threads import deferToDatabase
@@ -26,7 +27,8 @@ class RegionNetworksMonitoringService(NetworksMonitoringService):
"""Record the interfaces information."""
regiond = yield deferToDatabase(self._getRegion)
credentials = yield regiond.start_refresh()
- returnValue((None, regiond.system_id, credentials))
+ with RegionConfiguration.open() as config:
+ returnValue((config.maas_url, regiond.system_id, credentials))
def reportNeighbours(self, neighbours):
"""Record the specified list of neighbours."""
diff --git a/src/maasserver/regiondservices/tests/test_networks_monitoring.py b/src/maasserver/regiondservices/tests/test_networks_monitoring.py
index f4aa0a4..8d3cc4b 100644
--- a/src/maasserver/regiondservices/tests/test_networks_monitoring.py
+++ b/src/maasserver/regiondservices/tests/test_networks_monitoring.py
@@ -10,6 +10,7 @@ from twisted.internet.defer import Deferred, inlineCallbacks, returnValue
from maasserver.regiondservices.networks_monitoring import (
RegionNetworksMonitoringService,
)
+from maasserver.testing.config import RegionConfigurationFixture
from maasserver.testing.factory import factory
from maasserver.testing.testcase import MAASTransactionServerTestCase
from maasserver.utils.threads import deferToDatabase
@@ -62,6 +63,8 @@ class TestRegionNetworksMonitoringService(MAASTransactionServerTestCase):
@wait_for()
@inlineCallbacks
def test_get_refresh_details_running(self):
+ example_url = factory.make_simple_http_url()
+ self.useFixture(RegionConfigurationFixture(maas_url=example_url))
region = yield deferToDatabase(factory.make_RegionController)
region.owner = yield deferToDatabase(factory.make_admin)
yield deferToDatabase(region.save)
@@ -83,4 +86,6 @@ class TestRegionNetworksMonitoringService(MAASTransactionServerTestCase):
"token_key": region_token.key,
"token_secret": region_token.secret,
}
- self.assertEqual((None, region.system_id, region_credentials), details)
+ self.assertEqual(
+ (example_url, region.system_id, region_credentials), details
+ )
diff --git a/src/provisioningserver/refresh/__init__.py b/src/provisioningserver/refresh/__init__.py
index 8b737ed..04c19cd 100644
--- a/src/provisioningserver/refresh/__init__.py
+++ b/src/provisioningserver/refresh/__init__.py
@@ -3,7 +3,6 @@
"""Functionality to refresh rack controller hardware and networking details."""
-import copy
import os
from subprocess import DEVNULL, PIPE, Popen, TimeoutExpired
import tempfile
@@ -99,6 +98,11 @@ def runscripts(
os.makedirs(out_dir)
fd, resources_file = tempfile.mkstemp()
os.close(fd)
+ # derive the base URL from the metadata one
+ parsed_url = urllib.parse.urlparse(url)
+ base_url = urllib.parse.urlunparse(
+ (parsed_url.scheme, parsed_url.netloc, "", "", "", "")
+ )
for script_name in sorted(scripts.keys()):
signal_wrapper(
url,
@@ -117,24 +121,15 @@ def runscripts(
result_name = f"{script_name}.yaml"
result_path = os.path.join(out_dir, result_name)
- # derive the base URL for from the metadata one
- parsed_url = urllib.parse.urlparse(url)
- base_url = urllib.parse.urlunparse(
- (parsed_url.scheme, parsed_url.netloc, "", "", "", "")
- )
-
- env = copy.deepcopy(os.environ)
- env.update(
- {
- "MAAS_BASE_URL": base_url,
- "MAAS_RESOURCES_FILE": resources_file,
- "OUTPUT_COMBINED_PATH": combined_path,
- "OUTPUT_STDOUT_PATH": stdout_path,
- "OUTPUT_STDERR_PATH": stderr_path,
- "RESULT_PATH": result_path,
- "TMPDIR": tmpdir,
- }
- )
+ env = os.environ | {
+ "MAAS_BASE_URL": base_url,
+ "MAAS_RESOURCES_FILE": resources_file,
+ "OUTPUT_COMBINED_PATH": combined_path,
+ "OUTPUT_STDOUT_PATH": stdout_path,
+ "OUTPUT_STDERR_PATH": stderr_path,
+ "RESULT_PATH": result_path,
+ "TMPDIR": tmpdir,
+ }
timeout = 60
command = [script_path] if in_snap else ["sudo", "-E", script_path]
try:
Follow ups