sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #04169
[Merge] ~igor-brovtsin/maas:lp-1994945-3.2 into maas:3.2
Igor Brovtsin has proposed merging ~igor-brovtsin/maas:lp-1994945-3.2 into maas:3.2.
Commit message:
fix(LP#1994945): don't try to set default value when no values are present
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~igor-brovtsin/maas/+git/maas/+merge/434782
This MP backports a fix for an issue preventing users from allocating machines when at least one virsh host is uninitialized
--
Your team MAAS Committers is subscribed to branch maas:3.2.
diff --git a/src/metadataserver/user_data/templates/snippets/maas_run_scripts.py b/src/metadataserver/user_data/templates/snippets/maas_run_scripts.py
index 09e8855..b073771 100644
--- a/src/metadataserver/user_data/templates/snippets/maas_run_scripts.py
+++ b/src/metadataserver/user_data/templates/snippets/maas_run_scripts.py
@@ -18,7 +18,7 @@ import shutil
import subprocess
import sys
import tarfile
-from tempfile import mkdtemp
+from tempfile import TemporaryDirectory
import time
import urllib.error
@@ -46,9 +46,7 @@ class ExitError(Exception):
class ScriptsPaths:
- def __init__(self, base_path=None):
- if base_path is None:
- base_path = Path(mkdtemp())
+ def __init__(self, base_path):
self.scripts = base_path / "scripts"
self.out = base_path / "out"
self.downloads = base_path / "downloads"
@@ -375,52 +373,54 @@ def action_report_results(ns):
if not config.metadata_url:
raise ExitError("No MAAS URL set")
- paths = ScriptsPaths()
- paths.ensure()
+ with TemporaryDirectory() as base_path:
+ paths = ScriptsPaths(Path(base_path))
+ paths.ensure()
- maas_url = get_base_url(config.metadata_url)
- metadata_url = maas_url + "/MAAS/metadata/" + MD_VERSION + "/"
+ maas_url = get_base_url(config.metadata_url)
+ metadata_url = maas_url + "/MAAS/metadata/" + MD_VERSION + "/"
- print(
- "* Fetching scripts from {url} to {dir}".format(
- url=metadata_url, dir=paths.scripts
- )
- )
- for script in fetch_scripts(
- maas_url, metadata_url, paths, config.credentials
- ):
- if not script.should_run():
- continue
print(
- f"* Running '{script.name}'...",
- end="\n" if ns.debug else " ",
+ "* Fetching scripts from {url} to {dir}".format(
+ url=metadata_url, dir=paths.scripts
+ )
)
- result = script.run(console_output=ns.debug)
- if ns.debug:
+
+ for script in fetch_scripts(
+ maas_url, metadata_url, paths, config.credentials
+ ):
+ if not script.should_run():
+ continue
print(
- f"* Finished running '{script.name}': ",
- end=" ",
+ f"* Running '{script.name}'...",
+ end="\n" if ns.debug else " ",
)
- if result.exit_status == 0:
- print("success")
- else:
- print(
- "FAILED (status {result.exit_status}): {result.error}".format(
- result=result
+ result = script.run(console_output=ns.debug)
+ if ns.debug:
+ print(
+ f"* Finished running '{script.name}': ",
+ end=" ",
)
+ if result.exit_status == 0:
+ print("success")
+ else:
+ print(
+ "FAILED (status {result.exit_status}): {result.error}".format(
+ result=result
+ )
+ )
+ signal(
+ metadata_url,
+ config.credentials,
+ result.status,
+ error=result.error,
+ script_name=script.name,
+ script_result_id=script.info.get("script_result_id"),
+ files=result.result_files,
+ runtime=result.runtime,
+ exit_status=result.exit_status,
+ script_version_id=script.info.get("script_version_id"),
)
- signal(
- metadata_url,
- config.credentials,
- result.status,
- error=result.error,
- script_name=script.name,
- script_result_id=script.info.get("script_result_id"),
- files=result.result_files,
- runtime=result.runtime,
- exit_status=result.exit_status,
- script_version_id=script.info.get("script_version_id"),
- )
def action_register_machine(ns):