Skip to content

Commit

Permalink
Merge pull request #4056 from vyos/mergify/bp/circinus/pr-4054
Browse files Browse the repository at this point in the history
T6711: Fix restart vrrp missed comma between services (backport #4054)
  • Loading branch information
dmbaturin authored Sep 13, 2024
2 parents 97e58b5 + 3f95581 commit 1c208b6
Showing 1 changed file with 32 additions and 10 deletions.
42 changes: 32 additions & 10 deletions src/op_mode/restart.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
config = ConfigTreeQuery()

service_map = {
'dhcp' : {
'dhcp': {
'systemd_service': 'kea-dhcp4-server',
'path': ['service', 'dhcp-server'],
},
'dhcpv6' : {
'dhcpv6': {
'systemd_service': 'kea-dhcp6-server',
'path': ['service', 'dhcpv6-server'],
},
Expand Down Expand Up @@ -61,24 +61,40 @@
'systemd_service': 'radvd',
'path': ['service', 'router-advert'],
},
'snmp' : {
'snmp': {
'systemd_service': 'snmpd',
},
'ssh' : {
'ssh': {
'systemd_service': 'ssh',
},
'suricata' : {
'suricata': {
'systemd_service': 'suricata',
},
'vrrp' : {
'vrrp': {
'systemd_service': 'keepalived',
'path': ['high-availability', 'vrrp'],
},
'webproxy' : {
'webproxy': {
'systemd_service': 'squid',
},
}
services = typing.Literal['dhcp', 'dhcpv6', 'dns_dynamic', 'dns_forwarding', 'igmp_proxy', 'ipsec', 'mdns_repeater', 'reverse_proxy', 'router_advert', 'snmp', 'ssh', 'suricata' 'vrrp', 'webproxy']
services = typing.Literal[
'dhcp',
'dhcpv6',
'dns_dynamic',
'dns_forwarding',
'igmp_proxy',
'ipsec',
'mdns_repeater',
'reverse_proxy',
'router_advert',
'snmp',
'ssh',
'suricata',
'vrrp',
'webproxy',
]


def _verify(func):
"""Decorator checks if DHCP(v6) config exists"""
Expand All @@ -102,13 +118,18 @@ def _wrapper(*args, **kwargs):

# Check if config does not exist
if not config.exists(path):
raise vyos.opmode.UnconfiguredSubsystem(f'Service {human_name} is not configured!')
raise vyos.opmode.UnconfiguredSubsystem(
f'Service {human_name} is not configured!'
)
if config.exists(path + ['disable']):
raise vyos.opmode.UnconfiguredSubsystem(f'Service {human_name} is disabled!')
raise vyos.opmode.UnconfiguredSubsystem(
f'Service {human_name} is disabled!'
)
return func(*args, **kwargs)

return _wrapper


@_verify
def restart_service(raw: bool, name: services, vrf: typing.Optional[str]):
systemd_service = service_map[name]['systemd_service']
Expand All @@ -117,6 +138,7 @@ def restart_service(raw: bool, name: services, vrf: typing.Optional[str]):
else:
call(f'systemctl restart "{systemd_service}.service"')


if __name__ == '__main__':
try:
res = vyos.opmode.run(sys.modules[__name__])
Expand Down

0 comments on commit 1c208b6

Please sign in to comment.