From c2142fc23ba9005a76ec41b9d24abaa5cc533631 Mon Sep 17 00:00:00 2001 From: Cory Hawkvelt Date: Tue, 23 Sep 2025 00:53:15 +0930 Subject: [PATCH] improved injected files --- app/controller/api/workload_container_routes.py | 3 +++ websocket_server/task_api.py | 12 ++++++++++-- worker/worker_tasks/container.py | 7 ++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/controller/api/workload_container_routes.py b/app/controller/api/workload_container_routes.py index e665bf5..255e648 100644 --- a/app/controller/api/workload_container_routes.py +++ b/app/controller/api/workload_container_routes.py @@ -293,7 +293,10 @@ def validate_payload(payload): }) if sanitized_injected_files: + logger.debug(f"Added injected_files to container {container['container_name']}: {sanitized_injected_files}") sanitized_container['injected_files'] = sanitized_injected_files + else: + logger.debug(f"No injected_files for container {container['container_name']}") sanitized_payload['containers'].append(sanitized_container) diff --git a/websocket_server/task_api.py b/websocket_server/task_api.py index b72ff34..2a23f20 100644 --- a/websocket_server/task_api.py +++ b/websocket_server/task_api.py @@ -27,13 +27,21 @@ def register_routes(app): Create a new task and insert it into the database. """ data = request.get_json() + logger.debug(f"Received create_task request: {data}") worker_id = data.get("worker_id") - job_details = json.dumps(data.get("job_details")) + job_details_dict = data.get("job_details") + job_details = json.dumps(job_details_dict) if job_details_dict else None task_type = data.get("task_type", "default") depends_on = data.get("depends_on") not_before = data.get("not_before") - logger.info(f"Creating new task for worker {worker_id}") + logger.info(f"Creating new task for worker {worker_id}, type {task_type}") + if job_details_dict and "containers" in job_details_dict: + for container in job_details_dict["containers"]: + if "injected_files" in container: + logger.info(f"Task contains injected_files for container {container.get('container_name', 'unknown')}") + else: + logger.debug(f"No injected_files for container {container.get('container_name', 'unknown')}") if not worker_id or not job_details: return jsonify({"error": "worker_id and job_details are required"}), 400 diff --git a/worker/worker_tasks/container.py b/worker/worker_tasks/container.py index 1ee2775..368d518 100644 --- a/worker/worker_tasks/container.py +++ b/worker/worker_tasks/container.py @@ -1,4 +1,5 @@ import time +import traceback import docker import uuid import pty @@ -69,6 +70,7 @@ class ContainerTask: except Exception as e: # Ensure containers are unblacklisted even if update fails self.logger.error(f"Pod update failed, ensuring containers are unblacklisted: {str(e)}") + self.logger.error(traceback.format_exc()) self.unblacklist_containers(pod_payload) raise @@ -652,10 +654,11 @@ class ContainerTask: # Handle injected files if "injected_files" in container_spec: + self.logger.debug(f"Processing injected_files for container {system_container_id}: {container_spec['injected_files']}") # Create temp directory for injected files temp_dir = f"/tmp/xcloudify_injected/{system_container_id}" os.makedirs(temp_dir, exist_ok=True) - + for injected_file in container_spec["injected_files"]: filename = injected_file["filename"] content_b64 = injected_file["content"] @@ -687,6 +690,8 @@ class ContainerTask: except Exception as e: self.logger.error(f"Failed to write injected file {filename}: {e}") continue + else: + self.logger.debug(f"No injected_files found in container_spec for {system_container_id}") try: # Step 1 – create & start