stoobly-agent 1.10.5__py3-none-any.whl → 1.10.6__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.10.5'
2
+ VERSION = '1.10.6'
@@ -435,6 +435,11 @@ class DockerWorkflowRunCommand(WorkflowRunCommand):
435
435
  if folder != self.workflow_name:
436
436
  workflow_name = file_name.split(self.timestamp_file_extension)[0]
437
437
 
438
+ # If the workflow is namespaced, allow it to run at the same time
439
+ # Same workflow with same namespace is allowed, workflow will be restarted
440
+ if workflow_name == self.workflow_name:
441
+ return
442
+
438
443
  Logger.instance(LOG_ID).error(f"Workflow '{workflow_name}' is running, please stop it first.")
439
444
 
440
445
  if folder != workflow_name:
@@ -283,9 +283,16 @@ class LocalWorkflowRunCommand(WorkflowRunCommand):
283
283
  else:
284
284
  file_name = os.path.basename(pid_file_path)
285
285
  workflow_name = self.workflow_name
286
+
287
+ # If the folder is not the same as the workflow name, then the workflow is namespaced, get the real workflow name
286
288
  if folder != self.workflow_name:
287
289
  workflow_name = file_name.split(self.pid_file_extension)[0]
288
290
 
291
+ # If the workflow is namespaced, allow it to run at the same time
292
+ # Same workflow with same namespace is covered by pid_file_path check
293
+ if workflow_name == self.workflow_name:
294
+ return
295
+
289
296
  Logger.instance(LOG_ID).error(f"Workflow {workflow_name} is already running with PID {pid}")
290
297
 
291
298
  if folder != workflow_name:
@@ -110,10 +110,10 @@ intercept/disable:
110
110
  intercept/enable:
111
111
  @export EXEC_COMMAND=intercept/.enable EXEC_OPTIONS="" EXEC_ARGS=$(scenario_key) && \
112
112
  $(stoobly_exec)
113
- mock: workflow/mock ca-cert/install workflow/up nameservers workflow/hostname/install workflow/run
113
+ mock: workflow/mock ca-cert/install workflow/up nameservers workflow/hostname/install workflow/up/run
114
114
  mock/services: workflow/mock workflow/services
115
- mock/logs: workflow/mock workflow/logs workflow/run
116
- mock/down: workflow/mock workflow/down workflow/run workflow/hostname/uninstall
115
+ mock/logs: workflow/mock workflow/logs workflow/logs/run
116
+ mock/down: workflow/mock workflow/down workflow/down/run workflow/hostname/uninstall
117
117
  pipx/install:
118
118
  @if ! command -v pipx >/dev/null 2>&1; then \
119
119
  echo "pipx is not installed. Installing pipx..."; \
@@ -124,10 +124,10 @@ python/validate:
124
124
  echo "Error: Python 3.10, 3.11, or 3.12 is required."; \
125
125
  exit 1; \
126
126
  fi
127
- record: workflow/record ca-cert/install workflow/up nameservers workflow/hostname/install workflow/run
128
- record/down: workflow/record workflow/down workflow/run workflow/hostname/uninstall
127
+ record: workflow/record ca-cert/install workflow/up nameservers workflow/hostname/install workflow/up/run
128
+ record/down: workflow/record workflow/down workflow/down/run workflow/hostname/uninstall
129
129
  record/services: workflow/record workflow/services
130
- record/logs: workflow/record workflow/logs workflow/run
130
+ record/logs: workflow/record workflow/logs workflow/logs/run
131
131
  scenario/create:
132
132
  # Create a scenario
133
133
  @export EXEC_COMMAND=scenario/.create EXEC_OPTIONS="$(options)" EXEC_ARGS="$(name)" && \
@@ -157,15 +157,17 @@ stoobly/install: python/validate pipx/install
157
157
  echo "stoobly-agent not found. Installing..."; \
158
158
  pipx install stoobly-agent || { echo "Failed to install stoobly-agent"; exit 1; }; \
159
159
  fi
160
- test: workflow/test workflow/up workflow/run
160
+ test: workflow/test workflow/up workflow/up/run
161
161
  test/services: workflow/test workflow/services
162
- test/logs: workflow/test workflow/logs workflow/run
163
- test/down: workflow/test workflow/down workflow/run
162
+ test/logs: workflow/test workflow/logs workflow/logs/run
163
+ test/down: workflow/test workflow/down workflow/down/run
164
164
  tmpdir:
165
165
  @mkdir -p $(app_tmp_dir)
166
166
  workflow/down: dotenv
167
167
  @export EXEC_COMMAND=scaffold/.down EXEC_OPTIONS="$(workflow_down_options) $(workflow_run_options) $(options)" EXEC_ARGS="$(workflow)" && \
168
168
  $(stoobly_exec_run)
169
+ workflow/down/run:
170
+ @bash "$(app_dir)/$(workflow_script)"
169
171
  workflow/hostname: stoobly/install
170
172
  @if [ -n "$$STOOBLY_HOSTNAME_INSTALL_CONFIRM" ]; then \
171
173
  confirm="$$STOOBLY_HOSTNAME_INSTALL_CONFIRM"; \
@@ -187,14 +189,14 @@ workflow/hostname/uninstall: action/uninstall workflow/hostname
187
189
  workflow/logs:
188
190
  @export EXEC_COMMAND=scaffold/.logs EXEC_OPTIONS="$(workflow_log_options) $(workflow_run_options) $(options)" EXEC_ARGS="$(workflow)" && \
189
191
  $(stoobly_exec_run)
192
+ workflow/logs/run:
193
+ @bash "$(app_dir)/$(workflow_script)"
190
194
  workflow/mock:
191
195
  $(eval workflow=mock)
192
196
  workflow/namespace: tmpdir
193
197
  @mkdir -p $(workflow_namespace_dir)
194
198
  workflow/record:
195
199
  $(eval workflow=record)
196
- workflow/run:
197
- @bash "$(app_dir)/$(workflow_script)"
198
200
  workflow/services:
199
201
  @export EXEC_COMMAND=scaffold/.services EXEC_OPTIONS="$(workflow_service_options) $(options)" EXEC_ARGS="$(workflow)" && \
200
202
  $(stoobly_exec_run)
@@ -203,3 +205,5 @@ workflow/test:
203
205
  workflow/up: dotenv
204
206
  @export EXEC_COMMAND=scaffold/.up EXEC_OPTIONS="$(workflow_up_options) $(workflow_run_options) $(options)" EXEC_ARGS="$(workflow)" && \
205
207
  $(stoobly_exec_run)
208
+ workflow/up/run:
209
+ @bash "$(app_dir)/$(workflow_script)"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stoobly-agent
3
- Version: 1.10.5
3
+ Version: 1.10.6
4
4
  Summary: Record, mock, and test HTTP(s) requests. CLI agent for Stoobly
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,4 +1,4 @@
1
- stoobly_agent/__init__.py,sha256=sxrNGBqNJn6xpatZ-k8nV1eIVOpFpk1_oBfoMJlWMWA,45
1
+ stoobly_agent/__init__.py,sha256=CjtLB5bT2uBXBd0Xa_QPnx4Folf55LeK5oi441a3lco,45
2
2
  stoobly_agent/__main__.py,sha256=tefOkFZeCFU4l3C-Y4R_lR9Yt-FETISiXGUnbh6Os54,146
3
3
  stoobly_agent/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  stoobly_agent/app/api/__init__.py,sha256=NIgcbX7iiWrApsCITXlmhr4SYbWS0fwb01x-F3jTFdo,666
@@ -95,7 +95,7 @@ stoobly_agent/app/cli/scaffold/docker/workflow/dns_decorator.py,sha256=DGaSlbOvA
95
95
  stoobly_agent/app/cli/scaffold/docker/workflow/local_decorator.py,sha256=xp1TmP8drOyl9Zhm5B1ci6NqPqRFDr2yxipmvSljgiE,717
96
96
  stoobly_agent/app/cli/scaffold/docker/workflow/mock_decorator.py,sha256=QO1TbAj6QthIyHvy7itV_d9NteNcjClYaan1GX-0kLc,1201
97
97
  stoobly_agent/app/cli/scaffold/docker/workflow/reverse_proxy_decorator.py,sha256=tSPnscsBZusBaSt_NlB4exrZ2MnWMRAUJgw_NaEdHiw,1199
98
- stoobly_agent/app/cli/scaffold/docker/workflow/run_command.py,sha256=aqRVHTbCooan8zTMfKjxEjssf255YTEdLzoPUXna29o,18010
98
+ stoobly_agent/app/cli/scaffold/docker/workflow/run_command.py,sha256=LLiC7KCgo9ZlmXcdaidmcN449GuDK_8dYykCNFjfhyo,18217
99
99
  stoobly_agent/app/cli/scaffold/env.py,sha256=dT33tHoQaUxfsFCYm8kfaAv-qPVrUPmNFQmLnFQhZeQ,1107
100
100
  stoobly_agent/app/cli/scaffold/hosts_file_manager.py,sha256=zNX5wh6zXQ4J2BA0YYdD7_CPqDz02b_ghXsY3oTjjB4,4999
101
101
  stoobly_agent/app/cli/scaffold/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -103,7 +103,7 @@ stoobly_agent/app/cli/scaffold/local/service/__init__.py,sha256=47DEQpj8HBSa-_TI
103
103
  stoobly_agent/app/cli/scaffold/local/service/builder.py,sha256=uZNPIQWo4UcLy3bcE6Wvntle6ONPpWjS5oAq3g0Punk,1852
104
104
  stoobly_agent/app/cli/scaffold/local/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  stoobly_agent/app/cli/scaffold/local/workflow/builder.py,sha256=O8Iwyd231-ciQWkiGB5HAiFJXMDUtXIoyl0S_Jrj3lQ,806
106
- stoobly_agent/app/cli/scaffold/local/workflow/run_command.py,sha256=BJrG5g-c4kf_cgQ1hE41KUKQsvtwVVKzaTgQ7eCaPUk,15625
106
+ stoobly_agent/app/cli/scaffold/local/workflow/run_command.py,sha256=7XhI6X-TKAGv-HuOvh6Knm7R5DDpfi8ZZ8BJnHQwGtY,15956
107
107
  stoobly_agent/app/cli/scaffold/managed_services_docker_compose.py,sha256=-wLBXUi7DCWsfm5KzZzd_kdJKOTl1NT924XR7dyjbSY,574
108
108
  stoobly_agent/app/cli/scaffold/service.py,sha256=74JwjTRRkk6lo-k9hre1iGztbKa9zDqjPVx3Qgpze-s,699
109
109
  stoobly_agent/app/cli/scaffold/service_command.py,sha256=j-lkG5Zth_CBHa6Z9Kv3dJwxX9gylFBZMZbW691R8ZU,1480
@@ -117,7 +117,7 @@ stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOW
117
117
  stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=DPYLBAwUsh4C8ho-4SwjBe32xuBSUpWlWgRF9JIbKRc,11768
118
118
  stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=x8C_a0VoO_vUbosp4_6IC1U7Ge9NnUdVKDPpVMtMkeY,171
119
119
  stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=9DQK-OXnRKjjKWsUSIRAio6dkR4eGxD1vizPT7Q5sp8,159
120
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=9E46Dzs3xCKy2fP6L6Q4DxourYxrwKCcoUhEf3Y7DEs,9619
120
+ stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=6zIVTZl23rLR8jetIr76B1dXi_Zy1SUMGZok6BTaa4A,9777
121
121
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=SABod6_InBFyOm-uulK7r27SR0sWRUiL0h69g_jvNJA,249
122
122
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.networks.yml,sha256=I4PbJpQjFHb5IbAUWNvYM6okDEtmwtKFDQg-yog05WM,141
123
123
  stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
@@ -797,8 +797,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
797
797
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
798
798
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
799
799
  stoobly_agent/test/test_helper.py,sha256=6v4AHeqYPw7vtRoxET_ubmRWPJoSmTR_DVHay3FxNbQ,1299
800
- stoobly_agent-1.10.5.dist-info/METADATA,sha256=7QB_Saw0H6Pz_qkMRM9HKiXta5p-noQJIMFN5lGVm4g,3203
801
- stoobly_agent-1.10.5.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
802
- stoobly_agent-1.10.5.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
803
- stoobly_agent-1.10.5.dist-info/licenses/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
804
- stoobly_agent-1.10.5.dist-info/RECORD,,
800
+ stoobly_agent-1.10.6.dist-info/METADATA,sha256=lhF6K4LrkdmPLu3ze3whqIrmF9V1yWQJO4qPrF3OAlY,3203
801
+ stoobly_agent-1.10.6.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
802
+ stoobly_agent-1.10.6.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
803
+ stoobly_agent-1.10.6.dist-info/licenses/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
804
+ stoobly_agent-1.10.6.dist-info/RECORD,,