stoobly-agent 1.2.0__py3-none-any.whl → 1.2.1__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 CHANGED
@@ -1,2 +1,2 @@
1
1
  COMMAND = 'stoobly-agent'
2
- VERSION = '1.2.0'
2
+ VERSION = '1.2.1'
@@ -12,7 +12,9 @@ class AppCommand(Command):
12
12
  super().__init__(app)
13
13
 
14
14
  self.__config = AppConfig(self.scaffold_namespace_path)
15
- self.__config.network = app.network
15
+
16
+ if not self.__config.network:
17
+ self.__config.network = app.network
16
18
 
17
19
  @property
18
20
  def app_dir_path(self):
@@ -19,6 +19,6 @@ class AppCreateCommand(AppCommand):
19
19
  self.app.copy_folders_and_hidden_files(self.app_templates_root_dir, dest)
20
20
 
21
21
  with open(os.path.join(dest, '.gitignore'), 'w') as fp:
22
- fp.write("\n".join(['**/.env']))
22
+ fp.write("\n".join(['gateway/.docker-compose.base.yml', '**/.env']))
23
23
 
24
24
  self.app_config.write()
@@ -1,5 +1,6 @@
1
1
  APP_NETWORK = '${APP_NETWORK}'
2
2
  DOCKER_COMPOSE_BASE = '.docker-compose.base.yml'
3
+ DOCKER_COMPOSE_BASE_TEMPLATE = '.docker-compose.base.template.yml'
3
4
  DOCKER_COMPOSE_CUSTOM = 'docker-compose.yml'
4
5
  DOCKERFILE_CONTEXT = '.Dockerfile.context'
5
6
  DOCKERFILE_PROXY = '.Dockerfile.proxy'
@@ -5,7 +5,7 @@ import yaml
5
5
  from typing import List
6
6
 
7
7
  from stoobly_agent.app.cli.scaffold.service_config import ServiceConfig
8
- from stoobly_agent.app.cli.scaffold.docker.constants import DOCKER_COMPOSE_BASE
8
+ from stoobly_agent.app.cli.scaffold.docker.constants import DOCKER_COMPOSE_BASE, DOCKER_COMPOSE_BASE_TEMPLATE
9
9
  from stoobly_agent.app.cli.scaffold.templates.constants import CORE_GATEWAY_SERVICE_NAME
10
10
 
11
11
  def set_gateway_ports(service_paths: List[str]):
@@ -20,15 +20,18 @@ def set_gateway_ports(service_paths: List[str]):
20
20
  port = int(config.port)
21
21
  except Exception:
22
22
  continue
23
-
24
- if port > 0 and port <= 65535 and port not in ports:
25
- ports.append(port)
23
+
24
+ port_mapping = f"{port}:{443 if config.scheme == 'https' else 80}"
25
+ if port > 0 and port <= 65535 and port_mapping not in ports:
26
+ ports.append(port_mapping)
26
27
 
27
28
  app_dir_path = os.path.dirname(service_paths[0])
28
29
  gateway_service_path = os.path.join(app_dir_path, CORE_GATEWAY_SERVICE_NAME)
29
- docker_compose_path = os.path.join(gateway_service_path, DOCKER_COMPOSE_BASE)
30
+ docker_compose_src_path = os.path.join(gateway_service_path, DOCKER_COMPOSE_BASE_TEMPLATE)
31
+ docker_compose_dest_path = os.path.join(gateway_service_path, DOCKER_COMPOSE_BASE)
30
32
 
31
- with open(docker_compose_path, 'r+') as fp:
33
+ compose = {}
34
+ with open(docker_compose_src_path, 'r') as fp:
32
35
  compose = yaml.safe_load(fp)
33
36
  services = compose.get('services')
34
37
 
@@ -37,11 +40,8 @@ def set_gateway_ports(service_paths: List[str]):
37
40
 
38
41
  gateway_base = services.get('gateway_base')
39
42
 
40
- if not gateway_base:
41
- return
42
-
43
- gateway_base['ports'] = list(map(lambda port: f"{port}:{port}", ports))
43
+ if gateway_base:
44
+ gateway_base['ports'] = ports
44
45
 
45
- fp.seek(0)
46
- yaml.dump(compose, fp)
47
- fp.truncate()
46
+ with open(docker_compose_dest_path, 'w') as fp:
47
+ yaml.dump(compose, fp)
@@ -28,16 +28,17 @@ docker_compose_command=docker compose
28
28
  source_env=set -a; [ -f .env ] && source .env; set +a
29
29
 
30
30
  docker_compose_file_path=$(app_data_dir)/docker/stoobly-ui/exec/.docker-compose.exec.yml
31
+
31
32
  stoobly_exec_args=--profile $(EXEC_WORKFLOW_NAME) -p $(EXEC_WORKFLOW_NAME) up --remove-orphans
32
- stoobly_exec_env=export CONTEXT_DIR=$(context_dir) && export USER_ID=$$UID && export CA_CERTS_DIR="$(ca_certs_dir)"
33
+ stoobly_exec_build=$(docker_compose_command) -f "$(docker_compose_file_path)" $(stoobly_exec_build_args)
33
34
  stoobly_exec_build_args=--profile $(EXEC_WORKFLOW_NAME) -p $(EXEC_WORKFLOW_NAME) build --pull --quiet
34
- stoobly_exec_build=$(docker_compose_command) "$(docker_compose_file_path)" $(stoobly_exec_build_args)
35
+ stoobly_exec_env=export CONTEXT_DIR=$(context_dir) && export USER_ID=$$UID && export CA_CERTS_DIR="$(ca_certs_dir)"
36
+
35
37
  stoobly_exec=$(stoobly_exec_env) && $(source_env) && $(stoobly_exec_build) && $(docker_compose_command) -f "$(docker_compose_file_path)" $(stoobly_exec_args)
36
38
 
37
39
  # Because scaffold is stored in the APP_DIR, when running a scaffold command from within a container,
38
40
  # it needs access to APP_DIR rather than CONTEXT_DIR
39
- stoobly_exec_run_env=export USER_ID=$$UID && export CA_CERTS_DIR="$(ca_certs_dir)"
40
- stoobly_exec_run=$(stoobly_exec_run_env) && $(source_env) && CONTEXT_DIR=$(app_dir) $(docker_compose_command) -f "$(docker_compose_file_path)" $(stoobly_exec_args)
41
+ stoobly_exec_run=$(stoobly_exec_env) && $(source_env) && $(stoobly_exec_build) && CONTEXT_DIR=$(app_dir) $(docker_compose_command) -f "$(docker_compose_file_path)" $(stoobly_exec_args)
41
42
 
42
43
  workflow_run_script=$(app_data_dir)/tmp/run.sh
43
44
  workflow_run_env=export APP_DIR="$(app_dir)" && export CERTS_DIR="$(certs_dir)" && export CONTEXT_DIR="$(context_dir)"
@@ -3,7 +3,6 @@ services:
3
3
  environment:
4
4
  TRUST_DOWNSTREAM_PROXY: true
5
5
  image: nginxproxy/nginx-proxy:1.5
6
- ports: {}
7
6
  profiles:
8
7
  - gateway_base
9
8
  volumes:
@@ -34,7 +34,7 @@ class WorkflowRunCommand(WorkflowCommand):
34
34
  self.__certs_dir_path = app.certs_dir_path
35
35
  self.__context_dir_path = app.context_dir_path
36
36
  self.__extra_compose_path = kwargs.get('extra_compose_path')
37
- self.__network = kwargs.get('network') or app.network
37
+ self.__network = kwargs.get('network') or self.app_config.network
38
38
 
39
39
  @property
40
40
  def ca_certs_dir_path(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.2.0
3
+ Version: 1.2.1
4
4
  Summary: Record, mock, and test HTTP(s) requests. CLI agent for Stoobly
5
5
  License: Apache-2.0
6
6
  Author: Matt Le
@@ -1,4 +1,4 @@
1
- stoobly_agent/__init__.py,sha256=2CaOxKsprE3DuC_BVDFB_Riqf8gAwUziEEd6yMCwXv4,44
1
+ stoobly_agent/__init__.py,sha256=Rqvjc6nJa09O_p3-LeYoTIjjvW7PHQVwyhk5o56Z_-A,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=jf4fkqjOiCeI2IM5Ro7ie0v_C6y0-7-5TIE_IKMPOfg,5513
@@ -68,20 +68,20 @@ stoobly_agent/app/cli/report_cli.py,sha256=ZxJw0Xkx7KFZJn9e45BSKRKon8AD0Msrwy1fb
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
70
  stoobly_agent/app/cli/scaffold/app.py,sha256=8YJtx0-PcnnNod31OaSv0K53Xb38pn2eDedj-a7QXCY,3665
71
- stoobly_agent/app/cli/scaffold/app_command.py,sha256=o6WV6tcMGBWJsPFdV2DD-m1Dq0cy3Q3SESokaU5hgp4,2061
71
+ stoobly_agent/app/cli/scaffold/app_command.py,sha256=WwOr8QU61iuNXXdG37gOTZ6D0ZawM3eixCOa10TMP8c,2098
72
72
  stoobly_agent/app/cli/scaffold/app_config.py,sha256=ZAHGovwxFy3zICfusj9_gUC_FBTIoB7KbPbQaGK8x1c,573
73
- stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=1qdKvRvJDmDmYERvbhaUapsglOOWPEHpCj0o7U7bQfo,550
73
+ stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=5av5txxNJllELMYliIEPnhLLVq_N5ktoBxf8naJUGG0,586
74
74
  stoobly_agent/app/cli/scaffold/command.py,sha256=klpsgL6V7b2DRHpN33pl-QlmntDkvDO_dsF5JziYnL8,245
75
75
  stoobly_agent/app/cli/scaffold/config.py,sha256=HZU5tkvr3dkPr4JMXZtrJlu2wxxO-134Em6jReFFcq0,688
76
76
  stoobly_agent/app/cli/scaffold/constants.py,sha256=KBZj-eQoDmoUOJgcekyfeyi1UB0_UlxqrcWZyXEmBXA,1950
77
77
  stoobly_agent/app/cli/scaffold/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  stoobly_agent/app/cli/scaffold/docker/app_builder.py,sha256=IsXZFUumWEBA8NYDFdAohuKmxocoqHqlVFg0-E92QLI,621
79
79
  stoobly_agent/app/cli/scaffold/docker/builder.py,sha256=lNOvDxoLB1L8KSDrvoG4CUuWLAM2egLxwOWeV9Tf8H8,2832
80
- stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=bYq2i3iib_YhdE-wtL42qnwPbtfgMSwtfGpT4nFT0fk,394
80
+ stoobly_agent/app/cli/scaffold/docker/constants.py,sha256=fGHH_DlGd4mTogggJLHLigUscZmBrigkNmDwKQq6src,461
81
81
  stoobly_agent/app/cli/scaffold/docker/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  stoobly_agent/app/cli/scaffold/docker/service/build_decorator.py,sha256=ZU7z4bkvdS3OK5O4fJhlA9_PNwnFtZW6t7vNF7V5obQ,1003
83
83
  stoobly_agent/app/cli/scaffold/docker/service/builder.py,sha256=vj7Vm7eK8E8DPtD4o5X0IJA4HPdgtA2lV2wm3nGTa1c,3207
84
- stoobly_agent/app/cli/scaffold/docker/service/set_gateway_ports.py,sha256=jvlO5xjATNIp8Gr0yP2O7a68bOK-8cAiKNqRWCFzK1s,1221
84
+ stoobly_agent/app/cli/scaffold/docker/service/set_gateway_ports.py,sha256=MH71h24nX5lAd6xNfSjjNyw6PjBsAXv-3kOFEe86huk,1417
85
85
  stoobly_agent/app/cli/scaffold/docker/service/types.py,sha256=qB-yYHlu-PZDc0HYgTUvE5bWNpHxaSThC3JUG8okR1k,88
86
86
  stoobly_agent/app/cli/scaffold/docker/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  stoobly_agent/app/cli/scaffold/docker/workflow/build_decorator.py,sha256=vbmME0cbN2EnNRlzQ2umj7Y3L7aZT-EHqEpkBFMfe8U,758
@@ -104,7 +104,7 @@ stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=z7Z_v
104
104
  stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=a4PUVIJ_0CEIwUTCEhvtiGJSnu--AWFE1lKv-8q17fU,193
106
106
  stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.proxy,sha256=L0yDlJfPD775NM-HgPx4E5-r-AflVBGfBf5DYl1nfME,1027
107
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=mQFdZqJAf83QN4ywhQ0sZDAazkvkwYPzhxRsyjo1z74,5575
107
+ stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=yHRthD0lXMMQ7NouU9esmrqf9wIyTHrARvdZKeIWXVY,5518
108
108
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=LNNuygX6hMtmElxaO6jTIYq3psYmxNv7xax7ra6JzO4,407
109
109
  stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=t7xRaCc9q3k7W34S0h9KX02GljSVwGpPnFmiLUvWxsw,80
110
110
  stoobly_agent/app/cli/scaffold/templates/app/build/.config.yml,sha256=8Wt8ZZ5irvBYYS44xGrR_EWlZDuXH9kyWmquzsh7s8g,19
@@ -145,7 +145,7 @@ stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/bin/configure,sha25
145
145
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/bin/init,sha256=O7czui9GFHbcoEC5I9MwkRyZvDGY42IwlyQwIWcgylY,12
146
146
  stoobly_agent/app/cli/scaffold/templates/app/entrypoint/test/docker-compose.yml,sha256=E4gGJwHfnZoFo9-0vM17-Qg5LPjx7vIPpcz2K7eiZg0,591
147
147
  stoobly_agent/app/cli/scaffold/templates/app/gateway/.config.yml,sha256=XnLQZMzzMMIwVycjyPN5QXsmRztkTFAna1kIHYuDfJQ,19
148
- stoobly_agent/app/cli/scaffold/templates/app/gateway/.docker-compose.base.yml,sha256=llkTquAphT3lyP4gBKK3tNjpOCEsdz_Oneua7792d4M,265
148
+ stoobly_agent/app/cli/scaffold/templates/app/gateway/.docker-compose.base.template.yml,sha256=bgBvyDhyehS75D2ObEi7sl9DLGV6U3c9JhCAncsvjq8,251
149
149
  stoobly_agent/app/cli/scaffold/templates/app/gateway/mock/.docker-compose.mock.yml,sha256=LiMgBvOozkBH34-72kQXLylmrnERwjQfs8aws6BlZHM,232
150
150
  stoobly_agent/app/cli/scaffold/templates/app/gateway/record/.docker-compose.record.yml,sha256=4pwMuBdfaf9hX1RVJ3KU3FY4E5BXYSPFsfUGKmiuXPk,234
151
151
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/.config.yml,sha256=XnLQZMzzMMIwVycjyPN5QXsmRztkTFAna1kIHYuDfJQ,19
@@ -193,7 +193,7 @@ stoobly_agent/app/cli/scaffold/workflow_copy_command.py,sha256=R9hh5dWVz7vGld7pE
193
193
  stoobly_agent/app/cli/scaffold/workflow_create_command.py,sha256=5xnRYrVb2KlSDARZFjLGGWeURXRu63OHoRLEhO-EAvw,3401
194
194
  stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4YaXYq_r2JpR2MmSwk,416
195
195
  stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
196
- stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=ICJZXBa93GwDmMqk_dWU6ACnpPUUa4YJcpFxozRCtDc,8283
196
+ stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=9ww-kdQAVEuJ5GoF14qrtYCpqYHOakAk13OoiPqe4tQ,8295
197
197
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=fhHciJXg_u32Wmh8us8LhgQj8D1SxkBADtuBBF4K0FM,4377
198
198
  stoobly_agent/app/cli/scaffold_cli.py,sha256=SAE6csE_pwE6vTeu054toGYHvz82bD1n4-dGY-FBxdk,19818
199
199
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
@@ -729,8 +729,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=x7
729
729
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
730
730
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
731
731
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
732
- stoobly_agent-1.2.0.dist-info/LICENSE,sha256=8QKGyy45eN76Zk52h8gu1DKX2B_gbWgZ3nzDLofEbaE,548
733
- stoobly_agent-1.2.0.dist-info/METADATA,sha256=GRbxwWvjR6mp74RP97y9qa97PTVe76SJIIQ2jDbQyqg,3384
734
- stoobly_agent-1.2.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
735
- stoobly_agent-1.2.0.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
736
- stoobly_agent-1.2.0.dist-info/RECORD,,
732
+ stoobly_agent-1.2.1.dist-info/LICENSE,sha256=8QKGyy45eN76Zk52h8gu1DKX2B_gbWgZ3nzDLofEbaE,548
733
+ stoobly_agent-1.2.1.dist-info/METADATA,sha256=JSzzPD1gvNN5RCXrZGS8F1K4PlXVJPZXGl1jJG-Uzew,3384
734
+ stoobly_agent-1.2.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
735
+ stoobly_agent-1.2.1.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
736
+ stoobly_agent-1.2.1.dist-info/RECORD,,