aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-11-08 14:39:28 +0100
committerErik Skultety <eskultet@redhat.com>2023-01-17 07:30:56 +0000
commit6cbf46649a216b92358aa7e141762c55c77337a8 (patch)
tree289ee23924e09826c53d365b5709d28573e82238
parent512d2eb0e3b92b7b8cd3ce9602a6ce13631a8fc2 (diff)
downloadlibvirt-ci-6cbf46649a216b92358aa7e141762c55c77337a8.zip
libvirt-ci-6cbf46649a216b92358aa7e141762c55c77337a8.tar.gz
libvirt-ci-6cbf46649a216b92358aa7e141762c55c77337a8.tar.bz2
util: remove global data directory
Now that the Projects object is propagated down from Application, make the extra data directory part of the object instead. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--lcitool/application.py21
-rw-r--r--lcitool/projects.py7
-rw-r--r--lcitool/util.py13
3 files changed, 14 insertions, 27 deletions
diff --git a/lcitool/application.py b/lcitool/application.py
index b840658..7505fe2 100644
--- a/lcitool/application.py
+++ b/lcitool/application.py
@@ -63,7 +63,7 @@ class Application:
log.debug(f"Cmdline args={cli_args}")
def _execute_playbook(self, playbook, hosts_pattern, projects_pattern,
- git_revision, verbosity=0):
+ git_revision, data_dir, verbosity=0):
from lcitool.ansible_wrapper import AnsibleWrapper, AnsibleWrapperError
log.debug(f"Executing playbook '{playbook}': "
@@ -75,7 +75,7 @@ class Application:
targets = Targets()
inventory = Inventory(targets, config)
packages = Packages()
- projects = Projects()
+ projects = Projects(data_dir)
hosts_expanded = inventory.expand_hosts(hosts_pattern)
projects_expanded = projects.expand_names(projects_pattern)
@@ -155,7 +155,7 @@ class Application:
def _action_projects(self, args):
self._entrypoint_debug(args)
- projects = Projects()
+ projects = Projects(args.data_dir)
for project in sorted(projects.names):
print(project)
@@ -205,7 +205,7 @@ class Application:
self._entrypoint_debug(args)
self._execute_playbook("update", args.hosts, args.projects,
- args.git_revision, args.verbose)
+ args.git_revision, args.data_dir, args.verbose)
def _action_build(self, args):
self._entrypoint_debug(args)
@@ -219,14 +219,14 @@ class Application:
)
self._execute_playbook("build", args.hosts, args.projects,
- args.git_revision, args.verbose)
+ args.git_revision, args.data_dir, args.verbose)
def _action_variables(self, args):
self._entrypoint_debug(args)
targets = Targets()
packages = Packages()
- projects = Projects()
+ projects = Projects(args.data_dir)
projects_expanded = projects.expand_names(args.projects)
if args.format == "shell":
@@ -255,7 +255,7 @@ class Application:
targets = Targets()
packages = Packages()
- projects = Projects()
+ projects = Projects(args.data_dir)
projects_expanded = projects.expand_names(args.projects)
target = BuildTarget(targets, packages, args.target, args.cross_arch)
@@ -280,7 +280,7 @@ class Application:
targets = Targets()
packages = Packages()
- projects = Projects()
+ projects = Projects(args.data_dir)
projects_expanded = projects.expand_names(args.projects)
target = BuildTarget(targets, packages, args.target, args.cross_arch)
@@ -302,7 +302,7 @@ class Application:
ci_path = Path(args.ci_dir)
targets = Targets()
packages = Packages()
- projects = Projects()
+ projects = Projects(args.data_dir)
manifest = Manifest(targets, packages, projects, args.manifest, args.quiet, ci_path, base_path)
manifest.generate(args.dry_run)
@@ -345,7 +345,7 @@ class Application:
targets = Targets()
packages = Packages()
- projects = Projects()
+ projects = Projects(args.data_dir)
projects_expanded = projects.expand_names(args.projects)
target = BuildTarget(targets, packages, args.target, args.cross_arch)
@@ -415,7 +415,6 @@ class Application:
def run(self, args):
try:
- util.set_extra_data_dir(args.data_dir)
args.func(self, args)
except LcitoolError as ex:
print(f"{ex.module_prefix} error:", ex, file=sys.stderr)
diff --git a/lcitool/projects.py b/lcitool/projects.py
index 6a45686..c99f71b 100644
--- a/lcitool/projects.py
+++ b/lcitool/projects.py
@@ -52,7 +52,8 @@ class Projects:
self._load_internal()
return self._internal
- def __init__(self):
+ def __init__(self, data_dir=None):
+ self._data_dir = data_dir
self._public = None
self._internal = None
@@ -71,8 +72,8 @@ class Projects:
source = Path(resource_filename(__name__, "facts/projects"))
projects = self._load_projects_from_path(source)
- if util.get_extra_data_dir() is not None:
- source = Path(util.get_extra_data_dir()).joinpath("projects")
+ if self._data_dir is not None:
+ source = Path(self._data_dir).joinpath("projects")
projects.update(self._load_projects_from_path(source))
self._public = projects
diff --git a/lcitool/util.py b/lcitool/util.py
index c231df0..2de718e 100644
--- a/lcitool/util.py
+++ b/lcitool/util.py
@@ -217,19 +217,6 @@ def merge_dict(source, dest):
merge_dict(source[key], dest[key])
-extra_data_dir = None
-
-
-def get_extra_data_dir():
- global extra_data_dir
- return extra_data_dir
-
-
-def set_extra_data_dir(path):
- global extra_data_dir
- extra_data_dir = path
-
-
def validate_cross_platform(cross_arch, osname):
if osname not in ["Debian", "Fedora"]:
raise ValueError(f"Cannot cross compile on {osname}")