summaryrefslogtreecommitdiffstats
path: root/cli/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'cli/utils.py')
-rw-r--r--cli/utils.py24
1 files changed, 24 insertions, 0 deletions
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