Add utils.py

Move auxiliary code that will be used by several objects. In this case,
scope filtering and searching by id is going to be used by 'send wol'
too.

Avoid duplicating this code creating utils.py
master
Jose M. Guisado 2021-03-29 13:42:43 +02:00 committed by OpenGnSys Support Team
parent 565e798ef9
commit be84b0a15c
2 changed files with 24 additions and 20 deletions

View File

@ -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()

24
cli/utils.py 100644
View File

@ -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