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:
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)
+10 -2
View File
@@ -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
+6 -1
View File
@@ -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