From 102c25d4dd16483f37fdf6c68f27fb129a1e632f Mon Sep 17 00:00:00 2001 From: Matthew Larson Date: Tue, 16 Apr 2024 16:38:07 -0500 Subject: [PATCH] Default to time.time() on POSIX --- admin/docker/docker-compose-internal-lb.yml | 6 ------ admin/docker/docker-compose.aws.yml | 6 ------ admin/docker/docker-compose.azure.yml | 6 ------ admin/docker/docker-compose.posix.yml | 8 -------- admin/docker/docker-compose.yml | 6 ------ hsds/util/timeUtil.py | 15 +++++++++++++- tests/integ/broadcast_test.py | 22 --------------------- tests/integ/value_test.py | 13 +++++++----- 8 files changed, 22 insertions(+), 60 deletions(-) diff --git a/admin/docker/docker-compose-internal-lb.yml b/admin/docker/docker-compose-internal-lb.yml index 0656e8b9..7cf10004 100644 --- a/admin/docker/docker-compose-internal-lb.yml +++ b/admin/docker/docker-compose-internal-lb.yml @@ -27,9 +27,6 @@ services: - NODE_TYPE=dn - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${DN_PORT} logging: @@ -50,9 +47,6 @@ services: - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - HSDS_ENDPOINT=${HSDS_ENDPOINT} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${SN_PORT_RANGE}:${SN_PORT} diff --git a/admin/docker/docker-compose.aws.yml b/admin/docker/docker-compose.aws.yml index b0357e3a..2e037edb 100644 --- a/admin/docker/docker-compose.aws.yml +++ b/admin/docker/docker-compose.aws.yml @@ -31,9 +31,6 @@ services: - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - BUCKET_NAME=${BUCKET_NAME} - LOG_LEVEL=${LOG_LEVEL} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${DN_PORT} depends_on: @@ -57,9 +54,6 @@ services: - BUCKET_NAME=${BUCKET_NAME} - LOG_LEVEL=${LOG_LEVEL} - HSDS_ENDPOINT=${HSDS_ENDPOINT} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${SN_PORT_RANGE}:${SN_PORT} depends_on: diff --git a/admin/docker/docker-compose.azure.yml b/admin/docker/docker-compose.azure.yml index 9c7045e2..993d287e 100644 --- a/admin/docker/docker-compose.azure.yml +++ b/admin/docker/docker-compose.azure.yml @@ -25,9 +25,6 @@ services: - AZURE_CONNECTION_STRING=${AZURE_CONNECTION_STRING} - BUCKET_NAME=${BUCKET_NAME} - LOG_LEVEL=${LOG_LEVEL} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${DN_PORT} depends_on: @@ -48,9 +45,6 @@ services: - BUCKET_NAME=${BUCKET_NAME} - LOG_LEVEL=${LOG_LEVEL} - HSDS_ENDPOINT=${HSDS_ENDPOINT} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${SN_PORT_RANGE}:${SN_PORT} depends_on: diff --git a/admin/docker/docker-compose.posix.yml b/admin/docker/docker-compose.posix.yml index 930f1f49..c07d9353 100644 --- a/admin/docker/docker-compose.posix.yml +++ b/admin/docker/docker-compose.posix.yml @@ -24,10 +24,6 @@ services: - NODE_TYPE=dn - ROOT_DIR=/data - BUCKET_NAME=${BUCKET_NAME} - - LOG_LEVEL=${LOG_LEVEL} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${DN_PORT} depends_on: @@ -47,10 +43,6 @@ services: - ROOT_DIR=/data - BUCKET_NAME=${BUCKET_NAME} - HSDS_ENDPOINT=${HSDS_ENDPOINT} - - LOG_LEVEL=${LOG_LEVEL} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${SN_PORT_RANGE}:${SN_PORT} depends_on: diff --git a/admin/docker/docker-compose.yml b/admin/docker/docker-compose.yml index 3a00b6e0..cc63fefd 100644 --- a/admin/docker/docker-compose.yml +++ b/admin/docker/docker-compose.yml @@ -31,9 +31,6 @@ services: - AZURE_CONNECTION_STRING=${AZURE_CONNECTION_STRING} - BUCKET_NAME=${BUCKET_NAME} - LOG_LEVEL=${LOG_LEVEL} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${DN_PORT} depends_on: @@ -57,9 +54,6 @@ services: - BUCKET_NAME=${BUCKET_NAME} - LOG_LEVEL=${LOG_LEVEL} - HSDS_ENDPOINT=${HSDS_ENDPOINT} - - MAX_SCAN_DURATION=${MAX_SCAN_DURATION} - - FLUSH_TIMEOUT=${FLUSH_TIMEOUT} - - FLUSH_SLEEP_INTERVAL=${FLUSH_SLEEP_INTERVAL} ports: - ${SN_PORT_RANGE}:${SN_PORT} depends_on: diff --git a/hsds/util/timeUtil.py b/hsds/util/timeUtil.py index a1e904ec..e4ae9d3f 100755 --- a/hsds/util/timeUtil.py +++ b/hsds/util/timeUtil.py @@ -11,6 +11,7 @@ ############################################################################## from datetime import datetime import time +import os import pytz @@ -67,4 +68,16 @@ def getNow(app): Returns a precise timestamp even on platforms where time.time() has low resolution (e.g. Windows) """ - return (time.perf_counter() - app["start_time_relative"]) + app["start_time"] + system = os.name + current_time = 0 + + if system == "nt": + # Windows + current_time = (time.perf_counter() - app["start_time_relative"]) + app["start_time"] + elif system == "posix": + # Unix + current_time = time.time() + else: + raise ValueError(f"Unsupported OS: {system}") + + return current_time diff --git a/tests/integ/broadcast_test.py b/tests/integ/broadcast_test.py index f480e637..e780a4b4 100755 --- a/tests/integ/broadcast_test.py +++ b/tests/integ/broadcast_test.py @@ -36,28 +36,6 @@ def getRootUUID(self, domain, username=None, password=None): domain, username=username, password=password, session=self.session ) - def checkVerbose(self, dset_id, headers=None, expected=None): - # do a flush with rescan, then check the expected return values are correct - req = f"{self.endpoint}/" - params = {"flush": 1, "rescan": 1} - rsp = self.session.put(req, params=params, headers=headers) - # should get a NO_CONTENT code, - self.assertEqual(rsp.status_code, 204) - - # do a get and verify the additional keys are - req = f"{self.endpoint}/datasets/{dset_id}" - params = {"verbose": 1} - - rsp = self.session.get(req, params=params, headers=headers) - self.assertEqual(rsp.status_code, 200) - rspJson = json.loads(rsp.text) - - for k in expected: - self.assertTrue(k in rspJson) - self.assertEqual(rspJson[k], expected[k]) - - # main - def testPut1DDataset(self): # Test PUT value with broadcast for 1d dataset print("testPut1DDataset", self.base_domain) diff --git a/tests/integ/value_test.py b/tests/integ/value_test.py index d1925fd2..f43517ec 100755 --- a/tests/integ/value_test.py +++ b/tests/integ/value_test.py @@ -40,11 +40,16 @@ def getRootUUID(self, domain, username=None, password=None): def checkVerbose(self, dset_id, headers=None, expected=None): # do a flush with rescan, then check the expected return values are correct + num_retries = 5 req = f"{self.endpoint}/" params = {"flush": 1, "rescan": 1} - rsp = self.session.put(req, params=params, headers=headers) - # should get a NO_CONTENT code, - self.assertEqual(rsp.status_code, 204) + for i in range(num_retries): + rsp = self.session.put(req, params=params, headers=headers) + if (rsp.status_code == 503): + # Retry + continue + # should get a NO_CONTENT code + self.assertEqual(rsp.status_code, 204) # do a get and verify the additional keys are req = f"{self.endpoint}/datasets/{dset_id}" @@ -58,8 +63,6 @@ def checkVerbose(self, dset_id, headers=None, expected=None): self.assertTrue(k in rspJson) self.assertEqual(rspJson[k], expected[k]) - # main - def testPut1DDataset(self): # Test PUT value for 1d dataset print("testPut1DDataset", self.base_domain)