mirror of
https://github.com/yavook/kiwi-scp.git
synced 2024-11-23 21:23:00 +00:00
KIWI_CONFIG handling
This commit is contained in:
parent
23ef20bd74
commit
5c300b9119
3 changed files with 7 additions and 25 deletions
|
@ -32,8 +32,8 @@ class Instance:
|
||||||
return self.directory.joinpath(CONFIG_DIRECTORY_NAME)
|
return self.directory.joinpath(CONFIG_DIRECTORY_NAME)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def storage_config_directory(self):
|
def storage_directory(self):
|
||||||
return self.config.storage.directory.joinpath(CONFIG_DIRECTORY_NAME)
|
return self.config.storage.directory
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __find_net(net_name):
|
def __find_net(net_name):
|
||||||
|
|
|
@ -64,9 +64,7 @@ class Rootkit:
|
||||||
return argument
|
return argument
|
||||||
|
|
||||||
elif isinstance(argument, Path):
|
elif isinstance(argument, Path):
|
||||||
if argument.is_absolute():
|
argument = argument.absolute().relative_to("/")
|
||||||
argument = argument.relative_to("/")
|
|
||||||
|
|
||||||
return str(ROOTKIT_PREFIX.joinpath(argument))
|
return str(ROOTKIT_PREFIX.joinpath(argument))
|
||||||
|
|
||||||
elif not isinstance(argument, Sequence):
|
elif not isinstance(argument, Sequence):
|
||||||
|
|
|
@ -44,36 +44,20 @@ class Services:
|
||||||
yield from service.configs
|
yield from service.configs
|
||||||
|
|
||||||
def copy_configs(self) -> None:
|
def copy_configs(self) -> None:
|
||||||
path_str_list = TypeVar("path_str_list", Union[Path, str], List[Union[Path, str]])
|
|
||||||
|
|
||||||
def prefix_path(path: path_str_list, prefix: Path) -> path_str_list:
|
|
||||||
if isinstance(path, Path):
|
|
||||||
return prefix.absolute().joinpath(path)
|
|
||||||
|
|
||||||
elif isinstance(path, str):
|
|
||||||
return prefix_path(Path(path), prefix)
|
|
||||||
|
|
||||||
elif isinstance(path, list):
|
|
||||||
return [prefix_path(p, prefix) for p in path]
|
|
||||||
|
|
||||||
project = self.parent_project
|
project = self.parent_project
|
||||||
|
configs = list(self.configs)
|
||||||
|
|
||||||
if project is None:
|
if project is None or not configs:
|
||||||
return
|
return
|
||||||
|
|
||||||
instance = project.parent_instance
|
instance = project.parent_instance
|
||||||
cfgs = list(self.configs)
|
|
||||||
|
|
||||||
local_cfgs = prefix_path(cfgs, instance.config_directory)
|
|
||||||
storage_cfgs = prefix_path(cfgs, instance.storage_config_directory)
|
|
||||||
storage_dirs = [path.parent for path in storage_cfgs]
|
|
||||||
|
|
||||||
Rootkit("rsync").run([
|
Rootkit("rsync").run([
|
||||||
"mkdir", "-p", storage_dirs
|
"mkdir", "-p", instance.storage_directory
|
||||||
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
|
||||||
Rootkit("rsync").run([
|
Rootkit("rsync").run([
|
||||||
"rsync", "-rpt", list(zip(local_cfgs, storage_cfgs))
|
"rsync", "-rpt", instance.config_directory, instance.storage_directory
|
||||||
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
Loading…
Reference in a new issue