stoobly-agent 1.9.4__py3-none-any.whl → 1.9.5__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/docker/service/configure_gateway.py +4 -4
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile +13 -12
- stoobly_agent/app/cli/scaffold_cli.py +26 -25
- stoobly_agent/app/cli/snapshot_cli.py +2 -2
- stoobly_agent/test/app/cli/scaffold/cli_invoker.py +3 -3
- stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py +1 -1
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION +1 -1
- {stoobly_agent-1.9.4.dist-info → stoobly_agent-1.9.5.dist-info}/METADATA +1 -1
- {stoobly_agent-1.9.4.dist-info → stoobly_agent-1.9.5.dist-info}/RECORD +13 -13
- {stoobly_agent-1.9.4.dist-info → stoobly_agent-1.9.5.dist-info}/LICENSE +0 -0
- {stoobly_agent-1.9.4.dist-info → stoobly_agent-1.9.5.dist-info}/WHEEL +0 -0
- {stoobly_agent-1.9.4.dist-info → stoobly_agent-1.9.5.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.5'
|
@@ -10,7 +10,7 @@ from stoobly_agent.app.cli.scaffold.service_config import ServiceConfig
|
|
10
10
|
from stoobly_agent.app.cli.scaffold.docker.constants import APP_INGRESS_NETWORK_NAME, APP_EGRESS_NETWORK_NAME, DOCKER_COMPOSE_BASE, DOCKER_COMPOSE_BASE_TEMPLATE
|
11
11
|
from stoobly_agent.app.cli.scaffold.templates.constants import CORE_GATEWAY_SERVICE_NAME
|
12
12
|
|
13
|
-
def configure_gateway(service_paths: List[str], no_publish = False):
|
13
|
+
def configure_gateway(workflow_name, service_paths: List[str], no_publish = False):
|
14
14
|
if len(service_paths) == 0:
|
15
15
|
return
|
16
16
|
|
@@ -36,7 +36,7 @@ def configure_gateway(service_paths: List[str], no_publish = False):
|
|
36
36
|
gateway_base['ports'] = ports
|
37
37
|
|
38
38
|
app_dir_path = os.path.dirname(os.path.dirname(service_dir_path))
|
39
|
-
__with_traefik_config(service_paths,
|
39
|
+
__with_traefik_config(workflow_name, service_paths, app_dir_path, gateway_base)
|
40
40
|
__with_networks(gateway_base, hostnames)
|
41
41
|
|
42
42
|
with open(docker_compose_dest_path, 'w') as fp:
|
@@ -50,7 +50,7 @@ def __with_networks(config: dict, hostnames: List[str]):
|
|
50
50
|
'aliases': hostnames
|
51
51
|
}
|
52
52
|
|
53
|
-
def __with_traefik_config(
|
53
|
+
def __with_traefik_config(workflow_name: str, service_paths: List[str], app_dir_path: str, compose: dict):
|
54
54
|
config_dest = '/etc/traefik/traefik.yml'
|
55
55
|
|
56
56
|
if not compose['volumes']:
|
@@ -98,7 +98,7 @@ def __with_traefik_config(service_paths: str, compose: dict, app_dir_path: str):
|
|
98
98
|
})
|
99
99
|
|
100
100
|
# Create traefik.yml in .stoobly/tmp
|
101
|
-
traefik_template_relative_path = os.path.join(DATA_DIR_NAME, TMP_DIR_NAME, 'traefik.yml')
|
101
|
+
traefik_template_relative_path = os.path.join(DATA_DIR_NAME, TMP_DIR_NAME, workflow_name, 'traefik.yml')
|
102
102
|
traefik_template_dest_path = os.path.join(app_dir_path, traefik_template_relative_path)
|
103
103
|
|
104
104
|
if not os.path.exists(os.path.dirname(traefik_template_dest_path)):
|
@@ -33,8 +33,9 @@ app_namespace_dir=$(app_data_dir)/docker
|
|
33
33
|
app_tmp_dir=$(app_data_dir)/tmp
|
34
34
|
dockerfile_path=$(app_namespace_dir)/.Dockerfile.context
|
35
35
|
exec_docker_compose_file_path=$(app_namespace_dir)/stoobly-ui/exec/.docker-compose.exec.yml
|
36
|
-
exec_namespace=$(shell echo $(context_dir) | (md5 2>/dev/null || md5sum 2>/dev/null || shasum 2>/dev/null) | awk '{print $$1}')
|
37
|
-
|
36
|
+
exec_namespace=$(shell echo "$(workflow_namespace).$(context_dir)" | (md5 2>/dev/null || md5sum 2>/dev/null || shasum 2>/dev/null) | awk '{print $$1}')
|
37
|
+
workflow_namespace=$(if $(namespace),$(namespace),$(workflow))
|
38
|
+
workflow_script=.stoobly/tmp/$(workflow)/run.sh
|
38
39
|
|
39
40
|
# Options
|
40
41
|
certs_dir_options=--ca-certs-dir-path $(ca_certs_dir) --certs-dir-path $(certs_dir)
|
@@ -43,7 +44,7 @@ working_dir_options=--app-dir-path $(app_dir) --context-dir-path $(context_dir)
|
|
43
44
|
|
44
45
|
workflow_down_options=--user-id $(USER_ID) $(workflow_down_extra_options)
|
45
46
|
workflow_log_options=$(workflow_log_extra_options)
|
46
|
-
workflow_run_options=--script-path $(workflow_script) $(workflow_service_options)
|
47
|
+
workflow_run_options=--namespace $(workflow_namespace) --script-path $(workflow_script) $(workflow_service_options)
|
47
48
|
workflow_up_options=$(working_dir_options) $(certs_dir_options) --user-id $(USER_ID) $(workflow_up_extra_options)
|
48
49
|
|
49
50
|
# Commands
|
@@ -71,6 +72,10 @@ stoobly_exec_run_env=$(source_env) && $(exec_env) CONTEXT_DIR="$(app_dir)"
|
|
71
72
|
# Workflow run
|
72
73
|
workflow_run=$(source_env) && bash "$(app_dir)/$(workflow_script)"
|
73
74
|
|
75
|
+
action/install:
|
76
|
+
$(eval action=install)
|
77
|
+
action/uninstall:
|
78
|
+
$(eval action=uninstall)
|
74
79
|
ca-cert/install: stoobly/install
|
75
80
|
@if [ -z "$$(ls $(ca_certs_dir) 2> /dev/null)" ]; then \
|
76
81
|
read -p "Installing CA certificate is required for $(workflow)ing requests, continue? (y/N) " confirm && \
|
@@ -84,10 +89,6 @@ ca-cert/install: stoobly/install
|
|
84
89
|
certs:
|
85
90
|
@export EXEC_COMMAND=.mkcert && \
|
86
91
|
$(stoobly_exec)
|
87
|
-
command/install:
|
88
|
-
$(eval COMMAND=install)
|
89
|
-
command/uninstall:
|
90
|
-
$(eval COMMAND=uninstall)
|
91
92
|
exec/down:
|
92
93
|
@$(stoobly_exec_env) EXEC_COMMAND=- EXEC_ARGS=- EXEC_OPTIONS=- $(exec_down)
|
93
94
|
nameservers: tmpdir
|
@@ -179,7 +180,7 @@ workflow/down:
|
|
179
180
|
$(stoobly_exec_run) && \
|
180
181
|
$(workflow_run)
|
181
182
|
workflow/hostname: stoobly/install
|
182
|
-
@read -p "Do you want to $(
|
183
|
+
@read -p "Do you want to $(action) hostname(s) in /etc/hosts? (y/N) " confirm && \
|
183
184
|
if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \
|
184
185
|
CURRENT_VERSION=$$(stoobly-agent --version); \
|
185
186
|
REQUIRED_VERSION="1.4.0"; \
|
@@ -187,11 +188,11 @@ workflow/hostname: stoobly/install
|
|
187
188
|
echo "stoobly-agent version $$REQUIRED_VERSION required. Please run: pipx upgrade stoobly-agent"; \
|
188
189
|
exit 1; \
|
189
190
|
fi; \
|
190
|
-
echo "Running stoobly-agent scaffold hostname $(
|
191
|
-
stoobly-agent scaffold hostname $(
|
191
|
+
echo "Running stoobly-agent scaffold hostname $(action) $(workflow_service_options)"; \
|
192
|
+
stoobly-agent scaffold hostname $(action) --app-dir-path $(app_dir) --workflow $(workflow) $(workflow_service_options); \
|
192
193
|
fi
|
193
|
-
workflow/hostname/install:
|
194
|
-
workflow/hostname/uninstall:
|
194
|
+
workflow/hostname/install: action/install workflow/hostname
|
195
|
+
workflow/hostname/uninstall: action/uninstall workflow/hostname
|
195
196
|
workflow/logs:
|
196
197
|
@export EXEC_COMMAND=.logs && \
|
197
198
|
export EXEC_OPTIONS="$(workflow_log_options) $(workflow_run_options) $(options)" && \
|
@@ -87,8 +87,8 @@ def hostname(ctx):
|
|
87
87
|
help="Scaffold application"
|
88
88
|
)
|
89
89
|
@click.option('--app-dir-path', default=current_working_dir, help='Path to create the app scaffold.')
|
90
|
-
@click.option('--force', is_flag=True, help='Overwrite maintained scaffolded app files.')
|
91
90
|
@click.option('--network', help='App default network name. Defaults to app name.')
|
91
|
+
@click.option('--quiet', is_flag=True, help='Disable log output.')
|
92
92
|
@click.option('--ui-port', default=4200, type=click.IntRange(1, 65535), help='UI service port.')
|
93
93
|
@click.argument('app_name')
|
94
94
|
def create(**kwargs):
|
@@ -96,13 +96,13 @@ def create(**kwargs):
|
|
96
96
|
|
97
97
|
app = App(kwargs['app_dir_path'], DOCKER_NAMESPACE)
|
98
98
|
|
99
|
-
if kwargs['
|
100
|
-
|
101
|
-
kwargs['network'] = kwargs['app_name']
|
99
|
+
if not kwargs['quiet'] and os.path.exists(app.scaffold_namespace_path):
|
100
|
+
print(f"{kwargs['app_dir_path']} already exists, updating scaffold maintained files...")
|
102
101
|
|
103
|
-
|
104
|
-
|
105
|
-
|
102
|
+
if not kwargs['network']:
|
103
|
+
kwargs['network'] = kwargs['app_name']
|
104
|
+
|
105
|
+
AppCreateCommand(app, **kwargs).build()
|
106
106
|
|
107
107
|
@app.command(
|
108
108
|
help="Scaffold app service certs"
|
@@ -129,7 +129,6 @@ def mkcert(**kwargs):
|
|
129
129
|
@click.option('--app-dir-path', default=current_working_dir, help='Path to application directory.')
|
130
130
|
@click.option('--detached', is_flag=True, help='Use isolated and non-persistent context directory.')
|
131
131
|
@click.option('--env', multiple=True, help='Specify an environment variable.')
|
132
|
-
@click.option('--force', is_flag=True, help='Overwrite maintained scaffolded service files.')
|
133
132
|
@click.option('--hostname', help='Service hostname.')
|
134
133
|
@click.option('--port', type=click.IntRange(1, 65535), help='Service port.')
|
135
134
|
@click.option('--priority', default=5, type=click.FloatRange(1.0, 9.0), help='Determines the service run order. Lower values run first.')
|
@@ -139,6 +138,7 @@ def mkcert(**kwargs):
|
|
139
138
|
upstream proxy modes, SPEC is host specification in
|
140
139
|
the form of "http[s]://host[:port]".
|
141
140
|
''')
|
141
|
+
@click.option('--quiet', is_flag=True, help='Disable log output.')
|
142
142
|
@click.option('--scheme', type=click.Choice(['http', 'https']), help='Defaults to https if hostname is set.')
|
143
143
|
@click.option('--workflow', multiple=True, type=click.Choice([WORKFLOW_MOCK_TYPE, WORKFLOW_RECORD_TYPE, WORKFLOW_TEST_TYPE]), help='Include pre-defined workflows.')
|
144
144
|
@click.argument('service_name')
|
@@ -156,12 +156,12 @@ def create(**kwargs):
|
|
156
156
|
__validate_proxy_mode(kwargs.get("proxy_mode"))
|
157
157
|
|
158
158
|
app = App(kwargs['app_dir_path'], DOCKER_NAMESPACE)
|
159
|
-
|
160
159
|
service = Service(kwargs['service_name'], app)
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
160
|
+
|
161
|
+
if not kwargs['quiet'] and os.path.exists(service.dir_path):
|
162
|
+
print(f"{service.dir_path} already exists, updating scaffold maintained files...")
|
163
|
+
|
164
|
+
__scaffold_build(app, **kwargs)
|
165
165
|
|
166
166
|
@service.command(
|
167
167
|
help="List services",
|
@@ -272,7 +272,7 @@ def update(**kwargs):
|
|
272
272
|
)
|
273
273
|
@click.option('--app-dir-path', default=current_working_dir, help='Path to application directory.')
|
274
274
|
@click.option('--context-dir-path', default=data_dir.context_dir_path, help='Path to Stoobly data directory.')
|
275
|
-
@click.option('--
|
275
|
+
@click.option('--quiet', is_flag=True, help='Disable log output.')
|
276
276
|
@click.option('--service', multiple=True, help='Specify the service(s) to create the workflow for.')
|
277
277
|
@click.option('--template', required=True, type=click.Choice([WORKFLOW_MOCK_TYPE, WORKFLOW_RECORD_TYPE, WORKFLOW_TEST_TYPE]), help='Select which workflow to use as a template.')
|
278
278
|
@click.argument('workflow_name')
|
@@ -290,10 +290,11 @@ def create(**kwargs):
|
|
290
290
|
__validate_service_dir(service.dir_path)
|
291
291
|
|
292
292
|
workflow_dir_path = service.workflow_dir_path(kwargs['workflow_name'])
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
293
|
+
|
294
|
+
if not kwargs['quiet'] and os.path.exists(workflow_dir_path):
|
295
|
+
print(f"{workflow_dir_path} already exists, updating scaffold maintained files...")
|
296
|
+
|
297
|
+
__workflow_create(app, **config)
|
297
298
|
|
298
299
|
@workflow.command(
|
299
300
|
help="Copy a workflow for service(s)",
|
@@ -509,7 +510,7 @@ def up(**kwargs):
|
|
509
510
|
|
510
511
|
# Gateway ports are dynamically set depending on the workflow run
|
511
512
|
workflow = Workflow(kwargs['workflow_name'], app)
|
512
|
-
configure_gateway(workflow.service_paths_from_services(services), kwargs['no_publish'])
|
513
|
+
configure_gateway(workflow.workflow_name, workflow.service_paths_from_services(services), kwargs['no_publish'])
|
513
514
|
|
514
515
|
commands: List[WorkflowRunCommand] = []
|
515
516
|
for service in services:
|
@@ -675,12 +676,12 @@ scaffold.add_command(hostname)
|
|
675
676
|
def __build_script(**kwargs):
|
676
677
|
script_path = kwargs['script_path']
|
677
678
|
if not script_path:
|
678
|
-
script_file_name =
|
679
|
-
script_path = os.path.join(data_dir.tmp_dir_path, script_file_name)
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
679
|
+
script_file_name = 'run.sh'
|
680
|
+
script_path = os.path.join(data_dir.tmp_dir_path, kwargs['workflow_name'], script_file_name)
|
681
|
+
|
682
|
+
script_dir = os.path.dirname(script_path)
|
683
|
+
if not os.path.exists(script_dir):
|
684
|
+
os.makedirs(script_dir, exist_ok=True)
|
684
685
|
|
685
686
|
# Truncate
|
686
687
|
with open(script_path, 'w'):
|
@@ -161,7 +161,7 @@ def prune(**kwargs):
|
|
161
161
|
)
|
162
162
|
@click.option('--format', type=click.Choice(FORMATS), help='Format output.')
|
163
163
|
@click.option('--select', multiple=True, help='Select column(s) to display.')
|
164
|
-
@click.option('--verify', is_flag=True, default=False)
|
164
|
+
@click.option('--no-verify', is_flag=True, default=False)
|
165
165
|
@click.option('--without-headers', is_flag=True, default=False, help='Disable printing column headers.')
|
166
166
|
@click.argument('uuid')
|
167
167
|
def update(**kwargs):
|
@@ -179,7 +179,7 @@ def update(**kwargs):
|
|
179
179
|
print(f"Error: {kwargs['uuid']} not found", file=sys.stderr)
|
180
180
|
sys.exit(1)
|
181
181
|
|
182
|
-
if kwargs['
|
182
|
+
if not kwargs['no_verify']:
|
183
183
|
if event.is_request():
|
184
184
|
snapshot: RequestSnapshot = event.snapshot()
|
185
185
|
__verify_request(snapshot)
|
@@ -15,7 +15,7 @@ class ScaffoldCliInvoker():
|
|
15
15
|
|
16
16
|
result = runner.invoke(scaffold, ['app', 'create',
|
17
17
|
'--app-dir-path', app_dir_path,
|
18
|
-
'--
|
18
|
+
'--quiet',
|
19
19
|
app_name
|
20
20
|
])
|
21
21
|
|
@@ -45,10 +45,10 @@ class ScaffoldCliInvoker():
|
|
45
45
|
result = runner.invoke(scaffold, ['service', 'create',
|
46
46
|
'--app-dir-path', app_dir_path,
|
47
47
|
'--env', 'TEST',
|
48
|
-
'--force',
|
49
48
|
'--hostname', hostname,
|
50
49
|
'--scheme', scheme,
|
51
50
|
'--port', port,
|
51
|
+
'--quiet',
|
52
52
|
'--workflow', 'mock',
|
53
53
|
'--workflow', 'record',
|
54
54
|
'--workflow', 'test',
|
@@ -70,12 +70,12 @@ class ScaffoldCliInvoker():
|
|
70
70
|
|
71
71
|
result = runner.invoke(scaffold, ['service', 'create',
|
72
72
|
'--app-dir-path', app_dir_path,
|
73
|
-
'--force',
|
74
73
|
'--hostname', hostname,
|
75
74
|
'--scheme', scheme,
|
76
75
|
'--port', port,
|
77
76
|
'--proxy-mode', proxy_mode_reverse_spec,
|
78
77
|
'--detached',
|
78
|
+
'--quiet',
|
79
79
|
'--workflow', 'test',
|
80
80
|
service_name
|
81
81
|
])
|
@@ -94,7 +94,7 @@ class TestUpdate():
|
|
94
94
|
def updated_event(self, runner: CliRunner, put_event: LogEvent):
|
95
95
|
time.sleep(1) # Simulate update at different time
|
96
96
|
|
97
|
-
apply_result = runner.invoke(snapshot, ['update',
|
97
|
+
apply_result = runner.invoke(snapshot, ['update', put_event.uuid])
|
98
98
|
assert apply_result.exit_code == 0
|
99
99
|
log = Log()
|
100
100
|
events = log.events
|
@@ -1 +1 @@
|
|
1
|
-
1.9.
|
1
|
+
1.9.4
|
@@ -1,4 +1,4 @@
|
|
1
|
-
stoobly_agent/__init__.py,sha256=
|
1
|
+
stoobly_agent/__init__.py,sha256=IIieB06ghDX3rkbVoznhopSYzZNIgt8A-_fJzdVS7i4,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
|
@@ -82,7 +82,7 @@ stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=1khQdgTaQ89ykGRNdTQh_e
|
|
82
82
|
stoobly_agent/app/cli/scaffold/docker/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
83
|
stoobly_agent/app/cli/scaffold/docker/service/build_decorator.py,sha256=ZU7z4bkvdS3OK5O4fJhlA9_PNwnFtZW6t7vNF7V5obQ,1003
|
84
84
|
stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=4cIMSYvgrkGWVuuYymiwlrR829O91qQl9ML8FhaDMj4,5857
|
85
|
-
stoobly_agent/app/cli/scaffold/docker/service/configure_gateway.py,sha256=
|
85
|
+
stoobly_agent/app/cli/scaffold/docker/service/configure_gateway.py,sha256=jtx8lhvKHl0ubSHaQpE8m9lCYnOJ6Qju-SBJPBs0l7I,3921
|
86
86
|
stoobly_agent/app/cli/scaffold/docker/service/types.py,sha256=qB-yYHlu-PZDc0HYgTUvE5bWNpHxaSThC3JUG8okR1k,88
|
87
87
|
stoobly_agent/app/cli/scaffold/docker/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
88
|
stoobly_agent/app/cli/scaffold/docker/workflow/build_decorator.py,sha256=VKD9hXbJGRIWHS5IeYXeX0-FQ0F43zG8VmsegL6eYwA,703
|
@@ -104,7 +104,7 @@ stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOW
|
|
104
104
|
stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=xONRUtfC3IBd-Kr4wdUKWgx9ppSsbu2H72pb2VinizQ,11412
|
105
105
|
stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=x8C_a0VoO_vUbosp4_6IC1U7Ge9NnUdVKDPpVMtMkeY,171
|
106
106
|
stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=Okk4Q0Fj7Wi5NU58gQfpjpFwAL3RUBJyRe56kteQfcA,158
|
107
|
-
stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=
|
107
|
+
stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=zifPWDDZ9RPz0p872Kl00pnmFY3jMHulp84tYXhfSwg,9240
|
108
108
|
stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=6tFqXh3ine8vaD0FCL5TMoY5NjKx2wLUR8XpW3tJtew,245
|
109
109
|
stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.networks.yml,sha256=I4PbJpQjFHb5IbAUWNvYM6okDEtmwtKFDQg-yog05WM,141
|
110
110
|
stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
|
@@ -203,9 +203,9 @@ stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4
|
|
203
203
|
stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
|
204
204
|
stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=eF3aaK4OIZXYuSBEAeBnhAL7EZrS1G4mSYrJbEiXt2o,11082
|
205
205
|
stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=Uo_yo6rVR1ZR7xpvsQvlH48AyMBVLRupd4G-bRjzm_Q,5584
|
206
|
-
stoobly_agent/app/cli/scaffold_cli.py,sha256=
|
206
|
+
stoobly_agent/app/cli/scaffold_cli.py,sha256=NXlLuqAwv9p0dflksswAtgJPTfojvJDDHIdJ71-BCSE,31965
|
207
207
|
stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
|
208
|
-
stoobly_agent/app/cli/snapshot_cli.py,sha256=
|
208
|
+
stoobly_agent/app/cli/snapshot_cli.py,sha256=1Dw5JgDlmG6vctrawIRO7CdB73vAQk_wRBnPG2lVOrQ,11929
|
209
209
|
stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
|
210
210
|
stoobly_agent/app/cli/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
211
211
|
stoobly_agent/app/cli/types/output.py,sha256=2wazv56g5IwLQeJCWfJXXAxTB9Y5WH1cKMHbpjbXNeo,439
|
@@ -677,7 +677,7 @@ stoobly_agent/test/app/cli/request/request_reset_test.py,sha256=5My6Z452eideAOUu
|
|
677
677
|
stoobly_agent/test/app/cli/request/request_response_test.py,sha256=Fu-A8tIn016DKme4WIaPzo3YeFY-CPtTOpaSFigUVVM,1263
|
678
678
|
stoobly_agent/test/app/cli/request/request_snapshot_test.py,sha256=3kMmv0CuvnMXLgDQA-_u9S1DIiNOdL63L-IptVuOpf8,6308
|
679
679
|
stoobly_agent/test/app/cli/request/request_test_test.py,sha256=-cJNXKjgryVVfVt-7IN5fIhBwe3NjFoPmeavDH8lAjU,5527
|
680
|
-
stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=
|
680
|
+
stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=ZOFeLh9TejJ_k3gQ0KC6iIuqKhwrkqZV5U7CMdRDnwM,3700
|
681
681
|
stoobly_agent/test/app/cli/scaffold/cli_test.py,sha256=sMNvO845MIu5DVGa1HmwXQDmKDcwrfNTdEb3fK5886w,4557
|
682
682
|
stoobly_agent/test/app/cli/scaffold/e2e_test.py,sha256=IGWT0EXrMtB8i8kdLFbN7O8NvLrJYTi-iQ_GRiUoA94,12978
|
683
683
|
stoobly_agent/test/app/cli/scaffold/hosts_file_manager_test.py,sha256=ztcPh1x0ZCW1FWA5YL4ulEVjfbW9TOPgk1bnSDPNmCw,2287
|
@@ -692,7 +692,7 @@ stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py,sha256=mpkTZx8eaFFZU_
|
|
692
692
|
stoobly_agent/test/app/cli/snapshot/snapshot_copy_test.py,sha256=Yg78-FhSiG_r6Jpm-sN8sn0LjVXTwTOXt6hg8ni2GIY,1953
|
693
693
|
stoobly_agent/test/app/cli/snapshot/snapshot_migrate_test.py,sha256=voEvblK6CMGCrSJDTHVmkUkLXj0auNb78jxlGiiBBQQ,7370
|
694
694
|
stoobly_agent/test/app/cli/snapshot/snapshot_prune_test.py,sha256=bn4yUU7Eb4-6GnwnRaPZPi5Cn7XEaIsrJ_mB7jydgWw,6693
|
695
|
-
stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py,sha256=
|
695
|
+
stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py,sha256=yx_QDPYc5utiqlRhy3hTGBKLafGq9nC_lDV-0k0qWOo,4502
|
696
696
|
stoobly_agent/test/app/models/adapters/joined_rquest_adapter_test.py,sha256=bF7WMrAiASQDNzDTvIXGJhsWLNhfYOmdQpSDo0hyWYY,1098
|
697
697
|
stoobly_agent/test/app/models/adapters/orm/joined_request_string_adapter_test.py,sha256=a2IHTk3l7aiLyYF7vtqissrk0MFTF2wlUBiaKWyJKfU,2667
|
698
698
|
stoobly_agent/test/app/models/adapters/orm/request/orm_mitmproxy_request_adapter_test.py,sha256=PbJsAaxPUEbF9vM7DX4z858biWf4qlGnvE8KBuy8SgY,2763
|
@@ -708,7 +708,7 @@ stoobly_agent/test/app/models/factories/resource/local_db/helpers/log_test.py,sh
|
|
708
708
|
stoobly_agent/test/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request_test.py,sha256=a1SFLyEyRRLuADvAw6ckQQKORFXvyK1lyrbkaLWx8oU,3399
|
709
709
|
stoobly_agent/test/app/models/factories/resource/local_db/request_adapter_test.py,sha256=Pzq1cBPnP9oSWG-p0c-VoymoHxgp483QmNwmV1b78RA,8453
|
710
710
|
stoobly_agent/test/app/models/factories/resource/local_db/response_adapter_test.py,sha256=9P95EKH5rZGOrmRkRIDlQZqtiLJHk9735og18Ffwpfw,2204
|
711
|
-
stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=
|
711
|
+
stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=MvlkhO5KUUDkZHqygfa1PgGkfddFw7TZAu1qTt_cq-g,5
|
712
712
|
stoobly_agent/test/app/models/schemas/.stoobly/db/stoobly_agent.sqlite3,sha256=ch8gNx6zIelLKQx65gwFx_LRNqUD3EC5xcHZ0ukIQiU,188416
|
713
713
|
stoobly_agent/test/app/models/schemas/.stoobly/settings.yml,sha256=vLwMjweKOdod6tSLtIlyBefPQuNXq9wio4kBaODKtAU,726
|
714
714
|
stoobly_agent/test/app/models/schemas/.stoobly/tmp/options.json,sha256=OTRzarwus48CTrItedXCrgQttJHSEZonEYc7R_knvYg,2212
|
@@ -749,8 +749,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
|
|
749
749
|
stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
|
750
750
|
stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
|
751
751
|
stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
|
752
|
-
stoobly_agent-1.9.
|
753
|
-
stoobly_agent-1.9.
|
754
|
-
stoobly_agent-1.9.
|
755
|
-
stoobly_agent-1.9.
|
756
|
-
stoobly_agent-1.9.
|
752
|
+
stoobly_agent-1.9.5.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
|
753
|
+
stoobly_agent-1.9.5.dist-info/METADATA,sha256=Ar6dgljQ63YgEG_psjAkNEVUpGuRpudvTxCY4fAebgQ,3087
|
754
|
+
stoobly_agent-1.9.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
755
|
+
stoobly_agent-1.9.5.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
|
756
|
+
stoobly_agent-1.9.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|