improved injected files

This commit is contained in:
2025-09-23 00:53:15 +09:30
parent 787a1050a5
commit c2142fc23b
3 changed files with 19 additions and 3 deletions
@@ -293,7 +293,10 @@ def validate_payload(payload):
}) })
if sanitized_injected_files: 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 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) sanitized_payload['containers'].append(sanitized_container)
+10 -2
View File
@@ -27,13 +27,21 @@ def register_routes(app):
Create a new task and insert it into the database. Create a new task and insert it into the database.
""" """
data = request.get_json() data = request.get_json()
logger.debug(f"Received create_task request: {data}")
worker_id = data.get("worker_id") 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") task_type = data.get("task_type", "default")
depends_on = data.get("depends_on") depends_on = data.get("depends_on")
not_before = data.get("not_before") 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: if not worker_id or not job_details:
return jsonify({"error": "worker_id and job_details are required"}), 400 return jsonify({"error": "worker_id and job_details are required"}), 400
+6 -1
View File
@@ -1,4 +1,5 @@
import time import time
import traceback
import docker import docker
import uuid import uuid
import pty import pty
@@ -69,6 +70,7 @@ class ContainerTask:
except Exception as e: except Exception as e:
# Ensure containers are unblacklisted even if update fails # Ensure containers are unblacklisted even if update fails
self.logger.error(f"Pod update failed, ensuring containers are unblacklisted: {str(e)}") self.logger.error(f"Pod update failed, ensuring containers are unblacklisted: {str(e)}")
self.logger.error(traceback.format_exc())
self.unblacklist_containers(pod_payload) self.unblacklist_containers(pod_payload)
raise raise
@@ -652,10 +654,11 @@ class ContainerTask:
# Handle injected files # Handle injected files
if "injected_files" in container_spec: 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 # Create temp directory for injected files
temp_dir = f"/tmp/xcloudify_injected/{system_container_id}" temp_dir = f"/tmp/xcloudify_injected/{system_container_id}"
os.makedirs(temp_dir, exist_ok=True) os.makedirs(temp_dir, exist_ok=True)
for injected_file in container_spec["injected_files"]: for injected_file in container_spec["injected_files"]:
filename = injected_file["filename"] filename = injected_file["filename"]
content_b64 = injected_file["content"] content_b64 = injected_file["content"]
@@ -687,6 +690,8 @@ class ContainerTask:
except Exception as e: except Exception as e:
self.logger.error(f"Failed to write injected file {filename}: {e}") self.logger.error(f"Failed to write injected file {filename}: {e}")
continue continue
else:
self.logger.debug(f"No injected_files found in container_spec for {system_container_id}")
try: try:
# Step 1 – create & start # Step 1 – create & start