diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/objects/modes.py | 20 | ||||
-rw-r--r-- | cli/utils.py | 24 |
2 files changed, 24 insertions, 20 deletions
diff --git a/cli/objects/modes.py b/cli/objects/modes.py index e172570..8ede3c8 100644 --- a/cli/objects/modes.py +++ b/cli/objects/modes.py @@ -42,26 +42,6 @@ class OgModes(): help='Boot mode to be set') parsed_args = parser.parse_args(args) - def scope_lookup(scope_id, scope_type, d): - if scope_id == d.get('id') and \ - scope_type == d.get('type'): - return d - for scope in d['scope']: - lookup = scope_lookup(scope_id, - scope_type, - scope) - if lookup is not None: - return lookup - return None - - def ips_in_scope(scope): - if 'ip' in scope: - return [scope['ip']] - ips = [] - for child in scope['scope']: - ips += ips_in_scope(child) - return ips - r = rest.get('/scopes') scopes = r.json() ips = set() diff --git a/cli/utils.py b/cli/utils.py new file mode 100644 index 0000000..f72693c --- /dev/null +++ b/cli/utils.py @@ -0,0 +1,24 @@ +# +# Copyright (C) 2020 Soleta Networks <info@soleta.eu> +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the +# Free Software Foundation, version 3. +# + +def scope_lookup_id(scope_id, scope_type, d): + if scope_id == d.get('id') and scope_type == d.get('type'): + return d + for scope in d['scope']: + lookup = scope_lookup(scope_id, scope_type, scope) + if lookup is not None: + return lookup + return None + +def ips_in_scope(scope): + if 'ip' in scope: + return [scope['ip']] + ips = [] + for child in scope['scope']: + ips += ips_in_scope(child) + return ips |