diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/completion/list_ntp_servers.sh | 4 | ||||
| -rwxr-xr-x | src/conf_mode/container.py | 31 | ||||
| -rw-r--r-- | src/etc/systemd/system/frr.service.d/override.conf | 1 | ||||
| -rwxr-xr-x | src/op_mode/interfaces.py | 12 | 
4 files changed, 34 insertions, 14 deletions
diff --git a/src/completion/list_ntp_servers.sh b/src/completion/list_ntp_servers.sh deleted file mode 100755 index d0977fbd6..000000000 --- a/src/completion/list_ntp_servers.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -# Completion script used to select specific NTP server -/bin/cli-shell-api -- listEffectiveNodes system ntp server | sed "s/'//g" diff --git a/src/conf_mode/container.py b/src/conf_mode/container.py index 68070ea5b..bf83416b2 100755 --- a/src/conf_mode/container.py +++ b/src/conf_mode/container.py @@ -24,8 +24,10 @@ from vyos.base import Warning  from vyos.config import Config  from vyos.configdict import dict_merge  from vyos.configdict import node_changed +from vyos.configdict import is_node_changed  from vyos.util import call  from vyos.util import cmd +from vyos.util import dict_search  from vyos.util import run  from vyos.util import rc_cmd  from vyos.util import write_file @@ -38,8 +40,9 @@ from vyos import ConfigError  from vyos import airbag  airbag.enable() -config_containers_registry = '/etc/containers/registries.conf' -config_containers_storage = '/etc/containers/storage.conf' +config_containers = '/etc/containers/containers.conf' +config_registry = '/etc/containers/registries.conf' +config_storage = '/etc/containers/storage.conf'  systemd_unit_path = '/run/systemd/system'  def _cmd(command): @@ -83,6 +86,15 @@ def get_config(config=None):          for name in container['name']:              container['name'][name] = dict_merge(default_values, container['name'][name]) +            # T5047: Any container related configuration changed? We only +            # wan't to restart the required containers and not all of them ... +            tmp = is_node_changed(conf, base + ['name', name]) +            if tmp: +                if 'container_restart' not in container: +                    container['container_restart'] = [name] +                else: +                    container['container_restart'].append(name) +              # XXX: T2665: we can not safely rely on the defaults() when there are              # tagNodes in place, it is better to blend in the defaults manually.              if 'port' in container['name'][name]: @@ -335,10 +347,9 @@ def generate_run_arguments(name, container_config):  def generate(container):      # bail out early - looks like removal from running config      if not container: -        if os.path.exists(config_containers_registry): -            os.unlink(config_containers_registry) -        if os.path.exists(config_containers_storage): -            os.unlink(config_containers_storage) +        for file in [config_containers, config_registry, config_storage]: +            if os.path.exists(file): +                os.unlink(file)          return None      if 'network' in container: @@ -390,8 +401,9 @@ def generate(container):                      if rc != 0:                          raise ConfigError(out) -    render(config_containers_registry, 'container/registries.conf.j2', container) -    render(config_containers_storage, 'container/storage.conf.j2', container) +    render(config_containers, 'container/containers.conf.j2', container) +    render(config_registry, 'container/registries.conf.j2', container) +    render(config_storage, 'container/storage.conf.j2', container)      if 'name' in container:          for name, container_config in container['name'].items(): @@ -447,7 +459,8 @@ def apply(container):                          os.unlink(file_path)                  continue -            cmd(f'systemctl restart vyos-container-{name}.service') +            if name in dict_search('container_restart', container): +                cmd(f'systemctl restart vyos-container-{name}.service')      if disabled_new:          call('systemctl daemon-reload') diff --git a/src/etc/systemd/system/frr.service.d/override.conf b/src/etc/systemd/system/frr.service.d/override.conf index 2e2f67f70..2e4b6e295 100644 --- a/src/etc/systemd/system/frr.service.d/override.conf +++ b/src/etc/systemd/system/frr.service.d/override.conf @@ -4,7 +4,6 @@ Before=vyos-router.service  [Service]  LimitNOFILE=4096 -LimitNOFILESoft=4096  ExecStartPre=/bin/bash -c 'mkdir -p /run/frr/config; \               echo "log syslog" > /run/frr/config/frr.conf; \               echo "log facility local7" >> /run/frr/config/frr.conf; \ diff --git a/src/op_mode/interfaces.py b/src/op_mode/interfaces.py index 7d04ec4e3..dd87b5901 100755 --- a/src/op_mode/interfaces.py +++ b/src/op_mode/interfaces.py @@ -406,6 +406,18 @@ def show_counters(raw: bool, intf_name: typing.Optional[str],          return data      return _format_show_counters(data) +def clear_counters(intf_name: typing.Optional[str], +                   intf_type: typing.Optional[str], +                   vif: bool, vrrp: bool): +    for interface in filtered_interfaces(intf_name, intf_type, vif, vrrp): +        interface.operational.clear_counters() + +def reset_counters(intf_name: typing.Optional[str], +                   intf_type: typing.Optional[str], +                   vif: bool, vrrp: bool): +    for interface in filtered_interfaces(intf_name, intf_type, vif, vrrp): +        interface.operational.reset_counters() +  if __name__ == '__main__':      try:          res = vyos.opmode.run(sys.modules[__name__])  | 
