stoobly-agent 1.9.8__py3-none-any.whl → 1.9.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- stoobly_agent/__init__.py +1 -1
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile +7 -7
- stoobly_agent/app/cli/scaffold_cli.py +4 -4
- stoobly_agent/app/cli/validators/scaffold.py +9 -0
- {stoobly_agent-1.9.8.dist-info → stoobly_agent-1.9.9.dist-info}/METADATA +1 -1
- {stoobly_agent-1.9.8.dist-info → stoobly_agent-1.9.9.dist-info}/RECORD +9 -9
- {stoobly_agent-1.9.8.dist-info → stoobly_agent-1.9.9.dist-info}/LICENSE +0 -0
- {stoobly_agent-1.9.8.dist-info → stoobly_agent-1.9.9.dist-info}/WHEEL +0 -0
- {stoobly_agent-1.9.8.dist-info → stoobly_agent-1.9.9.dist-info}/entry_points.txt +0 -0
stoobly_agent/__init__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
COMMAND = 'stoobly-agent'
|
2
|
-
VERSION = '1.9.
|
2
|
+
VERSION = '1.9.9'
|
@@ -28,7 +28,7 @@ app_dir=$$(realpath "$${STOOBLY_APP_DIR:-$(CONTEXT_DIR_DEFAULT)}")
|
|
28
28
|
ca_certs_dir=$$(realpath "$${STOOBLY_CA_CERTS_DIR:-$(app_data_dir)/ca_certs}")
|
29
29
|
certs_dir=$$(realpath "$${STOOBLY_CERTS_DIR:-$(app_data_dir)/certs}")
|
30
30
|
context_dir=$$(realpath "$${STOOBLY_CONTEXT_DIR:-$(CONTEXT_DIR_DEFAULT)}")
|
31
|
-
env_file=$$(realpath "$${STOOBLY_ENV_FILE:-.env}")
|
31
|
+
env_file=$$(realpath "$${STOOBLY_ENV_FILE:-.env}" 2> /dev/null || echo '')
|
32
32
|
workflow=record
|
33
33
|
workflow_service_options=$(shell echo $$STOOBLY_WORKFLOW_SERVICE_OPTIONS)
|
34
34
|
|
@@ -52,24 +52,24 @@ workflow_up_options=$(working_dir_options) $(certs_dir_options) --user-id $(USER
|
|
52
52
|
# Commands
|
53
53
|
exec_env=APP_DIR="$(app_dir)" CA_CERTS_DIR="$(ca_certs_dir)" USER_ID="$(USER_ID)"
|
54
54
|
exec_up=$(DOCKER_BIN) compose -f "$(exec_docker_compose_file_path)" run --rm stoobly_ui.command
|
55
|
-
source_env=[ -f "$(env_file)" ] && . "$(env_file)"
|
55
|
+
source_env=set -a; [ -f "$(env_file)" ] && . "$(env_file)"; set +a
|
56
56
|
|
57
57
|
# Build base image
|
58
58
|
stoobly_exec_build=$(DOCKER_BIN) build $(stoobly_exec_build_args) $(app_namespace_dir) > /dev/null
|
59
59
|
stoobly_exec_build_args=-f "$(dockerfile_path)" -t stoobly.$(USER_ID) --build-arg USER_ID=$(USER_ID) $(PULL_OPTION) --quiet
|
60
60
|
|
61
61
|
# Exec any
|
62
|
-
stoobly_exec=$(stoobly_exec_build) && $(stoobly_exec_env) $(exec_up)
|
63
|
-
stoobly_exec_env=$(
|
62
|
+
stoobly_exec=$(source_env); $(stoobly_exec_build) && $(stoobly_exec_env) $(exec_up)
|
63
|
+
stoobly_exec_env=$(exec_env) CONTEXT_DIR="$(context_dir)"
|
64
64
|
|
65
65
|
# Exec workflow run
|
66
66
|
# Scaffold is stored in the application source code directory.
|
67
67
|
# When running a scaffold command from within a container, it needs access to $(app_dir) rather than $(context_dir)
|
68
|
-
stoobly_exec_run=$(stoobly_exec_build) && $(stoobly_exec_run_env) $(exec_up)
|
69
|
-
stoobly_exec_run_env=$(
|
68
|
+
stoobly_exec_run=$(source_env); $(stoobly_exec_build) && $(stoobly_exec_run_env) $(exec_up)
|
69
|
+
stoobly_exec_run_env=$(exec_env) CONTEXT_DIR="$(app_dir)"
|
70
70
|
|
71
71
|
# Workflow run
|
72
|
-
workflow_run
|
72
|
+
workflow_run=bash "$(app_dir)/$(workflow_script)"
|
73
73
|
|
74
74
|
action/install:
|
75
75
|
$(eval action=install)
|
@@ -37,7 +37,7 @@ from stoobly_agent.config.data_dir import DataDir
|
|
37
37
|
from stoobly_agent.lib.logger import bcolors, DEBUG, ERROR, INFO, Logger, WARNING
|
38
38
|
|
39
39
|
from .helpers.print_service import FORMATS, print_services, select_print_options
|
40
|
-
from .validators.scaffold import validate_app_name, validate_hostname, validate_namespace, validate_service_name
|
40
|
+
from .validators.scaffold import validate_app_name, validate_hostname, validate_namespace, validate_network, validate_service_name
|
41
41
|
|
42
42
|
LOG_ID = 'Scaffold'
|
43
43
|
|
@@ -88,7 +88,7 @@ def hostname(ctx):
|
|
88
88
|
help="Scaffold application"
|
89
89
|
)
|
90
90
|
@click.option('--app-dir-path', default=current_working_dir, help='Path to create the app scaffold.')
|
91
|
-
@click.option('--network', help='App default network name. Defaults to app name.')
|
91
|
+
@click.option('--network', callback=validate_network, help='App default network name. Defaults to app name.')
|
92
92
|
@click.option('--quiet', is_flag=True, help='Disable log output.')
|
93
93
|
@click.option('--ui-port', default=4200, type=click.IntRange(1, 65535), help='UI service port.')
|
94
94
|
@click.argument('app_name', callback=validate_app_name)
|
@@ -335,7 +335,7 @@ def copy(**kwargs):
|
|
335
335
|
Log levels can be "debug", "info", "warning", or "error"
|
336
336
|
''')
|
337
337
|
@click.option('--namespace', callback=validate_namespace, help='Workflow namespace.')
|
338
|
-
@click.option('--network', help='Workflow network name.')
|
338
|
+
@click.option('--network', callback=validate_network, help='Workflow network name.')
|
339
339
|
@click.option('--rmi', is_flag=True, help='Remove images used by containers.')
|
340
340
|
@click.option('--script-path', help='Path to intermediate script path.')
|
341
341
|
@click.option('--service', multiple=True, help='Select which services to log. Defaults to all.')
|
@@ -480,7 +480,7 @@ def logs(**kwargs):
|
|
480
480
|
''')
|
481
481
|
@click.option('--mkcert', is_flag=True, help='Set to generate SSL certs for HTTPS services.')
|
482
482
|
@click.option('--namespace', callback=validate_namespace, help='Workflow namespace.')
|
483
|
-
@click.option('--network', help='Workflow network name.')
|
483
|
+
@click.option('--network', callback=validate_network, help='Workflow network name.')
|
484
484
|
@click.option('--no-build', is_flag=True, help='Do not build images before starting containers.')
|
485
485
|
@click.option('--no-publish', is_flag=True, help='Do not publish all ports.')
|
486
486
|
@click.option('--pull', is_flag=True, help='Pull image before running.')
|
@@ -19,6 +19,15 @@ def validate_hostname(ctx, param, hostname: str) -> str:
|
|
19
19
|
sys.exit(1)
|
20
20
|
return hostname
|
21
21
|
|
22
|
+
def validate_network(ctx, param, network: str) -> str:
|
23
|
+
if not network:
|
24
|
+
return
|
25
|
+
network_regex = re.compile(r'^[a-zA-Z0-9._-]+$')
|
26
|
+
if not re.search(network_regex, network):
|
27
|
+
print(f"Error: network {network} is invalid.", file=sys.stderr)
|
28
|
+
sys.exit(1)
|
29
|
+
return network
|
30
|
+
|
22
31
|
def validate_namespace(ctx, param, namespace: str) -> str:
|
23
32
|
if not namespace:
|
24
33
|
return
|
@@ -1,4 +1,4 @@
|
|
1
|
-
stoobly_agent/__init__.py,sha256=
|
1
|
+
stoobly_agent/__init__.py,sha256=ynj3t69d_GKqdl_NzWnMm4vXo8bYFLqoXtgFzDp3BXk,44
|
2
2
|
stoobly_agent/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
stoobly_agent/app/api/__init__.py,sha256=ctkB8KR-eXO0SFhj602huHiyvQ3PslFWd8fkcufgrAI,1000
|
4
4
|
stoobly_agent/app/api/application_http_request_handler.py,sha256=Vvz53yB0bR7J-QqMAkLlhcZrA4P64ZEN7w8cMbgl6o0,5261
|
@@ -105,7 +105,7 @@ stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOW
|
|
105
105
|
stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=veigidzR4EwGi8dc0v_l4Ik7cZikDBnLcvwcHNc1Wzg,11457
|
106
106
|
stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=x8C_a0VoO_vUbosp4_6IC1U7Ge9NnUdVKDPpVMtMkeY,171
|
107
107
|
stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=Okk4Q0Fj7Wi5NU58gQfpjpFwAL3RUBJyRe56kteQfcA,158
|
108
|
-
stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=
|
108
|
+
stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=VGtO-dz0tXHfUN9MMkc3Lqfqg6Vhdb_aiz7cxiot3DE,8950
|
109
109
|
stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=6tFqXh3ine8vaD0FCL5TMoY5NjKx2wLUR8XpW3tJtew,245
|
110
110
|
stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.networks.yml,sha256=I4PbJpQjFHb5IbAUWNvYM6okDEtmwtKFDQg-yog05WM,141
|
111
111
|
stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
|
@@ -204,7 +204,7 @@ stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4
|
|
204
204
|
stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
|
205
205
|
stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=AZhLd1N260RjXEiUSRppqfhQMwVyRnn0jpapRu4FwyM,11114
|
206
206
|
stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=Uo_yo6rVR1ZR7xpvsQvlH48AyMBVLRupd4G-bRjzm_Q,5584
|
207
|
-
stoobly_agent/app/cli/scaffold_cli.py,sha256=
|
207
|
+
stoobly_agent/app/cli/scaffold_cli.py,sha256=PmFDxe0pACL7hdyf7bPlol3xxGkOS4VES92HTAnga6Y,32622
|
208
208
|
stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
|
209
209
|
stoobly_agent/app/cli/snapshot_cli.py,sha256=1Dw5JgDlmG6vctrawIRO7CdB73vAQk_wRBnPG2lVOrQ,11929
|
210
210
|
stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
|
@@ -215,7 +215,7 @@ stoobly_agent/app/cli/types/request.py,sha256=QthojE5sfx7OvKu-vVNnSUfGk8n4pLzuBQ
|
|
215
215
|
stoobly_agent/app/cli/types/scenario.py,sha256=28WxmOlbm2Bsek1uu7yc4hJGz-d5oHbYAro7LlFWRoc,81
|
216
216
|
stoobly_agent/app/cli/types/snapshot_migration.py,sha256=4_Re46FKjsflcTOO3qhNsbWWmdEU67SFsF-XE_FKG3M,1859
|
217
217
|
stoobly_agent/app/cli/types/test.py,sha256=1c458B7DFBWsEk5Q1CrZ2CUi84YzEzcs-W4qTcudwAk,714
|
218
|
-
stoobly_agent/app/cli/validators/scaffold.py,sha256=
|
218
|
+
stoobly_agent/app/cli/validators/scaffold.py,sha256=Y2XQrN2RFMcBh228q6inTwZGoN0K5FmXO8JfrgKVwJA,1669
|
219
219
|
stoobly_agent/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
220
220
|
stoobly_agent/app/models/adapters/__init__.py,sha256=cEEE--Bvrvk6DAsHx_uPgFhLnZJETP4zSBtWjMqyIKc,233
|
221
221
|
stoobly_agent/app/models/adapters/joined_request_adapter.py,sha256=fSq16n3AAlxi8KJdBESHp3JGio_M9uzMnHbnQU8VI3w,3598
|
@@ -751,8 +751,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
|
|
751
751
|
stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
|
752
752
|
stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
|
753
753
|
stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
|
754
|
-
stoobly_agent-1.9.
|
755
|
-
stoobly_agent-1.9.
|
756
|
-
stoobly_agent-1.9.
|
757
|
-
stoobly_agent-1.9.
|
758
|
-
stoobly_agent-1.9.
|
754
|
+
stoobly_agent-1.9.9.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
|
755
|
+
stoobly_agent-1.9.9.dist-info/METADATA,sha256=P2fxdK2aPocPzJHjKZKqyFF4xz9zhyeERR-EylS6FLA,3087
|
756
|
+
stoobly_agent-1.9.9.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
757
|
+
stoobly_agent-1.9.9.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
|
758
|
+
stoobly_agent-1.9.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|