diff --git a/ops/pebble.py b/ops/pebble.py index d1f9d275a..35ad53c25 100644 --- a/ops/pebble.py +++ b/ops/pebble.py @@ -86,6 +86,7 @@ 'backoff-delay': str, 'backoff-factor': Optional[int], 'backoff-limit': str, + 'kill-delay': Optional[str], }, total=False) @@ -824,6 +825,7 @@ def __init__(self, name: str, raw: Optional['ServiceDict'] = None): self.backoff_delay = dct.get('backoff-delay', '') self.backoff_factor = dct.get('backoff-factor') self.backoff_limit = dct.get('backoff-limit', '') + self.kill_delay = dct.get('kill-delay', '') def to_dict(self) -> 'ServiceDict': """Convert this service object to its dict representation.""" @@ -848,6 +850,7 @@ def to_dict(self) -> 'ServiceDict': ('backoff-delay', self.backoff_delay), ('backoff-factor', self.backoff_factor), ('backoff-limit', self.backoff_limit), + ('kill-delay', self.kill_delay), ] dct = {name: value for name, value in fields if value} return typing.cast('ServiceDict', dct) diff --git a/test/test_pebble.py b/test/test_pebble.py index 76d205d92..6d172a2fd 100644 --- a/test/test_pebble.py +++ b/test/test_pebble.py @@ -688,6 +688,7 @@ def _assert_empty(self, service, name): self.assertEqual(service.backoff_delay, '') self.assertIs(service.backoff_factor, None) self.assertEqual(service.backoff_limit, '') + self.assertIs(service.kill_delay, '') self.assertEqual(service.to_dict(), {}) def test_name_only(self): @@ -719,6 +720,7 @@ def test_dict(self): 'backoff-delay': '1s', 'backoff-factor': 4, 'backoff-limit': '10s', + 'kill-delay': '420s', } s = pebble.Service('Name 2', d) self.assertEqual(s.name, 'Name 2') @@ -741,6 +743,7 @@ def test_dict(self): self.assertEqual(s.backoff_delay, '1s') self.assertEqual(s.backoff_factor, 4) self.assertEqual(s.backoff_limit, '10s') + self.assertEqual(s.kill_delay, '420s') self.assertEqual(s.to_dict(), d)