This commit is contained in:
2025-09-19 18:14:15 +08:00
parent 2f921b6209
commit 101df213dc
3 changed files with 34 additions and 1 deletions

View File

@ -103,3 +103,29 @@ class WhaleContainer(db.Model):
def __repr__(self):
return "<WhaleContainer ID:{0} {1} {2} {3} {4}>".format(self.id, self.user_id, self.challenge_id,
self.start_time, self.renew_count)
class WhaleContainerLog(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
user_id = db.Column(None, db.ForeignKey("users.id"))
challenge_id = db.Column(None, db.ForeignKey("challenges.id"))
start_time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
uuid = db.Column(db.String(256))
flag = db.Column(db.String(128), nullable=False)
# Relationships
user = db.relationship(
"Users", foreign_keys="WhaleContainerLog.user_id", lazy="select")
challenge = db.relationship(
"DynamicDockerChallenge", foreign_keys="WhaleContainerLog.challenge_id", lazy="select"
)
def __init__(self, container):
self.user_id = container.user_id
self.challenge_id = container.challenge_id
self.start_time = container.challenge_id
self.uuid = container.uuid
self.flag = container.flag
def __repr__(self):
return "<WhaleContainer ID:{0} {1} {2} {3} {4} {5}>".format(self.id, self.user_id, self.challenge_id,
self.start_time, self.uuid, self.flag)

View File

@ -22,6 +22,7 @@ class ControlUtil:
DockerUtils.remove_container(container)
DBContainer.remove_container_record(user_id)
return False, msg
DBContainer.create_container_log(container)
return True, 'Container created'
@staticmethod

View File

@ -2,7 +2,7 @@ import datetime
from CTFd.models import db
from CTFd.utils import get_config
from ..models import WhaleContainer, WhaleRedirectTemplate
from ..models import WhaleContainer,WhaleContainerLog, WhaleRedirectTemplate
class DBContainer:
@ -14,6 +14,12 @@ class DBContainer:
return container
@staticmethod
def create_container_log(container):
log = WhaleContainerLog(container=container)
db.session.add(log)
db.session.commit()
@staticmethod
def get_current_containers(user_id):
q = db.session.query(WhaleContainer)