True up.
This commit is contained in:
@@ -14,8 +14,8 @@ def all_done():
|
|||||||
storage.close()
|
storage.close()
|
||||||
|
|
||||||
#port = int(sys.argv[1])
|
#port = int(sys.argv[1])
|
||||||
storage = ZODB.FileStorage.FileStorage('/tmp/tmp_ps_data/data.zopedb')
|
#storage = ZODB.FileStorage.FileStorage('/tmp/tmp_ps_data/data.zopedb')
|
||||||
#storage = ZODB.FileStorage.FileStorage('/home/alienhunter/.packetserver/data.zopedb')
|
storage = ZODB.FileStorage.FileStorage('/home/alienhunter/.packetserver/data.zopedb')
|
||||||
#db = ZEO.DB(('127.0.0.1',port))
|
#db = ZEO.DB(('127.0.0.1',port))
|
||||||
db = ZODB.DB(storage)
|
db = ZODB.DB(storage)
|
||||||
c = db.open()
|
c = db.open()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ logging.basicConfig(level=logging.DEBUG)
|
|||||||
|
|
||||||
server_callsign = "KQ4PEC"
|
server_callsign = "KQ4PEC"
|
||||||
conn_dir = "/tmp/ts_conn_dir"
|
conn_dir = "/tmp/ts_conn_dir"
|
||||||
data_dir = "/tmp/tmp_ps_data"
|
#data_dir = "/tmp/tmp_ps_data"
|
||||||
|
|
||||||
if os.path.isdir(conn_dir):
|
if os.path.isdir(conn_dir):
|
||||||
rmtree(conn_dir)
|
rmtree(conn_dir)
|
||||||
@@ -17,8 +17,7 @@ if os.path.isdir(conn_dir):
|
|||||||
else:
|
else:
|
||||||
os.mkdir(conn_dir)
|
os.mkdir(conn_dir)
|
||||||
|
|
||||||
if not os.path.isdir(data_dir):
|
#if not os.path.isdir(data_dir):
|
||||||
os.mkdir(data_dir)
|
# os.mkdir(data_dir)
|
||||||
ts = DirectoryTestServer(server_callsign, connection_directory=os.path.abspath(conn_dir),
|
ts = DirectoryTestServer(server_callsign, connection_directory=os.path.abspath(conn_dir), zeo=True)
|
||||||
data_dir=os.path.abspath(data_dir), zeo=True)
|
|
||||||
ts.start()
|
ts.start()
|
||||||
@@ -112,7 +112,7 @@ class Runner:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.started = datetime.datetime.now()
|
self.started = datetime.datetime.now(datetime.UTC)
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
raise RuntimeError("Attempting to stop an abstract class.")
|
raise RuntimeError("Attempting to stop an abstract class.")
|
||||||
|
|||||||
@@ -244,11 +244,11 @@ class PodmanOrchestrator(Orchestrator):
|
|||||||
environment=container_env, user="root")
|
environment=container_env, user="root")
|
||||||
con.start()
|
con.start()
|
||||||
logging.debug(f"Container started for {username} from image {self.opts.image_name}")
|
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']}")
|
logging.debug(f"Container state: \n{con.inspect()['State']}")
|
||||||
while con.inspect()['State']['Status'] not in ['exited', 'running']:
|
while con.inspect()['State']['Status'] not in ['exited', 'running']:
|
||||||
logging.debug("Container state 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:
|
if (now - started_at).total_seconds() > 300:
|
||||||
con.stop()
|
con.stop()
|
||||||
con.remove()
|
con.remove()
|
||||||
@@ -344,7 +344,7 @@ class PodmanOrchestrator(Orchestrator):
|
|||||||
|
|
||||||
|
|
||||||
def touch_user_container(self, username: str):
|
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:
|
def start_user_container(self, username: str) -> Container:
|
||||||
if not self.podman_user_container_exists(username):
|
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."""
|
"""Checks running containers and stops them if they have been running too long."""
|
||||||
containers_to_clean = set()
|
containers_to_clean = set()
|
||||||
for c in self.user_containers:
|
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.")
|
logging.debug(f"Container {c} no activity for {self.opts.container_keepalive} seconds. Clearing.")
|
||||||
containers_to_clean.add(c)
|
containers_to_clean.add(c)
|
||||||
for c in list(containers_to_clean):
|
for c in list(containers_to_clean):
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class Server:
|
|||||||
self.orchestrator = None
|
self.orchestrator = None
|
||||||
self.worker_thread = None
|
self.worker_thread = None
|
||||||
self.check_job_queue = True
|
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.job_check_interval = 60
|
||||||
self.quick_job = False
|
self.quick_job = False
|
||||||
if data_dir:
|
if data_dir:
|
||||||
@@ -120,7 +120,7 @@ class Server:
|
|||||||
|
|
||||||
def ping_job_queue(self):
|
def ping_job_queue(self):
|
||||||
self.check_job_queue = True
|
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:
|
if self.quick_job:
|
||||||
logging.debug("Setting the final quick job timer.")
|
logging.debug("Setting the final quick job timer.")
|
||||||
self.job_check_interval = 5
|
self.job_check_interval = 5
|
||||||
@@ -220,7 +220,7 @@ class Server:
|
|||||||
if not self.started:
|
if not self.started:
|
||||||
return
|
return
|
||||||
# Add things to do here:
|
# 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:
|
if (now - self.last_check_job_queue).total_seconds() > self.job_check_interval:
|
||||||
self.ping_job_queue()
|
self.ping_job_queue()
|
||||||
if (self.orchestrator is not None) and self.orchestrator.started and self.check_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:
|
if runner is not None:
|
||||||
storage.root.job_queue.remove(jid)
|
storage.root.job_queue.remove(jid)
|
||||||
job.status = JobStatus.RUNNING
|
job.status = JobStatus.RUNNING
|
||||||
job.started_at = datetime.datetime.now()
|
job.started_at = datetime.datetime.now(datetime.UTC)
|
||||||
logging.info(f"Started job {job}")
|
logging.info(f"Started job {job}")
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class Job(persistent.Persistent):
|
|||||||
return False
|
return False
|
||||||
if not runner.is_finished():
|
if not runner.is_finished():
|
||||||
return False
|
return False
|
||||||
job.finished_at = datetime.datetime.now()
|
job.finished_at = datetime.datetime.now(datetime.UTC)
|
||||||
job.output = runner.output
|
job.output = runner.output
|
||||||
job.errors = runner.errors
|
job.errors = runner.errors
|
||||||
job.return_code = runner.return_code
|
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")
|
send_blank_response(conn, req, 500, "unknown server error while queuing job")
|
||||||
return
|
return
|
||||||
if quick:
|
if quick:
|
||||||
start_time = datetime.datetime.now()
|
start_time = datetime.datetime.now(datetime.UTC)
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now(datetime.UTC)
|
||||||
job_done = False
|
job_done = False
|
||||||
quick_job = None
|
quick_job = None
|
||||||
logging.debug(f"{start_time}: Waiting for a quick job for 30 seconds")
|
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:
|
except:
|
||||||
pass
|
pass
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now(datetime.UTC)
|
||||||
if job_done and (type(quick_job) is Job):
|
if job_done and (type(quick_job) is Job):
|
||||||
send_blank_response(conn, req, 200, job.to_dict(include_data=True))
|
send_blank_response(conn, req, 200, job.to_dict(include_data=True))
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user