utils_devops 0.1.167__py3-none-any.whl → 0.1.169__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.
- utils_devops/extras/docker_ops.py +63 -26
- {utils_devops-0.1.167.dist-info → utils_devops-0.1.169.dist-info}/METADATA +1 -1
- {utils_devops-0.1.167.dist-info → utils_devops-0.1.169.dist-info}/RECORD +5 -5
- {utils_devops-0.1.167.dist-info → utils_devops-0.1.169.dist-info}/WHEEL +0 -0
- {utils_devops-0.1.167.dist-info → utils_devops-0.1.169.dist-info}/entry_points.txt +0 -0
|
@@ -2270,6 +2270,7 @@ def playwright_test_compose(
|
|
|
2270
2270
|
dry_run: bool = False,
|
|
2271
2271
|
project_name: Optional[str] = None,
|
|
2272
2272
|
ui: Optional[bool] = False,
|
|
2273
|
+
skip_project_up: Optional[bool] = False,
|
|
2273
2274
|
logger: Optional[logger] = None,
|
|
2274
2275
|
) -> Dict[str, Any]:
|
|
2275
2276
|
"""
|
|
@@ -2345,8 +2346,39 @@ def playwright_test_compose(
|
|
|
2345
2346
|
logger.info(f"{STICKERS['success']} Validation complete")
|
|
2346
2347
|
logger.info("")
|
|
2347
2348
|
|
|
2349
|
+
if skip_project_up :
|
|
2350
|
+
# Step 4: Health checks (single phase with total timeout)
|
|
2351
|
+
if not dry_run:
|
|
2352
|
+
logger.info("🏥 Step 4: Performing health checks...")
|
|
2353
|
+
health_success, health_details = _perform_health_checks(
|
|
2354
|
+
compose_file=compose_file,
|
|
2355
|
+
services=services,
|
|
2356
|
+
timeout=50,
|
|
2357
|
+
interval=1,
|
|
2358
|
+
logger=logger,
|
|
2359
|
+
env_file=env_file
|
|
2360
|
+
)
|
|
2361
|
+
|
|
2362
|
+
result["steps"]["health_check"] = health_details
|
|
2363
|
+
result["health_status"] = health_details.get("service_status", {})
|
|
2364
|
+
|
|
2365
|
+
# Identify failing services (any not 'healthy')
|
|
2366
|
+
failing_services = [
|
|
2367
|
+
svc for svc, status in health_details.get("service_status", {}).items()
|
|
2368
|
+
if status.get("overall_status") != "healthy"
|
|
2369
|
+
]
|
|
2370
|
+
result["failing_services"] = failing_services
|
|
2371
|
+
|
|
2372
|
+
if health_success:
|
|
2373
|
+
logger.info("✅ All services healthy!")
|
|
2374
|
+
result["success"] = True
|
|
2375
|
+
else:
|
|
2376
|
+
logger.error(f"❌ Health checks failed for {len(failing_services)} services: {failing_services}")
|
|
2377
|
+
result["success"] = False
|
|
2378
|
+
skip_project_up = False
|
|
2379
|
+
|
|
2348
2380
|
# STEP 1: Version update
|
|
2349
|
-
if update_version:
|
|
2381
|
+
if update_version and not skip_project_up :
|
|
2350
2382
|
logger.info(f"{STICKERS['info']} STEP 1: Updating version")
|
|
2351
2383
|
if not dry_run:
|
|
2352
2384
|
new_version = _update_env_version(env_file=env_file, source=version_source, logger=logger)
|
|
@@ -2357,37 +2389,42 @@ def playwright_test_compose(
|
|
|
2357
2389
|
logger.info("")
|
|
2358
2390
|
|
|
2359
2391
|
# STEP 2: Environment
|
|
2360
|
-
if not dry_run:
|
|
2392
|
+
if not dry_run and not skip_project_up:
|
|
2361
2393
|
envs.dotenv_set_key(env_file,"STATIC_CAPTCHA","true")
|
|
2362
2394
|
|
|
2363
2395
|
|
|
2364
2396
|
# STEP 3: Application stack
|
|
2365
2397
|
logger.info(f"{STICKERS['info']} STEP 3: Starting application stack")
|
|
2366
2398
|
if not dry_run:
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2399
|
+
if not skip_project_up :
|
|
2400
|
+
app_result = test_compose(
|
|
2401
|
+
compose_file=compose_file,
|
|
2402
|
+
env_file=env_file,
|
|
2403
|
+
update_version=False,
|
|
2404
|
+
services=services,
|
|
2405
|
+
health_timeout=health_timeout,
|
|
2406
|
+
health_interval=health_interval,
|
|
2407
|
+
capture_logs=capture_logs,
|
|
2408
|
+
log_tail=log_tail,
|
|
2409
|
+
pull_missing=pull_missing,
|
|
2410
|
+
no_build=no_build,
|
|
2411
|
+
no_pull=no_pull,
|
|
2412
|
+
keep_compose_up=True,
|
|
2413
|
+
project_name=project_name,
|
|
2414
|
+
dry_run=dry_run,
|
|
2415
|
+
logger=logger,
|
|
2416
|
+
)
|
|
2417
|
+
|
|
2418
|
+
result['app_result'] = app_result
|
|
2419
|
+
if not app_result.get('success'):
|
|
2420
|
+
raise DockerOpsError("Application stack failed")
|
|
2421
|
+
|
|
2422
|
+
logger.info(f"{STICKERS['success']} Application stack ready")
|
|
2423
|
+
logger.info("")
|
|
2424
|
+
else :
|
|
2425
|
+
logger.info(f"{STICKERS['info']} Application start skipped (skip_project_up is True)")
|
|
2426
|
+
logger.info("")
|
|
2427
|
+
|
|
2391
2428
|
else:
|
|
2392
2429
|
logger.info(f"{STICKERS['info']} Application start skipped (dry run)")
|
|
2393
2430
|
logger.info("")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: utils_devops
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.169
|
|
4
4
|
Summary: Lightweight DevOps utilities for automation scripts: config editing (YAML/JSON/INI/.env), templating, diffing, and CLI tools
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: devops,automation,nginx,cli,jinja2,yaml,config,diff,templating,logging,docker,compose,file-ops
|
|
@@ -9,7 +9,7 @@ utils_devops/core/strings.py,sha256=8s0GSjcyTKwLjJjsJ_XfOJxPtyb549icDlU9SUxSvHI,
|
|
|
9
9
|
utils_devops/core/systems.py,sha256=wNbEFUAvbMPdqWN-iXvTzvj5iE9xaWfjZYYvD0EZAH0,47577
|
|
10
10
|
utils_devops/extras/__init__.py,sha256=ZXHeVLHO3_qiW9AY-UQ_YA9cQzmkLGv54a2UbyvtlM0,3571
|
|
11
11
|
utils_devops/extras/aws_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
utils_devops/extras/docker_ops.py,sha256
|
|
12
|
+
utils_devops/extras/docker_ops.py,sha256=-ZdlmyJZEvXKOK7a130oCLJOES9LzXiqwuhFw9MBn1s,199809
|
|
13
13
|
utils_devops/extras/git_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
utils_devops/extras/interaction_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
utils_devops/extras/metrics_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -19,7 +19,7 @@ utils_devops/extras/notification_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
19
19
|
utils_devops/extras/performance_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
20
|
utils_devops/extras/ssh_ops.py,sha256=hTOYzyWmnZWzOLeZbCoZRLxSJiBmr0QgS_87qks-CYk,76305
|
|
21
21
|
utils_devops/extras/vault_ops.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
utils_devops-0.1.
|
|
23
|
-
utils_devops-0.1.
|
|
24
|
-
utils_devops-0.1.
|
|
25
|
-
utils_devops-0.1.
|
|
22
|
+
utils_devops-0.1.169.dist-info/METADATA,sha256=PxPjbHemG288yCIUoL5-mLtR3pveXzroUtymUMamosA,1903
|
|
23
|
+
utils_devops-0.1.169.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
24
|
+
utils_devops-0.1.169.dist-info/entry_points.txt,sha256=ei3B6ZL5yu6dOq-U1r8wsBdkXeg63RAyV7m8_ADaE6k,53
|
|
25
|
+
utils_devops-0.1.169.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|