stoobly-agent 1.9.9__py3-none-any.whl → 1.9.10__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/app.py +6 -0
- stoobly_agent/app/cli/scaffold/app_config.py +2 -14
- stoobly_agent/app/cli/scaffold/app_create_command.py +0 -7
- stoobly_agent/app/cli/scaffold/constants.py +4 -2
- stoobly_agent/app/cli/scaffold/docker/service/builder.py +7 -3
- stoobly_agent/app/cli/scaffold/service_config.py +3 -2
- stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py +3 -2
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile +1 -1
- stoobly_agent/app/cli/scaffold/workflow_run_command.py +3 -21
- stoobly_agent/app/cli/scaffold_cli.py +4 -9
- stoobly_agent/app/cli/types/workflow_run_command.py +18 -0
- {stoobly_agent-1.9.9.dist-info → stoobly_agent-1.9.10.dist-info}/METADATA +1 -1
- {stoobly_agent-1.9.9.dist-info → stoobly_agent-1.9.10.dist-info}/RECORD +17 -16
- {stoobly_agent-1.9.9.dist-info → stoobly_agent-1.9.10.dist-info}/LICENSE +0 -0
- {stoobly_agent-1.9.9.dist-info → stoobly_agent-1.9.10.dist-info}/WHEEL +0 -0
- {stoobly_agent-1.9.9.dist-info → stoobly_agent-1.9.10.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.10'
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import hashlib
|
1
2
|
import os
|
2
3
|
import shutil
|
3
4
|
|
@@ -73,6 +74,11 @@ class App():
|
|
73
74
|
def data_dir_path(self):
|
74
75
|
return self.__data_dir_path
|
75
76
|
|
77
|
+
@property
|
78
|
+
def network(self):
|
79
|
+
# An app may contain one or more context dirs from which services will derive their mocks from
|
80
|
+
return hashlib.md5(self.context_dir_path.encode()).hexdigest()
|
81
|
+
|
76
82
|
@property
|
77
83
|
def scaffold_namespace_path(self):
|
78
84
|
return os.path.join(self.data_dir_path, self.scaffold_namespace)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .config import Config
|
2
|
-
from .constants import APP_NAME_ENV,
|
2
|
+
from .constants import APP_NAME_ENV, APP_UI_PORT_ENV
|
3
3
|
|
4
4
|
class AppConfig(Config):
|
5
5
|
|
@@ -7,7 +7,7 @@ class AppConfig(Config):
|
|
7
7
|
super().__init__(dir)
|
8
8
|
|
9
9
|
self.__name = None
|
10
|
-
self.
|
10
|
+
self.__ui_port = None
|
11
11
|
|
12
12
|
self.load()
|
13
13
|
|
@@ -19,14 +19,6 @@ class AppConfig(Config):
|
|
19
19
|
def name(self, v):
|
20
20
|
self.__name = v
|
21
21
|
|
22
|
-
@property
|
23
|
-
def network(self):
|
24
|
-
return self.__network
|
25
|
-
|
26
|
-
@network.setter
|
27
|
-
def network(self, v):
|
28
|
-
self.__network = v
|
29
|
-
|
30
22
|
@property
|
31
23
|
def ui_port(self):
|
32
24
|
return self.__ui_port
|
@@ -39,7 +31,6 @@ class AppConfig(Config):
|
|
39
31
|
config = config or self.read()
|
40
32
|
|
41
33
|
self.name = config.get(APP_NAME_ENV)
|
42
|
-
self.network = config.get(APP_NETWORK_ENV)
|
43
34
|
self.ui_port = config.get(APP_UI_PORT_ENV)
|
44
35
|
|
45
36
|
def write(self):
|
@@ -48,9 +39,6 @@ class AppConfig(Config):
|
|
48
39
|
if self.name:
|
49
40
|
config[APP_NAME_ENV] = self.name
|
50
41
|
|
51
|
-
if self.network:
|
52
|
-
config[APP_NETWORK_ENV] = self.network
|
53
|
-
|
54
42
|
if self.ui_port:
|
55
43
|
config[APP_UI_PORT_ENV] = self.ui_port
|
56
44
|
|
@@ -19,9 +19,6 @@ class AppCreateCommand(AppCommand):
|
|
19
19
|
if kwargs.get('app_name'):
|
20
20
|
self.app_config.name = kwargs['app_name']
|
21
21
|
|
22
|
-
if kwargs.get('network'):
|
23
|
-
self.app_config.network = kwargs['network']
|
24
|
-
|
25
22
|
if kwargs.get('ui_port'):
|
26
23
|
self.app_config.ui_port = kwargs['ui_port']
|
27
24
|
|
@@ -29,10 +26,6 @@ class AppCreateCommand(AppCommand):
|
|
29
26
|
def app_name(self):
|
30
27
|
return self.app_config.name
|
31
28
|
|
32
|
-
@property
|
33
|
-
def app_network(self):
|
34
|
-
return self.app_config.network
|
35
|
-
|
36
29
|
@property
|
37
30
|
def app_ui_port(self):
|
38
31
|
return self.app_config.ui_port
|
@@ -21,10 +21,12 @@ NAMESERVERS_FILE = '.nameservers'
|
|
21
21
|
PUBLIC_FOLDER_NAME = 'public'
|
22
22
|
SERVICE_DETACHED = '${SERVICE_DETACHED}'
|
23
23
|
SERVICE_DETACHED_ENV = 'SERVICE_DETACHED'
|
24
|
-
SERVICE_HOSTNAME = '${SERVICE_HOSTNAME}'
|
25
|
-
SERVICE_HOSTNAME_ENV = 'SERVICE_HOSTNAME'
|
26
24
|
SERVICE_DNS = '${SERVICE_DNS}'
|
27
25
|
SERVICE_DNS_ENV = 'SERVICE_DNS'
|
26
|
+
SERVICE_HOSTNAME = '${SERVICE_HOSTNAME}'
|
27
|
+
SERVICE_HOSTNAME_ENV = 'SERVICE_HOSTNAME'
|
28
|
+
SERVICE_ID = '${SERVICE_ID}'
|
29
|
+
SERVICE_ID_ENV = 'SERVICE_ID'
|
28
30
|
SERVICE_NAME = '${SERVICE_NAME}'
|
29
31
|
SERVICE_NAME_ENV = 'SERVICE_NAME'
|
30
32
|
SERVICE_PROXY_MODE = '${SERVICE_PROXY_MODE}'
|
@@ -7,8 +7,12 @@ from stoobly_agent.config.data_dir import DATA_DIR_NAME
|
|
7
7
|
|
8
8
|
from ...app_config import AppConfig
|
9
9
|
from ...constants import (
|
10
|
-
APP_DIR, DOCKER_NAMESPACE,
|
11
|
-
SERVICE_HOSTNAME, SERVICE_HOSTNAME_ENV,
|
10
|
+
APP_DIR, DOCKER_NAMESPACE,
|
11
|
+
SERVICE_HOSTNAME, SERVICE_HOSTNAME_ENV,
|
12
|
+
SERVICE_NAME, SERVICE_NAME_ENV,
|
13
|
+
SERVICE_ID,
|
14
|
+
SERVICE_PORT, SERVICE_PORT_ENV,
|
15
|
+
SERVICE_SCHEME, SERVICE_SCHEME_ENV,
|
12
16
|
STOOBLY_HOME_DIR, STOOBLY_HOME_DIR,
|
13
17
|
WORKFLOW_NAME, WORKFLOW_NAME_ENV, WORKFLOW_SCRIPTS, WORKFLOW_TEMPLATE
|
14
18
|
)
|
@@ -91,7 +95,7 @@ class ServiceBuilder(Builder):
|
|
91
95
|
if not self.config.hostname:
|
92
96
|
return
|
93
97
|
|
94
|
-
service_id =
|
98
|
+
service_id = SERVICE_ID
|
95
99
|
environment = { **self.env_dict() }
|
96
100
|
labels = [
|
97
101
|
'traefik.enable=true',
|
@@ -7,6 +7,7 @@ from .config import Config
|
|
7
7
|
from .constants import (
|
8
8
|
SERVICE_DETACHED_ENV,
|
9
9
|
SERVICE_HOSTNAME_ENV,
|
10
|
+
SERVICE_ID_ENV,
|
10
11
|
SERVICE_PRIORITY_ENV,
|
11
12
|
SERVICE_PORT_ENV,
|
12
13
|
SERVICE_PROXY_MODE_ENV,
|
@@ -55,7 +56,7 @@ class ServiceConfig(Config):
|
|
55
56
|
|
56
57
|
@property
|
57
58
|
def id(self):
|
58
|
-
return hashlib.md5(
|
59
|
+
return hashlib.md5(self.dir.encode()).hexdigest()
|
59
60
|
|
60
61
|
@property
|
61
62
|
def hostname(self):
|
@@ -171,7 +172,7 @@ class ServiceConfig(Config):
|
|
171
172
|
config[SERVICE_SCHEME_ENV] = self.scheme
|
172
173
|
|
173
174
|
config[SERVICE_DETACHED_ENV] = bool(self.detached)
|
174
|
-
|
175
|
+
config[SERVICE_ID_ENV] = self.id
|
175
176
|
config[SERVICE_PROXY_MODE_ENV] = self.proxy_mode
|
176
177
|
|
177
178
|
super().write(config)
|
@@ -116,8 +116,9 @@ class ServiceWorkflowValidateCommand(ServiceCommand, ValidateCommand):
|
|
116
116
|
|
117
117
|
def validate_internal_hostname(self, url: str) -> None:
|
118
118
|
print(f"Validating hostname inside Docker network, url: {url}")
|
119
|
-
|
120
|
-
|
119
|
+
|
120
|
+
# See WorkflowRunCommand for how 'network' is generated
|
121
|
+
network = f"{self.workflow_name}.{self.app.network}"
|
121
122
|
timeout_seconds = 1
|
122
123
|
output = self.docker_client.containers.run(
|
123
124
|
image='curlimages/curl:8.11.0',
|
@@ -44,7 +44,7 @@ workflow_script=.stoobly/tmp/$(workflow_namespace)/run.sh
|
|
44
44
|
certs_dir_options=--ca-certs-dir-path $(ca_certs_dir) --certs-dir-path $(certs_dir)
|
45
45
|
working_dir_options=--app-dir-path $(app_dir) --context-dir-path $(context_dir)
|
46
46
|
|
47
|
-
workflow_down_options
|
47
|
+
workflow_down_options=$(working_dir_options) --user-id $(USER_ID) $(workflow_down_extra_options)
|
48
48
|
workflow_log_options=$(workflow_log_extra_options)
|
49
49
|
workflow_run_options=--namespace $(workflow_namespace) --script-path $(workflow_script) $(workflow_service_options)
|
50
50
|
workflow_up_options=$(working_dir_options) $(certs_dir_options) --user-id $(USER_ID) $(workflow_up_extra_options)
|
@@ -1,11 +1,9 @@
|
|
1
1
|
import dns.resolver
|
2
|
+
import hashlib
|
2
3
|
import os
|
3
4
|
import pdb
|
4
5
|
import subprocess
|
5
6
|
import re
|
6
|
-
import yaml
|
7
|
-
|
8
|
-
from typing import TypedDict
|
9
7
|
|
10
8
|
from stoobly_agent.config.data_dir import DataDir
|
11
9
|
from stoobly_agent.lib.logger import Logger
|
@@ -19,26 +17,10 @@ from .constants import (
|
|
19
17
|
from .docker.constants import APP_EGRESS_NETWORK_TEMPLATE, APP_INGRESS_NETWORK_TEMPLATE, DOCKERFILE_CONTEXT
|
20
18
|
from .workflow_command import WorkflowCommand
|
21
19
|
from .workflow_env import WorkflowEnv
|
20
|
+
from ..types.workflow_run_command import BuildOptions, ComposeOptions, DownOptions, UpOptions
|
22
21
|
|
23
22
|
LOG_ID = 'WorkflowRunCommand'
|
24
23
|
|
25
|
-
class ComposeOptions(TypedDict):
|
26
|
-
namespace: str
|
27
|
-
user_id: str
|
28
|
-
|
29
|
-
class BuildOptions(ComposeOptions):
|
30
|
-
user_id: str
|
31
|
-
verbose: bool
|
32
|
-
|
33
|
-
class DownOptions(ComposeOptions):
|
34
|
-
extra_compose_path: str
|
35
|
-
rmi: bool
|
36
|
-
|
37
|
-
class UpOptions(ComposeOptions):
|
38
|
-
attached: bool
|
39
|
-
extra_compose_path: str
|
40
|
-
pull: bool
|
41
|
-
|
42
24
|
class WorkflowRunCommand(WorkflowCommand):
|
43
25
|
def __init__(self, app: App, **kwargs):
|
44
26
|
super().__init__(app, **kwargs)
|
@@ -48,7 +30,7 @@ class WorkflowRunCommand(WorkflowCommand):
|
|
48
30
|
self.__ca_certs_dir_path = kwargs.get('ca_certs_dir_path') or app.ca_certs_dir_path
|
49
31
|
self.__certs_dir_path = kwargs.get('certs_dir_path') or app.certs_dir_path
|
50
32
|
self.__context_dir_path = kwargs.get('context_dir_path') or app.context_dir_path
|
51
|
-
self.__network = f"{kwargs.get('
|
33
|
+
self.__network = f"{kwargs.get('namespace') or self.workflow_name}.{kwargs.get('network') or app.network}"
|
52
34
|
|
53
35
|
@property
|
54
36
|
def app_dir_path(self):
|
@@ -88,7 +88,6 @@ 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', callback=validate_network, help='App default network name. Defaults to app name.')
|
92
91
|
@click.option('--quiet', is_flag=True, help='Disable log output.')
|
93
92
|
@click.option('--ui-port', default=4200, type=click.IntRange(1, 65535), help='UI service port.')
|
94
93
|
@click.argument('app_name', callback=validate_app_name)
|
@@ -100,9 +99,6 @@ def create(**kwargs):
|
|
100
99
|
if not kwargs['quiet'] and os.path.exists(app.scaffold_namespace_path):
|
101
100
|
print(f"{kwargs['app_dir_path']} already exists, updating scaffold maintained files...")
|
102
101
|
|
103
|
-
if not kwargs['network']:
|
104
|
-
kwargs['network'] = kwargs['app_name']
|
105
|
-
|
106
102
|
AppCreateCommand(app, **kwargs).build()
|
107
103
|
|
108
104
|
@app.command(
|
@@ -344,7 +340,10 @@ def copy(**kwargs):
|
|
344
340
|
def down(**kwargs):
|
345
341
|
os.environ[env_vars.LOG_LEVEL] = kwargs['log_level']
|
346
342
|
|
347
|
-
|
343
|
+
containerized = kwargs['containerized']
|
344
|
+
|
345
|
+
app_dir_path = current_working_dir if containerized else kwargs['app_dir_path']
|
346
|
+
app = App(app_dir_path, DOCKER_NAMESPACE, **kwargs)
|
348
347
|
__validate_app(app)
|
349
348
|
|
350
349
|
__with_namespace_defaults(kwargs)
|
@@ -827,10 +826,6 @@ def __with_namespace_defaults(kwargs):
|
|
827
826
|
if not kwargs.get('namespace'):
|
828
827
|
kwargs['namespace'] = kwargs.get('workflow_name')
|
829
828
|
|
830
|
-
# If network there was a network option, but it is not set, default network to namespace
|
831
|
-
if 'network' in kwargs and not kwargs['network']:
|
832
|
-
kwargs['network'] = kwargs['namespace']
|
833
|
-
|
834
829
|
def __workflow_create(app, **kwargs):
|
835
830
|
command = WorkflowCreateCommand(app, **kwargs)
|
836
831
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from typing import TypedDict
|
2
|
+
|
3
|
+
class ComposeOptions(TypedDict):
|
4
|
+
namespace: str
|
5
|
+
user_id: str
|
6
|
+
|
7
|
+
class BuildOptions(ComposeOptions):
|
8
|
+
user_id: str
|
9
|
+
verbose: bool
|
10
|
+
|
11
|
+
class DownOptions(ComposeOptions):
|
12
|
+
extra_compose_path: str
|
13
|
+
rmi: bool
|
14
|
+
|
15
|
+
class UpOptions(ComposeOptions):
|
16
|
+
attached: bool
|
17
|
+
extra_compose_path: str
|
18
|
+
pull: bool
|
@@ -1,4 +1,4 @@
|
|
1
|
-
stoobly_agent/__init__.py,sha256=
|
1
|
+
stoobly_agent/__init__.py,sha256=nIYIzLEOceTM5Bfw040WST6iw0kTxA4hWg7lKhn6tfo,45
|
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
|
@@ -67,13 +67,13 @@ stoobly_agent/app/cli/project_cli.py,sha256=EXjeLjbnq9PhfCjvyfZ0UnJ2tejeCS0SIAo3
|
|
67
67
|
stoobly_agent/app/cli/report_cli.py,sha256=ZxJw0Xkx7KFZJn9e45BSKRKon8AD0Msrwy1fbPfbv0c,2543
|
68
68
|
stoobly_agent/app/cli/request_cli.py,sha256=THNloW111l9MLE0oPg4y7hVXL1U7OXoz760g0A1CtJ0,7747
|
69
69
|
stoobly_agent/app/cli/scaffold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
70
|
-
stoobly_agent/app/cli/scaffold/app.py,sha256=
|
70
|
+
stoobly_agent/app/cli/scaffold/app.py,sha256=0HJm8cdyIBAdOBr18499MkZGhmEFu6I7GSZXR7pKxkw,3650
|
71
71
|
stoobly_agent/app/cli/scaffold/app_command.py,sha256=sliaYulMNmaxbRXpJIDtBDWEBGEv5Tht4rpErzC_xxw,2368
|
72
|
-
stoobly_agent/app/cli/scaffold/app_config.py,sha256=
|
73
|
-
stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=
|
72
|
+
stoobly_agent/app/cli/scaffold/app_config.py,sha256=EyFezd7oeYLHmYPEdYlQCSeGP3AM1NmFz2mT9WLp7xY,818
|
73
|
+
stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=2y1W17r3mxCf-7U7uUT-44icprGPMERCfVITO2NA76w,981
|
74
74
|
stoobly_agent/app/cli/scaffold/command.py,sha256=aoTsdkkBzyu7TkVSMdNQQGk0Gj874jNgFcjR14y3TuM,254
|
75
75
|
stoobly_agent/app/cli/scaffold/config.py,sha256=HZU5tkvr3dkPr4JMXZtrJlu2wxxO-134Em6jReFFcq0,688
|
76
|
-
stoobly_agent/app/cli/scaffold/constants.py,sha256=
|
76
|
+
stoobly_agent/app/cli/scaffold/constants.py,sha256=ULSzqjNdrWP_-feyqpwPE-Pdt7JVDerZeZoFTpvewHY,2555
|
77
77
|
stoobly_agent/app/cli/scaffold/containerized_app.py,sha256=dAjn4RwcZV3aEL0POUmrbF_DC-r9h6s1zx7gT2t45v0,175
|
78
78
|
stoobly_agent/app/cli/scaffold/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
79
|
stoobly_agent/app/cli/scaffold/docker/app_builder.py,sha256=7z5pk5JKlRDHx2USxY-WurttLyyUkIVYfl34_u1x9dE,501
|
@@ -81,7 +81,7 @@ stoobly_agent/app/cli/scaffold/docker/builder.py,sha256=uiGqhxBHEasZAqLzjKUGUs-1
|
|
81
81
|
stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=1khQdgTaQ89ykGRNdTQh_ejFOdjNFGaZ_3cOGda6y7Y,692
|
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
|
-
stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=
|
84
|
+
stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=u3_YNuxX8TT4TvhzTqe5b2Zvi9fF7TLWJFepkBSXwhk,5857
|
85
85
|
stoobly_agent/app/cli/scaffold/docker/service/configure_gateway.py,sha256=8GQ2wUBwb45uSxhzkEMloezJT1hVu8v_3PudWLTU9ig,3910
|
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
|
@@ -96,16 +96,16 @@ stoobly_agent/app/cli/scaffold/hosts_file_manager.py,sha256=zNX5wh6zXQ4J2BA0YYdD
|
|
96
96
|
stoobly_agent/app/cli/scaffold/managed_services_docker_compose.py,sha256=-wLBXUi7DCWsfm5KzZzd_kdJKOTl1NT924XR7dyjbSY,574
|
97
97
|
stoobly_agent/app/cli/scaffold/service.py,sha256=74JwjTRRkk6lo-k9hre1iGztbKa9zDqjPVx3Qgpze-s,699
|
98
98
|
stoobly_agent/app/cli/scaffold/service_command.py,sha256=NxJakoq1Dy79LEIJ8QSsKEwsofIfN13GN0UGpp9i6qY,1230
|
99
|
-
stoobly_agent/app/cli/scaffold/service_config.py,sha256=
|
99
|
+
stoobly_agent/app/cli/scaffold/service_config.py,sha256=igPvhcP0vENgHCYQhbRJLeltSjv0m5b5fmEq5wMGkd4,3939
|
100
100
|
stoobly_agent/app/cli/scaffold/service_create_command.py,sha256=1B6TK3JDAjouikCV84WDrX7b0crdPMPIo1caMwhi-L8,2815
|
101
101
|
stoobly_agent/app/cli/scaffold/service_delete_command.py,sha256=_nBDQjm8eL62MQpzSCxgUHlW04ZXKG8MDlN1BXxlqww,986
|
102
102
|
stoobly_agent/app/cli/scaffold/service_docker_compose.py,sha256=OMUN1-ujQYIZXxDvS4XBf5C9wGalQULkwOiBBQPZbHY,820
|
103
103
|
stoobly_agent/app/cli/scaffold/service_update_command.py,sha256=oWusBKfvjt4RnK03_V3CJYWrfsCI4_LcR7W12eLXMR4,2579
|
104
104
|
stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOWkGEKz7gSgEGNI8f7aXOdg,444
|
105
|
-
stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256
|
105
|
+
stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=-hdg7RLsoEQXCI9rebIXyO3d8JbpyTxGnhpjaPQfmFk,11514
|
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=bseFu3GsBlH8QEHKiALhz3V8pZr6CBJHM_nU64ZCEsE,8973
|
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
|
@@ -202,9 +202,9 @@ stoobly_agent/app/cli/scaffold/workflow_copy_command.py,sha256=wi8qHH_M2e6jXIPuu
|
|
202
202
|
stoobly_agent/app/cli/scaffold/workflow_create_command.py,sha256=-fwsr6_LvGT8BbBWdGY3Qd8cSQhBOSJiMr1r8s2R86w,3390
|
203
203
|
stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4YaXYq_r2JpR2MmSwk,416
|
204
204
|
stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
|
205
|
-
stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=
|
205
|
+
stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=stKIWnLCfpX39iobHYp4NjFgR2oFTBmyCgYUIcc22_A,10896
|
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=ovhlabUDEfqkuRGIVzmxdTHwkpnTceYUgzYw-2kVi0I,32367
|
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,6 +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/types/workflow_run_command.py,sha256=SQ5PGpoqIEQ7w9xeSQE1FBqelnVfsdlRXXaODDW4yPY,326
|
218
219
|
stoobly_agent/app/cli/validators/scaffold.py,sha256=Y2XQrN2RFMcBh228q6inTwZGoN0K5FmXO8JfrgKVwJA,1669
|
219
220
|
stoobly_agent/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
220
221
|
stoobly_agent/app/models/adapters/__init__.py,sha256=cEEE--Bvrvk6DAsHx_uPgFhLnZJETP4zSBtWjMqyIKc,233
|
@@ -751,8 +752,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
|
|
751
752
|
stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
|
752
753
|
stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
|
753
754
|
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.
|
755
|
+
stoobly_agent-1.9.10.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
|
756
|
+
stoobly_agent-1.9.10.dist-info/METADATA,sha256=V2dDSCdSEvRueylouQW2K4-4_TNU6Q74sqWplOHzWs0,3088
|
757
|
+
stoobly_agent-1.9.10.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
758
|
+
stoobly_agent-1.9.10.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
|
759
|
+
stoobly_agent-1.9.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|