Add support for stop_grace_period

This commit is contained in:
Fabian 2024-12-01 14:04:33 +01:00
parent 602c3a45cf
commit 6382ca16c3

17
main.py
View File

@ -1,11 +1,26 @@
#!/usr/bin/env python3
import argparse
import re
import sys
from datetime import timedelta
from pathlib import Path
import yaml
TIME_REGEX = re.compile(r'((?P<hours>\d+?)h)?((?P<minutes>\d+?)m)?((?P<seconds>\d+?)s)?')
def parse_time(time_str):
parts = TIME_REGEX.match(time_str)
if not parts or parts.span() == (0, 0):
return
parts = parts.groupdict()
time_params = {}
for name, param in parts.items():
if param:
time_params[name] = int(param)
return timedelta(**time_params)
class IniFile:
PREAMBLE = "### Generated by dcqc - do not edit ###"
def __init__(self):
@ -196,6 +211,8 @@ def write_service_units(args, yaml_dict):
if unmask:
unit_file["Container"]["Unmask"] = unmask
if "stop_grace_period" in service:
unit_file["Container"]["StopTimeout"] = int(parse_time(service["stop_grace_period"]).total_seconds())
unit_file["Service"] = {}