This commit is contained in:
Michael Woods
2025-07-27 13:41:54 -04:00
parent c404433f60
commit 6386bda4b0
6 changed files with 19 additions and 20 deletions

View File

@@ -14,8 +14,8 @@ def all_done():
storage.close()
#port = int(sys.argv[1])
storage = ZODB.FileStorage.FileStorage('/tmp/tmp_ps_data/data.zopedb')
#storage = ZODB.FileStorage.FileStorage('/home/alienhunter/.packetserver/data.zopedb')
#storage = ZODB.FileStorage.FileStorage('/tmp/tmp_ps_data/data.zopedb')
storage = ZODB.FileStorage.FileStorage('/home/alienhunter/.packetserver/data.zopedb')
#db = ZEO.DB(('127.0.0.1',port))
db = ZODB.DB(storage)
c = db.open()

View File

@@ -9,7 +9,7 @@ logging.basicConfig(level=logging.DEBUG)
server_callsign = "KQ4PEC"
conn_dir = "/tmp/ts_conn_dir"
data_dir = "/tmp/tmp_ps_data"
#data_dir = "/tmp/tmp_ps_data"
if os.path.isdir(conn_dir):
rmtree(conn_dir)
@@ -17,8 +17,7 @@ if os.path.isdir(conn_dir):
else:
os.mkdir(conn_dir)
if not os.path.isdir(data_dir):
os.mkdir(data_dir)
ts = DirectoryTestServer(server_callsign, connection_directory=os.path.abspath(conn_dir),
data_dir=os.path.abspath(data_dir), zeo=True)
#if not os.path.isdir(data_dir):
# os.mkdir(data_dir)
ts = DirectoryTestServer(server_callsign, connection_directory=os.path.abspath(conn_dir), zeo=True)
ts.start()

View File

@@ -112,7 +112,7 @@ class Runner:
return False
def start(self):
self.started = datetime.datetime.now()
self.started = datetime.datetime.now(datetime.UTC)
def stop(self):
raise RuntimeError("Attempting to stop an abstract class.")

View File

@@ -244,11 +244,11 @@ class PodmanOrchestrator(Orchestrator):
environment=container_env, user="root")
con.start()
logging.debug(f"Container started for {username} from image {self.opts.image_name}")
started_at = datetime.datetime.now()
started_at = datetime.datetime.now(datetime.UTC)
logging.debug(f"Container state: \n{con.inspect()['State']}")
while con.inspect()['State']['Status'] not in ['exited', 'running']:
logging.debug("Container state not in ['exited', 'running']")
now = datetime.datetime.now()
now = datetime.datetime.now(datetime.UTC)
if (now - started_at).total_seconds() > 300:
con.stop()
con.remove()
@@ -344,7 +344,7 @@ class PodmanOrchestrator(Orchestrator):
def touch_user_container(self, username: str):
self.user_containers[self.get_container_name(username)] = datetime.datetime.now()
self.user_containers[self.get_container_name(username)] = datetime.datetime.now(datetime.UTC)
def start_user_container(self, username: str) -> Container:
if not self.podman_user_container_exists(username):
@@ -357,7 +357,7 @@ class PodmanOrchestrator(Orchestrator):
"""Checks running containers and stops them if they have been running too long."""
containers_to_clean = set()
for c in self.user_containers:
if (datetime.datetime.now() - self.user_containers[c]).total_seconds() > self.opts.container_keepalive:
if (datetime.datetime.now(datetime.UTC) - self.user_containers[c]).total_seconds() > self.opts.container_keepalive:
logging.debug(f"Container {c} no activity for {self.opts.container_keepalive} seconds. Clearing.")
containers_to_clean.add(c)
for c in list(containers_to_clean):

View File

@@ -48,7 +48,7 @@ class Server:
self.orchestrator = None
self.worker_thread = None
self.check_job_queue = True
self.last_check_job_queue = datetime.datetime.now()
self.last_check_job_queue = datetime.datetime.now(datetime.UTC)
self.job_check_interval = 60
self.quick_job = False
if data_dir:
@@ -120,7 +120,7 @@ class Server:
def ping_job_queue(self):
self.check_job_queue = True
self.last_check_job_queue = datetime.datetime.now()
self.last_check_job_queue = datetime.datetime.now(datetime.UTC)
if self.quick_job:
logging.debug("Setting the final quick job timer.")
self.job_check_interval = 5
@@ -220,7 +220,7 @@ class Server:
if not self.started:
return
# Add things to do here:
now = datetime.datetime.now()
now = datetime.datetime.now(datetime.UTC)
if (now - self.last_check_job_queue).total_seconds() > self.job_check_interval:
self.ping_job_queue()
if (self.orchestrator is not None) and self.orchestrator.started and self.check_job_queue:
@@ -239,7 +239,7 @@ class Server:
if runner is not None:
storage.root.job_queue.remove(jid)
job.status = JobStatus.RUNNING
job.started_at = datetime.datetime.now()
job.started_at = datetime.datetime.now(datetime.UTC)
logging.info(f"Started job {job}")
else:
break

View File

@@ -67,7 +67,7 @@ class Job(persistent.Persistent):
return False
if not runner.is_finished():
return False
job.finished_at = datetime.datetime.now()
job.finished_at = datetime.datetime.now(datetime.UTC)
job.output = runner.output
job.errors = runner.errors
job.return_code = runner.return_code
@@ -327,8 +327,8 @@ def handle_new_job_post(req: Request, conn: PacketServerConnection, db: ZODB.DB)
send_blank_response(conn, req, 500, "unknown server error while queuing job")
return
if quick:
start_time = datetime.datetime.now()
now = datetime.datetime.now()
start_time = datetime.datetime.now(datetime.UTC)
now = datetime.datetime.now(datetime.UTC)
job_done = False
quick_job = None
logging.debug(f"{start_time}: Waiting for a quick job for 30 seconds")
@@ -343,7 +343,7 @@ def handle_new_job_post(req: Request, conn: PacketServerConnection, db: ZODB.DB)
except:
pass
time.sleep(1)
now = datetime.datetime.now()
now = datetime.datetime.now(datetime.UTC)
if job_done and (type(quick_job) is Job):
send_blank_response(conn, req, 200, job.to_dict(include_data=True))
else: