From 6386bda4b006301fc6f84f7e2ef21bc56f9e9dd0 Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Sun, 27 Jul 2025 13:41:54 -0400 Subject: [PATCH] True up. --- examples/misc/edit-storage-no-zeo.py | 4 ++-- examples/misc/starttestserver.py | 9 ++++----- packetserver/runner/__init__.py | 2 +- packetserver/runner/podman.py | 8 ++++---- packetserver/server/__init__.py | 8 ++++---- packetserver/server/jobs.py | 8 ++++---- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/examples/misc/edit-storage-no-zeo.py b/examples/misc/edit-storage-no-zeo.py index 05daef4..66e4145 100644 --- a/examples/misc/edit-storage-no-zeo.py +++ b/examples/misc/edit-storage-no-zeo.py @@ -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() diff --git a/examples/misc/starttestserver.py b/examples/misc/starttestserver.py index 600c8b3..387a68f 100644 --- a/examples/misc/starttestserver.py +++ b/examples/misc/starttestserver.py @@ -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() \ No newline at end of file diff --git a/packetserver/runner/__init__.py b/packetserver/runner/__init__.py index 523fcf5..e6bc8ee 100644 --- a/packetserver/runner/__init__.py +++ b/packetserver/runner/__init__.py @@ -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.") diff --git a/packetserver/runner/podman.py b/packetserver/runner/podman.py index 8be4057..b203f0d 100644 --- a/packetserver/runner/podman.py +++ b/packetserver/runner/podman.py @@ -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): diff --git a/packetserver/server/__init__.py b/packetserver/server/__init__.py index 1c42257..bd11d4b 100644 --- a/packetserver/server/__init__.py +++ b/packetserver/server/__init__.py @@ -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 diff --git a/packetserver/server/jobs.py b/packetserver/server/jobs.py index ec86f2c..af761b5 100644 --- a/packetserver/server/jobs.py +++ b/packetserver/server/jobs.py @@ -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: