Fix timestamps in sist2-admin #359

This commit is contained in:
simon987 2023-05-25 20:51:06 -04:00
parent 6bf2b4c74d
commit f0fd708082
5 changed files with 11 additions and 13 deletions

View File

@ -44,8 +44,7 @@ export default {
return "";
}
const date = Date.parse(dateString);
return moment(date).fromNow();
return moment.utc(dateString).local().fromNow();
}
}
}

View File

@ -121,7 +121,7 @@ export default {
id: row.id,
name: row.name,
duration: this.taskDuration(row),
time: moment(row.started).format("dd, MMM Do YYYY, HH:mm:ss"),
time: moment.utc(row.started).local().format("dd, MMM Do YYYY, HH:mm:ss"),
logs: row.id,
status: row.return_code === 0 ? "ok" : "failed"
}));

View File

@ -80,9 +80,8 @@ async def get_jobs():
@app.put("/api/job/{name:str}")
async def update_job(name: str, new_job: Sist2Job):
# TODO: Check etag
new_job.last_modified = datetime.now()
new_job.last_modified = datetime.utcnow()
job = db["jobs"][name]
if not job:
raise HTTPException(status_code=404)
@ -135,7 +134,7 @@ async def kill_job(task_id: str):
def _run_job(job: Sist2Job):
job.last_modified = datetime.now()
job.last_modified = datetime.utcnow()
if job.status == JobStatus("created"):
job.status = JobStatus("started")
db["jobs"][job.name] = job
@ -352,7 +351,7 @@ async def ws_tail_log(websocket: WebSocket, task_id: str, n: int):
def main():
uvicorn.run(app, port=WEBSERVER_PORT, host="0.0.0.0")
uvicorn.run(app, port=WEBSERVER_PORT, host="0.0.0.0", timeout_graceful_shutdown=0)
def initialize_db():

View File

@ -53,7 +53,7 @@ class Sist2Job(BaseModel):
name=name,
scan_options=ScanOptions(path="/"),
index_options=IndexOptions(),
last_modified=datetime.now(),
last_modified=datetime.utcnow(),
cron_expression="0 0 * * *"
)
@ -111,7 +111,7 @@ class Sist2Task:
self._logger.info(json.dumps(log_json))
def run(self, sist2: Sist2, db: PersistentState):
self.started = datetime.now()
self.started = datetime.utcnow()
logger.info(f"Started task {self.display_name}")
@ -132,14 +132,14 @@ class Sist2ScanTask(Sist2Task):
self.pid = pid
return_code = sist2.scan(self.job.scan_options, logs_cb=self.log_callback, set_pid_cb=set_pid)
self.ended = datetime.now()
self.ended = datetime.utcnow()
if return_code != 0:
self._logger.error(json.dumps({"sist2-admin": f"Process returned non-zero exit code ({return_code})"}))
logger.info(f"Task {self.display_name} failed ({return_code})")
else:
self.job.index_path = self.job.scan_options.output
self.job.last_index_date = datetime.now()
self.job.last_index_date = datetime.utcnow()
self.job.do_full_scan = False
db["jobs"][self.job.name] = self.job
self._logger.info(json.dumps({"sist2-admin": f"Save last_index_date={self.job.last_index_date}"}))
@ -172,7 +172,7 @@ class Sist2IndexTask(Sist2Task):
self.job.index_options.path = self.job.scan_options.output
return_code = sist2.index(self.job.index_options, logs_cb=self.log_callback)
self.ended = datetime.now()
self.ended = datetime.utcnow()
duration = self.ended - self.started

View File

@ -238,7 +238,7 @@ class Sist2:
if options.output is None:
options.output = os.path.join(
self._data_dir,
f"scan-{options.name.replace('/', '_')}-{datetime.now()}.sist2"
f"scan-{options.name.replace('/', '_')}-{datetime.utcnow()}.sist2"
)
args = [