diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2026-02-23 14:37:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-23 14:37:48 +0200 |
| commit | 662b45c159393aa9451c93b168da415021949857 (patch) | |
| tree | 23fc7e5dbcaf84c237c9c7c5c0707d76e77742a8 | |
| parent | 61ba7ee632fd2ee8fe58b636087e539da89c6e65 (diff) | |
| parent | d73eda6c858af3d266fb1755d566864ad977e7ab (diff) | |
| download | vyos-1x-662b45c159393aa9451c93b168da415021949857.tar.gz vyos-1x-662b45c159393aa9451c93b168da415021949857.zip | |
Merge pull request #5005 from c-po/igmp-proxy
igmp-proxy: T8295: render appropriate systemd unit file
| -rw-r--r-- | op-mode-definitions/monitor-log.xml.in | 6 | ||||
| -rwxr-xr-x | op-mode-definitions/show-log.xml.in | 6 | ||||
| -rw-r--r-- | python/vyos/defaults.py | 1 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_protocols_igmp-proxy.py | 3 | ||||
| -rwxr-xr-x | src/conf_mode/protocols_igmp-proxy.py | 17 | ||||
| -rw-r--r-- | src/systemd/igmpproxy.service | 10 |
6 files changed, 34 insertions, 9 deletions
diff --git a/op-mode-definitions/monitor-log.xml.in b/op-mode-definitions/monitor-log.xml.in index 0195e89b6..fe9fa0051 100644 --- a/op-mode-definitions/monitor-log.xml.in +++ b/op-mode-definitions/monitor-log.xml.in @@ -129,6 +129,12 @@ </properties> <command>journalctl --no-hostname --boot --follow --unit haproxy.service</command> </leafNode> + <leafNode name="igmp-proxy"> + <properties> + <help>Monitor last lines of IGMP multicast proxy</help> + </properties> + <command>journalctl --no-hostname --boot --follow --unit igmpproxy.service</command> + </leafNode> <leafNode name="ipoe-server"> <properties> <help>Monitor last lines of IP over Ethernet server log</help> diff --git a/op-mode-definitions/show-log.xml.in b/op-mode-definitions/show-log.xml.in index 1f28418e5..302188602 100755 --- a/op-mode-definitions/show-log.xml.in +++ b/op-mode-definitions/show-log.xml.in @@ -587,6 +587,12 @@ </properties> <command>journalctl --no-hostname --boot --unit nginx.service</command> </leafNode> + <leafNode name="igmp-proxy"> + <properties> + <help>Show log for IGMP multicast proxy</help> + </properties> + <command>journalctl --no-hostname --boot --unit igmpproxy.service</command> + </leafNode> <tagNode name="image"> <properties> <help>Show contents of master log file for image</help> diff --git a/python/vyos/defaults.py b/python/vyos/defaults.py index fbaf18919..c584ddd77 100644 --- a/python/vyos/defaults.py +++ b/python/vyos/defaults.py @@ -57,6 +57,7 @@ internal_ports = { config_files = { 'sshd_user_ca' : '/run/sshd/trusted_user_ca', + 'igmp_proxy' : '/run/igmpproxy/igmpproxy.conf', } config_status = '/tmp/vyos-config-status' diff --git a/smoketest/scripts/cli/test_protocols_igmp-proxy.py b/smoketest/scripts/cli/test_protocols_igmp-proxy.py index 799d20252..64244ec38 100755 --- a/smoketest/scripts/cli/test_protocols_igmp-proxy.py +++ b/smoketest/scripts/cli/test_protocols_igmp-proxy.py @@ -19,11 +19,12 @@ import unittest from base_vyostest_shim import VyOSUnitTestSHIM from vyos.configsession import ConfigSessionError +from vyos.defaults import config_files from vyos.utils.file import read_file from vyos.utils.process import process_named_running PROCESS_NAME = 'igmpproxy' -IGMP_PROXY_CONF = '/etc/igmpproxy.conf' +IGMP_PROXY_CONF = config_files['igmp_proxy'] base_path = ['protocols', 'igmp-proxy'] upstream_if = 'eth1' downstream_if = 'eth2' diff --git a/src/conf_mode/protocols_igmp-proxy.py b/src/conf_mode/protocols_igmp-proxy.py index c2d2fea5b..7f53882b0 100755 --- a/src/conf_mode/protocols_igmp-proxy.py +++ b/src/conf_mode/protocols_igmp-proxy.py @@ -21,6 +21,7 @@ from sys import exit from vyos.base import Warning from vyos.config import Config from vyos.configverify import verify_interface_exists +from vyos.defaults import config_files from vyos.template import render from vyos.utils.process import call from vyos.utils.dict import dict_search @@ -28,7 +29,7 @@ from vyos import ConfigError from vyos import airbag airbag.enable() -config_file = r'/etc/igmpproxy.conf' +config_file = config_files['igmp_proxy'] def get_config(config=None): if config: @@ -87,18 +88,18 @@ def generate(igmp_proxy): return None render(config_file, 'igmp-proxy/igmpproxy.conf.j2', igmp_proxy) - return None def apply(igmp_proxy): + service_name = 'igmpproxy.service' if not igmp_proxy or 'disable' in igmp_proxy: - # IGMP Proxy support is removed in the commit - call('systemctl stop igmpproxy.service') - if os.path.exists(config_file): - os.unlink(config_file) - else: - call('systemctl restart igmpproxy.service') + # IGMP Proxy support is removed in the commit + call(f'systemctl stop {service_name}') + if os.path.exists(config_file): + os.unlink(config_file) + return None + call(f'systemctl restart {service_name}') return None if __name__ == '__main__': diff --git a/src/systemd/igmpproxy.service b/src/systemd/igmpproxy.service new file mode 100644 index 000000000..55ab14beb --- /dev/null +++ b/src/systemd/igmpproxy.service @@ -0,0 +1,10 @@ +[Unit] +Description=IGMP multicast proxy +After=vyos-router.service +ConditionPathExists=/run/igmpproxy/igmpproxy.conf + +[Service] +Type=simple +Restart=on-failure +RestartSec=10 +ExecStart=/usr/sbin/igmpproxy -n /run/igmpproxy/igmpproxy.conf |
