Rearrange files #605

Merged
telackey merged 4 commits from dboreham/rearrance-files into main 2023-10-25 04:13:09 +00:00
25 changed files with 44 additions and 44 deletions

2
.gitignore vendored
View File

@ -7,4 +7,4 @@ __pycache__
*~ *~
package package
app/data/build_tag.txt app/data/build_tag.txt
build /build

View File

@ -15,7 +15,7 @@
import os import os
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from app.deploy import get_stack_status from app.deploy.deploy import get_stack_status
from decouple import config from decouple import config

0
app/build/__init__.py Normal file
View File

View File

@ -52,7 +52,7 @@ def command(ctx, include, exclude, force_rebuild, extra_build_args):
continue_on_error = ctx.obj.continue_on_error continue_on_error = ctx.obj.continue_on_error
# See: https://stackoverflow.com/questions/25389095/python-get-path-of-root-project-structure # See: https://stackoverflow.com/questions/25389095/python-get-path-of-root-project-structure
container_build_dir = Path(__file__).absolute().parent.joinpath("data", "container-build") container_build_dir = Path(__file__).absolute().parent.parent.joinpath("data", "container-build")
if local_stack: if local_stack:
dev_root_path = os.getcwd()[0:os.getcwd().rindex("stack-orchestrator")] dev_root_path = os.getcwd()[0:os.getcwd().rindex("stack-orchestrator")]

View File

@ -14,9 +14,9 @@
# along with this program. If not, see <http:#www.gnu.org/licenses/>. # along with this program. If not, see <http:#www.gnu.org/licenses/>.
from app.util import get_yaml from app.util import get_yaml
from app.deploy_types import DeployCommandContext, LaconicStackSetupCommand, DeploymentContext from app.deploy.deploy_types import DeployCommandContext, LaconicStackSetupCommand, DeploymentContext
from app.stack_state import State from app.deploy.stack_state import State
from app.deploy_util import VolumeMapping, run_container_command from app.deploy.deploy_util import VolumeMapping, run_container_command
from app.command_types import CommandOptions from app.command_types import CommandOptions
from enum import Enum from enum import Enum
from pathlib import Path from pathlib import Path

View File

@ -14,9 +14,9 @@
# along with this program. If not, see <http:#www.gnu.org/licenses/>. # along with this program. If not, see <http:#www.gnu.org/licenses/>.
from app.util import get_yaml from app.util import get_yaml
from app.deploy_types import DeployCommandContext from app.deploy.deploy_types import DeployCommandContext
from app.stack_state import State from app.deploy.stack_state import State
from app.deploy_util import VolumeMapping, run_container_command from app.deploy.deploy_util import VolumeMapping, run_container_command
from pathlib import Path from pathlib import Path
default_spec_file_content = """config: default_spec_file_content = """config:

0
app/deploy/__init__.py Normal file
View File

View File

View File

@ -14,7 +14,7 @@
# along with this program. If not, see <http:#www.gnu.org/licenses/>. # along with this program. If not, see <http:#www.gnu.org/licenses/>.
from python_on_whales import DockerClient, DockerException from python_on_whales import DockerClient, DockerException
from app.deployer import Deployer, DeployerException from app.deploy.deployer import Deployer, DeployerException
class DockerDeployer(Deployer): class DockerDeployer(Deployer):

View File

@ -25,12 +25,12 @@ import subprocess
import click import click
from pathlib import Path from pathlib import Path
from app.util import include_exclude_check, get_parsed_stack_config, global_options2, get_dev_root_path from app.util import include_exclude_check, get_parsed_stack_config, global_options2, get_dev_root_path
from app.deployer import Deployer, DeployerException from app.deploy.deployer import Deployer, DeployerException
from app.deployer_factory import getDeployer from app.deploy.deployer_factory import getDeployer
from app.deploy_types import ClusterContext, DeployCommandContext from app.deploy.deploy_types import ClusterContext, DeployCommandContext
from app.deployment_create import create as deployment_create from app.deploy.deployment_create import create as deployment_create
from app.deployment_create import init as deployment_init from app.deploy.deployment_create import init as deployment_init
from app.deployment_create import setup as deployment_setup from app.deploy.deployment_create import setup as deployment_setup
@click.group() @click.group()
@ -258,7 +258,7 @@ def _make_cluster_context(ctx, stack, include, exclude, cluster, env_file):
deployment = True deployment = True
else: else:
# See: https://stackoverflow.com/questions/25389095/python-get-path-of-root-project-structure # See: https://stackoverflow.com/questions/25389095/python-get-path-of-root-project-structure
compose_dir = Path(__file__).absolute().parent.joinpath("data", "compose") compose_dir = Path(__file__).absolute().parent.parent.joinpath("data", "compose")
if cluster is None: if cluster is None:
# Create default unique, stable cluster name from confile file path and stack name if provided # Create default unique, stable cluster name from confile file path and stack name if provided
@ -397,11 +397,11 @@ def _orchestrate_cluster_config(ctx, cluster_config, deployer, container_exec_en
source_value = None source_value = None
try: try:
source_value = deployer.execute(pd.source_container, source_value = deployer.execute(pd.source_container,
["sh", "-c", ["sh", "-c",
"sh /docker-entrypoint-scripts.d/export-" "sh /docker-entrypoint-scripts.d/export-"
f"{pd.source_variable}.sh"], f"{pd.source_variable}.sh"],
tty=False, tty=False,
envs=container_exec_env) envs=container_exec_env)
except DeployerException as error: except DeployerException as error:
if ctx.debug: if ctx.debug:
print(f"Docker exception reading config source: {error}") print(f"Docker exception reading config source: {error}")
@ -418,11 +418,11 @@ def _orchestrate_cluster_config(ctx, cluster_config, deployer, container_exec_en
if ctx.debug: if ctx.debug:
print(f"fetched source value: {source_value}") print(f"fetched source value: {source_value}")
destination_output = deployer.execute(pd.destination_container, destination_output = deployer.execute(pd.destination_container,
["sh", "-c", ["sh", "-c",
f"sh /scripts/import-{pd.destination_variable}.sh" f"sh /scripts/import-{pd.destination_variable}.sh"
f" {source_value}"], f" {source_value}"],
tty=False, tty=False,
envs=container_exec_env) envs=container_exec_env)
waiting_for_data = False waiting_for_data = False
if ctx.debug: if ctx.debug:
print(f"destination output: {destination_output}") print(f"destination output: {destination_output}")

View File

@ -17,7 +17,7 @@ from typing import List
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from app.command_types import CommandOptions from app.command_types import CommandOptions
from app.deployer import Deployer from app.deploy.deployer import Deployer
@dataclass @dataclass

View File

@ -15,7 +15,7 @@
import os import os
from typing import List from typing import List
from app.deploy_types import DeployCommandContext, VolumeMapping from app.deploy.deploy_types import DeployCommandContext, VolumeMapping
from app.util import get_parsed_stack_config, get_yaml, get_compose_file_dir, get_pod_list from app.util import get_parsed_stack_config, get_yaml, get_compose_file_dir, get_pod_list

View File

@ -13,8 +13,8 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http:#www.gnu.org/licenses/>. # along with this program. If not, see <http:#www.gnu.org/licenses/>.
from app.deploy_k8s import K8sDeployer from app.deploy.k8s.deploy_k8s import K8sDeployer
from app.deploy_docker import DockerDeployer from app.deploy.compose.deploy_docker import DockerDeployer
def getDeployer(type, compose_files, compose_project_name, compose_env_file): def getDeployer(type, compose_files, compose_project_name, compose_env_file):

View File

@ -16,10 +16,10 @@
import click import click
from pathlib import Path from pathlib import Path
import sys import sys
from app.deploy import up_operation, down_operation, ps_operation, port_operation from app.deploy.deploy import up_operation, down_operation, ps_operation, port_operation
from app.deploy import exec_operation, logs_operation, create_deploy_context from app.deploy.deploy import exec_operation, logs_operation, create_deploy_context
from app.stack import Stack from app.deploy.stack import Stack
from app.spec import Spec from app.deploy.spec import Spec
class DeploymentContext: class DeploymentContext:

View File

@ -23,7 +23,7 @@ from shutil import copy, copyfile, copytree
import sys import sys
from app.util import (get_stack_file_path, get_parsed_deployment_spec, get_parsed_stack_config, global_options, get_yaml, from app.util import (get_stack_file_path, get_parsed_deployment_spec, get_parsed_stack_config, global_options, get_yaml,
get_pod_list, get_pod_file_path, pod_has_scripts, get_pod_script_paths, get_plugin_code_path) get_pod_list, get_pod_file_path, pod_has_scripts, get_pod_script_paths, get_plugin_code_path)
from app.deploy_types import DeploymentContext, DeployCommandContext, LaconicStackSetupCommand from app.deploy.deploy_types import DeploymentContext, DeployCommandContext, LaconicStackSetupCommand
def _make_default_deployment_dir(): def _make_default_deployment_dir():
@ -325,7 +325,7 @@ def create(ctx, spec_file, deployment_dir, network_dir, initial_peers):
os.mkdir(destination_compose_dir) os.mkdir(destination_compose_dir)
destination_pods_dir = os.path.join(deployment_dir, "pods") destination_pods_dir = os.path.join(deployment_dir, "pods")
os.mkdir(destination_pods_dir) os.mkdir(destination_pods_dir)
data_dir = Path(__file__).absolute().parent.joinpath("data") data_dir = Path(__file__).absolute().parent.parent.joinpath("data")
yaml = get_yaml() yaml = get_yaml()
for pod in pods: for pod in pods:
pod_file_path = get_pod_file_path(parsed_stack, pod) pod_file_path = get_pod_file_path(parsed_stack, pod)

View File

View File

@ -14,7 +14,7 @@
# along with this program. If not, see <http:#www.gnu.org/licenses/>. # along with this program. If not, see <http:#www.gnu.org/licenses/>.
from kubernetes import client, config from kubernetes import client, config
from app.deployer import Deployer from app.deploy.deployer import Deployer
class K8sDeployer(Deployer): class K8sDeployer(Deployer):

0
app/repos/__init__.py Normal file
View File

View File

@ -240,7 +240,7 @@ def command(ctx, include, exclude, git_ssh, check_only, pull, branches, branches
if stack: if stack:
# In order to be compatible with Python 3.8 we need to use this hack to get the path: # In order to be compatible with Python 3.8 we need to use this hack to get the path:
# See: https://stackoverflow.com/questions/25389095/python-get-path-of-root-project-structure # See: https://stackoverflow.com/questions/25389095/python-get-path-of-root-project-structure
stack_file_path = Path(__file__).absolute().parent.joinpath("data", "stacks", stack, "stack.yml") stack_file_path = Path(__file__).absolute().parent.parent.joinpath("data", "stacks", stack, "stack.yml")
with stack_file_path: with stack_file_path:
stack_config = yaml.safe_load(open(stack_file_path, "r")) stack_config = yaml.safe_load(open(stack_file_path, "r"))
# TODO: syntax check the input here # TODO: syntax check the input here

10
cli.py
View File

@ -16,12 +16,12 @@
import click import click
from app.command_types import CommandOptions from app.command_types import CommandOptions
from app import setup_repositories from app.repos import setup_repositories
from app import build_containers from app.build import build_containers
from app import build_npms from app.build import build_npms
from app import deploy from app.deploy import deploy
from app import version from app import version
from app import deployment from app.deploy import deployment
from app import update from app import update
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])