reorder imports and global structure for better understanding
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
9dcf370a07
commit
eba11df2af
@ -1,75 +1,7 @@
|
|||||||
import json
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from src.utils import proxmox_utils, creation_utils, lxc_commands_utils
|
from . import creation_utils, commands_utils
|
||||||
|
from ..utils import proxmox_utils
|
||||||
lxcs = []
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_lxcs():
|
|
||||||
"""Get all LXC objects
|
|
||||||
|
|
||||||
Returns
|
|
||||||
-------
|
|
||||||
list
|
|
||||||
List of all loaded LXC objects
|
|
||||||
"""
|
|
||||||
|
|
||||||
return lxcs
|
|
||||||
|
|
||||||
|
|
||||||
def get_lxc(lxc_id):
|
|
||||||
"""Get LXC by ID
|
|
||||||
|
|
||||||
Parameters
|
|
||||||
----------
|
|
||||||
lxc_id : str
|
|
||||||
ID of the LXC to get
|
|
||||||
|
|
||||||
Returns
|
|
||||||
-------
|
|
||||||
LXC
|
|
||||||
LXC object
|
|
||||||
"""
|
|
||||||
|
|
||||||
for lxc in lxcs:
|
|
||||||
if lxc.get_id() == lxc_id:
|
|
||||||
return lxc
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def load_lxc(file, lxc_id):
|
|
||||||
"""Load LXC from JSON file
|
|
||||||
|
|
||||||
Parameters
|
|
||||||
----------
|
|
||||||
file : str
|
|
||||||
Path to the JSON file of the LXC to load
|
|
||||||
lxc_id : str
|
|
||||||
ID of the LXC to load
|
|
||||||
|
|
||||||
Examples
|
|
||||||
--------
|
|
||||||
>>> load_lxc("./resources/lxc/100/config.json", "100")
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Load JSON data
|
|
||||||
data = json.loads(file)
|
|
||||||
|
|
||||||
# Extract values from JSON
|
|
||||||
lxc_id = lxc_id
|
|
||||||
lxc_hostname = data["lxc_hostname"]
|
|
||||||
os = data["os"]
|
|
||||||
resources = data["resources"]
|
|
||||||
network = data["network"]
|
|
||||||
options = data["options"]
|
|
||||||
creation = data["creation"]
|
|
||||||
deploy = data["deploy"]
|
|
||||||
|
|
||||||
# Create LXC object
|
|
||||||
lxc = LXC(lxc_id, lxc_hostname, os, resources, network, options, creation, deploy)
|
|
||||||
lxcs.append(lxc)
|
|
||||||
|
|
||||||
|
|
||||||
class LXC:
|
class LXC:
|
||||||
@ -413,7 +345,7 @@ class LXC:
|
|||||||
:param script_path:
|
:param script_path:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
return lxc_commands_utils.run_script(self, {"lxc_path": script_path})
|
return commands_utils.run_script(self, {"lxc_path": script_path})
|
||||||
|
|
||||||
def run_command(self, command, ssh=False, warn_exit_status=False, only_code=False, working_directory=None):
|
def run_command(self, command, ssh=False, warn_exit_status=False, only_code=False, working_directory=None):
|
||||||
"""
|
"""
|
@ -1,7 +1,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from src.utils import proxmox_utils
|
from ..utils import proxmox_utils
|
||||||
from src.utils.resources_utils import get_path
|
from ..utils.resources_utils import get_path
|
||||||
|
|
||||||
|
|
||||||
def run_script(lxc, step):
|
def run_script(lxc, step):
|
@ -1,7 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from src.utils import lxc_commands_utils
|
from . import commands_utils
|
||||||
|
|
||||||
|
|
||||||
def are_all_conditions_met(lxc):
|
def are_all_conditions_met(lxc):
|
||||||
@ -81,32 +81,32 @@ def run_steps(lxc):
|
|||||||
|
|
||||||
# Support for scripts
|
# Support for scripts
|
||||||
case "script":
|
case "script":
|
||||||
lxc_commands_utils.run_script(lxc, step)
|
commands_utils.run_script(lxc, step)
|
||||||
case "file_create":
|
case "file_create":
|
||||||
lxc_commands_utils.create_file_in_lxc(lxc, step["path"], optional(step["permission"], 644))
|
commands_utils.create_file_in_lxc(lxc, step["path"], optional(step["permission"], 644))
|
||||||
case "file_copy":
|
case "file_copy":
|
||||||
lxc_commands_utils.copy_local_file_to_lxc(lxc, step["path"], step["destination"])
|
commands_utils.copy_local_file_to_lxc(lxc, step["path"], step["destination"])
|
||||||
case "folder":
|
case "folder":
|
||||||
lxc_commands_utils.create_folder_in_lxc(lxc, step["path"], optional(step["permission"], 755))
|
commands_utils.create_folder_in_lxc(lxc, step["path"], optional(step["permission"], 755))
|
||||||
case "folder_copy":
|
case "folder_copy":
|
||||||
lxc_commands_utils.copy_local_folder_to_lxc(lxc, step["path"], step["destination"])
|
commands_utils.copy_local_folder_to_lxc(lxc, step["path"], step["destination"])
|
||||||
case "command":
|
case "command":
|
||||||
lxc.run_command(command=step["command"], working_directory=optional(step["working_directory"], None))
|
lxc.run_command(command=step["command"], working_directory=optional(step["working_directory"], None))
|
||||||
case "docker":
|
case "docker":
|
||||||
lxc_commands_utils.run_docker_command(lxc, step["container"], step["command"])
|
commands_utils.run_docker_command(lxc, step["container"], step["command"])
|
||||||
case "docker_compose":
|
case "docker_compose":
|
||||||
lxc_commands_utils.run_docker_compose_command(lxc, step["command"],
|
commands_utils.run_docker_compose_command(lxc, step["command"],
|
||||||
optional(step["working_directory"], None))
|
optional(step["working_directory"], None))
|
||||||
case "git":
|
case "git":
|
||||||
lxc.run_command(command=f"git clone {step['url']} {step['destination']}")
|
lxc.run_command(command=f"git clone {step['url']} {step['destination']}")
|
||||||
case "download":
|
case "download":
|
||||||
lxc_commands_utils.download_file(lxc, step["url"], step["destination"])
|
commands_utils.download_file(lxc, step["url"], step["destination"])
|
||||||
case "unzip":
|
case "unzip":
|
||||||
lxc_commands_utils.unzip_file(lxc, step["path"], optional(step["destination"], None))
|
commands_utils.unzip_file(lxc, step["path"], optional(step["destination"], None))
|
||||||
case "install-package":
|
case "install-package":
|
||||||
lxc_commands_utils.install_package(lxc, step["package"])
|
commands_utils.install_package(lxc, step["package"])
|
||||||
case "remove-package":
|
case "remove-package":
|
||||||
lxc_commands_utils.remove_package(lxc, step["package"])
|
commands_utils.remove_package(lxc, step["package"])
|
||||||
case "start":
|
case "start":
|
||||||
lxc.start()
|
lxc.start()
|
||||||
case "stop":
|
case "stop":
|
||||||
@ -114,4 +114,4 @@ def run_steps(lxc):
|
|||||||
case "reboot":
|
case "reboot":
|
||||||
lxc.reboot()
|
lxc.reboot()
|
||||||
case "replace-in-files":
|
case "replace-in-files":
|
||||||
lxc_commands_utils.replace_in_files(lxc, step["files"], step["search"], step["replace"])
|
commands_utils.replace_in_files(lxc, step["files"], step["search"], step["replace"])
|
71
src/lxc/utils.py
Normal file
71
src/lxc/utils.py
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
|
from . import LXC
|
||||||
|
|
||||||
|
lxcs = []
|
||||||
|
|
||||||
|
|
||||||
|
def get_all_lxcs():
|
||||||
|
"""Get all LXC objects
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
list
|
||||||
|
List of all loaded LXC objects
|
||||||
|
"""
|
||||||
|
|
||||||
|
return lxcs
|
||||||
|
|
||||||
|
|
||||||
|
def get_lxc(lxc_id):
|
||||||
|
"""Get LXC by ID
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
lxc_id : str
|
||||||
|
ID of the LXC to get
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
LXC
|
||||||
|
LXC object
|
||||||
|
"""
|
||||||
|
|
||||||
|
for lxc in lxcs:
|
||||||
|
if lxc.get_id() == lxc_id:
|
||||||
|
return lxc
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def load_lxc(file, lxc_id):
|
||||||
|
"""Load LXC from JSON file
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
file : str
|
||||||
|
Path to the JSON file of the LXC to load
|
||||||
|
lxc_id : str
|
||||||
|
ID of the LXC to load
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
>>> load_lxc("./resources/lxc/100/config.json", "100")
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Load JSON data
|
||||||
|
data = json.loads(file)
|
||||||
|
|
||||||
|
# Extract values from JSON
|
||||||
|
lxc_id = lxc_id
|
||||||
|
lxc_hostname = data["lxc_hostname"]
|
||||||
|
os = data["os"]
|
||||||
|
resources = data["resources"]
|
||||||
|
network = data["network"]
|
||||||
|
options = data["options"]
|
||||||
|
creation = data["creation"]
|
||||||
|
deploy = data["deploy"]
|
||||||
|
|
||||||
|
# Create LXC object
|
||||||
|
lxc = LXC(lxc_id, lxc_hostname, os, resources, network, options, creation, deploy)
|
||||||
|
lxcs.append(lxc)
|
@ -1,8 +1,8 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from src.get_path_file import project_path
|
from . import project_path
|
||||||
from src.utils.lxc_utils import load_lxc, get_all_lxcs
|
from .lxc.utils import load_lxc, get_all_lxcs
|
||||||
|
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
|
@ -3,7 +3,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from src.get_path_file import project_path
|
from .. import project_path
|
||||||
|
|
||||||
|
|
||||||
def get_pve_version():
|
def get_pve_version():
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from src.get_path_file import project_path
|
from .. import project_path
|
||||||
|
|
||||||
|
|
||||||
def get_path(lxc, path):
|
def get_path(lxc, path):
|
||||||
|
Loading…
Reference in New Issue
Block a user