mirror of
https://github.com/yavook/kiwi-scp.git
synced 2024-12-25 02:23:01 +00:00
Merge tag '0.2.1' into develop
Fix: conf-copy mechanism
This commit is contained in:
commit
a808e26536
6 changed files with 12 additions and 30 deletions
|
@ -2,7 +2,7 @@
|
|||
# kiwi-scp instance configuration #
|
||||
###################################
|
||||
|
||||
version: 0.2.0
|
||||
version: 0.2.1
|
||||
|
||||
shells:
|
||||
- /bin/bash
|
||||
|
|
|
@ -16,7 +16,7 @@ class InvalidFormatError(ValueError):
|
|||
member: Optional[str]
|
||||
data: str
|
||||
|
||||
def __init__(self, cls, data, member = None):
|
||||
def __init__(self, cls, data, member=None):
|
||||
self.cls = cls
|
||||
self.data = data
|
||||
|
||||
|
@ -164,7 +164,7 @@ class MissingMemberError(ValueError):
|
|||
class KiwiConfig(BaseModel):
|
||||
"""represents a kiwi.yml"""
|
||||
|
||||
version: constr(regex=RE_SEMVER) = "0.2.0"
|
||||
version: constr(regex=RE_SEMVER) = "0.2.1"
|
||||
|
||||
shells: List[Path] = [
|
||||
Path("/bin/bash"),
|
||||
|
|
|
@ -32,8 +32,8 @@ class Instance:
|
|||
return self.directory.joinpath(CONFIG_DIRECTORY_NAME)
|
||||
|
||||
@property
|
||||
def storage_config_directory(self):
|
||||
return self.config.storage.directory.joinpath(CONFIG_DIRECTORY_NAME)
|
||||
def storage_directory(self):
|
||||
return self.config.storage.directory
|
||||
|
||||
@staticmethod
|
||||
def __find_net(net_name):
|
||||
|
|
|
@ -64,9 +64,7 @@ class Rootkit:
|
|||
return argument
|
||||
|
||||
elif isinstance(argument, Path):
|
||||
if argument.is_absolute():
|
||||
argument = argument.relative_to("/")
|
||||
|
||||
argument = argument.absolute().relative_to("/")
|
||||
return str(ROOTKIT_PREFIX.joinpath(argument))
|
||||
|
||||
elif not isinstance(argument, Sequence):
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import subprocess
|
||||
from pathlib import Path
|
||||
from typing import List, Generator, Optional, TYPE_CHECKING, TypeVar, Union
|
||||
from typing import List, Generator, Optional, TYPE_CHECKING
|
||||
|
||||
import attr
|
||||
|
||||
|
@ -44,36 +44,20 @@ class Services:
|
|||
yield from service.configs
|
||||
|
||||
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
|
||||
configs = list(self.configs)
|
||||
|
||||
if project is None:
|
||||
if project is None or not configs:
|
||||
return
|
||||
|
||||
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([
|
||||
"mkdir", "-p", storage_dirs
|
||||
"mkdir", "-p", instance.storage_directory
|
||||
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||
|
||||
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)
|
||||
|
||||
@property
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[tool.poetry]
|
||||
name = "kiwi-scp"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
description = "kiwi is the simple tool for managing container servers."
|
||||
authors = ["ldericher <40151420+ldericher@users.noreply.github.com>"]
|
||||
|
||||
|
|
Loading…
Reference in a new issue