diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/firewall.py | 4 | ||||
| -rw-r--r-- | python/vyos/util.py | 13 | 
2 files changed, 13 insertions, 4 deletions
| diff --git a/python/vyos/firewall.py b/python/vyos/firewall.py index 808e90e38..a2e133217 100644 --- a/python/vyos/firewall.py +++ b/python/vyos/firewall.py @@ -190,8 +190,8 @@ def parse_rule(rule_conf, fw_name, rule_id, ip_name):  def parse_tcp_flags(flags):      include = [flag for flag in flags if flag != 'not'] -    all_flags = include + [flag for flag in flags['not']] if 'not' in flags else [] -    return f'tcp flags & ({"|".join(all_flags)}) == {"|".join(include)}' +    exclude = list(flags['not']) if 'not' in flags else [] +    return f'tcp flags & ({"|".join(include + exclude)}) == {"|".join(include)}'  def parse_time(time):      out = [] diff --git a/python/vyos/util.py b/python/vyos/util.py index 954c6670d..571d43754 100644 --- a/python/vyos/util.py +++ b/python/vyos/util.py @@ -952,14 +952,23 @@ def install_into_config(conf, config_paths, override_prompt=True):          return None      count = 0 +    failed = []      for path in config_paths:          if override_prompt and conf.exists(path) and not conf.is_multi(path):              if not ask_yes_no(f'Config node "{node}" already exists. Do you want to overwrite it?'):                  continue -        cmd(f'/opt/vyatta/sbin/my_set {path}') -        count += 1 +        try: +            cmd(f'/opt/vyatta/sbin/my_set {path}') +            count += 1 +        except: +            failed.append(path) + +    if failed: +        print(f'Failed to install {len(failed)} value(s). Commands to manually install:') +        for path in failed: +            print(f'set {path}')      if count > 0:          print(f'{count} value(s) installed. Use "compare" to see the pending changes, and "commit" to apply.') | 
