Skip to content

Commit bf22eba

Browse files
Replace datetime.utcnow() with datetime.now(timezone.utc)
python/cpython#103857
1 parent f2883fe commit bf22eba

File tree

10 files changed

+21
-19
lines changed

10 files changed

+21
-19
lines changed

cli/src/pcluster/cli/commands/configure/networking.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
DEFAULT_AWS_REGION_NAME = "us-east-1"
3333
LOGGER = logging.getLogger(__name__)
34-
TIMESTAMP = "-{:%Y%m%d%H%M%S}".format(datetime.datetime.utcnow())
34+
TIMESTAMP = "-{:%Y%m%d%H%M%S}".format(datetime.datetime.now(datetime.timezone.utc))
3535
HEAD_NODE_SUBNET_IPS = 250
3636

3737
if sys.version_info >= (3, 4):

cli/src/pcluster/templates/awsbatch_builder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# or in the "LICENSE.txt" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
99
# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and
1010
# limitations under the License.
11-
from datetime import datetime
11+
from datetime import datetime, timezone
1212

1313
from aws_cdk import aws_batch as batch
1414
from aws_cdk import aws_cloudformation as cfn
@@ -524,7 +524,7 @@ def _add_code_build_policy(self):
524524
)
525525

526526
def _add_code_build_docker_image_builder_project(self):
527-
timestamp = f"{datetime.utcnow().strftime('%Y%m%d%H%M')}"
527+
timestamp = f"{datetime.now(timezone.utc).strftime('%Y%m%d%H%M')}"
528528
log_group_name = (
529529
f"{CW_LOG_GROUP_NAME_PREFIX}codebuild/{self.stack_name}-CodeBuildDockerImageBuilderProject-{timestamp}"
530530
)

cli/src/pcluster/templates/cluster_stack.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#
1919
import json
2020
from collections import defaultdict, namedtuple
21-
from datetime import datetime
21+
from datetime import datetime, timezone
2222
from typing import Union
2323

2424
from aws_cdk import aws_cloudformation as cfn
@@ -128,15 +128,15 @@ def __init__(
128128
self._launch_template_builder = CdkLaunchTemplateBuilder()
129129
self.config = cluster_config
130130
self.bucket = bucket
131-
self.timestamp = datetime.utcnow().strftime("%Y%m%d%H%M%S")
131+
self.timestamp = datetime.now(timezone.utc).strftime("%Y%m%d%H%M%S")
132132
if self.config.is_cw_logging_enabled:
133133
if log_group_name:
134134
# pcluster update keep the log group,
135135
# It has to be passed in order to avoid the change of log group name because of the suffix.
136136
self.log_group_name = log_group_name
137137
else:
138138
# pcluster create create a log group with timestamp suffix
139-
timestamp = f"{datetime.utcnow().strftime('%Y%m%d%H%M')}"
139+
timestamp = f"{datetime.now(timezone.utc).strftime('%Y%m%d%H%M')}"
140140
self.log_group_name = f"{CW_LOG_GROUP_NAME_PREFIX}{self.stack.stack_name}-{timestamp}"
141141

142142
self.shared_storage_infos = {storage_type: [] for storage_type in SharedStorageType}

cli/src/pcluster/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def to_utc_datetime(time_in, default_timezone=datetime.timezone.utc) -> datetime
199199
if isinstance(time_in, int):
200200
if time_in > 1e12:
201201
time_in /= 1000
202-
time_ = datetime.datetime.utcfromtimestamp(time_in)
202+
time_ = datetime.datetime.fromtimestamp(time_in, tz=datetime.timezone.utc)
203203
time_ = time_.replace(tzinfo=datetime.timezone.utc)
204204
elif isinstance(time_in, str):
205205
time_ = dateutil.parser.parse(time_in)

cli/tests/pcluster/templates/test_cluster_stack.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import os
1414
import re
1515
from abc import ABC, abstractmethod
16-
from datetime import datetime
16+
from datetime import datetime, timezone
1717
from typing import Any, Dict, List
1818

1919
import pytest
@@ -970,7 +970,7 @@ def test_head_node_bootstrap_timeout(mocker, config_file_name, expected_head_nod
970970
)
971971
assert_that(
972972
generated_template["Resources"]
973-
.get("HeadNodeWaitCondition" + datetime.utcnow().strftime("%Y%m%d%H%M%S"))
973+
.get("HeadNodeWaitCondition" + datetime.now(timezone.utc).strftime("%Y%m%d%H%M%S"))
974974
.get("Properties")
975975
.get("Timeout")
976976
).is_equal_to(expected_head_node_bootstrap_timeout)

tests/integration-tests/benchmarks/common/metrics_reporter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def publish_compute_nodes_metric(scheduler_commands, max_monitoring_time, region
2929
metrics_pub = MetricsPublisher(region)
3030
compute_nodes_time_series = []
3131
ec2_nodes_time_series = []
32-
timestamps = [datetime.datetime.utcnow()]
32+
timestamps = [datetime.datetime.now(datetime.timezone.utc)]
3333

3434
@retry(
3535
# Retry until EC2 and Scheduler capacities scale down to 0
@@ -61,7 +61,7 @@ def _watch_compute_nodes_allocation():
6161
):
6262
ec2_nodes_time_series.append(ec2_instances_count)
6363
compute_nodes_time_series.append(compute_nodes)
64-
timestamps.append(datetime.datetime.utcnow())
64+
timestamps.append(datetime.datetime.now(datetime.timezone.utc))
6565
except Exception as e:
6666
logging.warning("Failed while watching nodes allocation with exception: %s", e)
6767
raise
@@ -72,7 +72,7 @@ def _watch_compute_nodes_allocation():
7272
# ignoring this error in order to perform assertions on the collected data.
7373
pass
7474

75-
end_time = datetime.datetime.utcnow()
75+
end_time = datetime.datetime.now(datetime.timezone.utc)
7676
logging.info(
7777
"Monitoring completed: compute_nodes_time_series [ %s ], timestamps [ %s ]",
7878
" ".join(map(str, compute_nodes_time_series)),

tests/integration-tests/benchmarks/test_scaling_performance.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def test_scaling_performance(
4747
scheduler_commands = scheduler_commands_factory(remote_command_executor)
4848

4949
logging.info("Starting benchmark with following parameters: %s", benchmark_params)
50-
start_time = datetime.datetime.utcnow()
50+
start_time = datetime.datetime.now(datetime.timezone.utc)
5151
kwargs = {"nodes": benchmark_params["scaling_target"]}
5252
result = scheduler_commands.submit_command("sleep {0}".format(benchmark_params["job_duration"]), **kwargs)
5353
scheduler_commands.assert_job_submitted(result.stdout)

tests/integration-tests/benchmarks/test_scheduler_performance.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def test_scheduler_performance(
5252
scheduler_commands = scheduler_commands_factory(remote_command_executor)
5353

5454
logging.info("Starting benchmark with following parameters: %s", benchmark_params)
55-
start_time = datetime.datetime.utcnow()
55+
start_time = datetime.datetime.now(datetime.timezone.utc)
5656
_submit_jobs(benchmark_params, scheduler_commands, cluster, scheduler_commands_factory)
5757
compute_nodes_time_series, timestamps, end_time = publish_compute_nodes_metric(
5858
scheduler_commands,

tests/integration-tests/reports_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ def generate_cw_report(test_results_dir, namespace, aws_region, timestamp_day_st
3838
if start_timestamp is not None:
3939
timestamp = datetime.datetime.fromtimestamp(start_timestamp)
4040
elif timestamp_day_start:
41-
timestamp = datetime.datetime.combine(datetime.datetime.utcnow(), datetime.time())
41+
timestamp = datetime.datetime.combine(datetime.datetime.now(datetime.timezone.utc), datetime.time())
4242
else:
43-
timestamp = datetime.datetime.utcnow()
43+
timestamp = datetime.datetime.now(datetime.timezone.utc)
4444
for category, dictionary in report.items():
4545
if category == "all":
4646
_put_metrics(metric_pub, namespace, dictionary, [], timestamp)

tests/integration-tests/tests/storage/test_fsx_lustre.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ def test_fsx_lustre_configuration_options(
9393
bucket_name = s3_bucket_factory()
9494
bucket = boto3.resource("s3", region_name=region).Bucket(bucket_name)
9595
bucket.upload_file(str(test_datadir / "s3_test_file"), "s3_test_file")
96-
weekly_maintenance_start_time = (datetime.datetime.utcnow() + datetime.timedelta(minutes=60)).strftime("%u:%H:%M")
96+
weekly_maintenance_start_time = (
97+
datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(minutes=60)
98+
).strftime("%u:%H:%M")
9799
cluster_config = pcluster_config_reader(
98100
bucket_name=bucket_name,
99101
mount_dir=mount_dir,
@@ -247,7 +249,7 @@ def test_fsx_lustre_backup(region, pcluster_config_reader, clusters_factory, sch
247249
248250
"""
249251
mount_dir = "/fsx_mount_dir"
250-
daily_automatic_backup_start_time = datetime.datetime.utcnow() + datetime.timedelta(minutes=15)
252+
daily_automatic_backup_start_time = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(minutes=15)
251253
logging.info(f"daily_automatic_backup_start_time: {daily_automatic_backup_start_time}")
252254
cluster_config = pcluster_config_reader(
253255
mount_dir=mount_dir, daily_automatic_backup_start_time=daily_automatic_backup_start_time.strftime("%H:%M")
@@ -670,7 +672,7 @@ def monitor_automatic_backup_creation(fsx_fs_id, region, backup_start_time):
670672
def sleep_until_automatic_backup_creation_start_time(fsx_fs_id, backup_start_time):
671673
"""Wait for the automatic backup of the given file system to start."""
672674
logging.info(f"Sleeping until time when {fsx_fs_id}'s backup creation should start at {backup_start_time}")
673-
remaining_time = (backup_start_time - datetime.datetime.utcnow()).total_seconds()
675+
remaining_time = (backup_start_time - datetime.datetime.now(datetime.timezone.utc)).total_seconds()
674676
if remaining_time > 0:
675677
time.sleep(remaining_time)
676678

0 commit comments

Comments
 (0)