improved injected files
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user