add parameters for get topology
Change-Id: I18a7fa92aa12516c5b7a24b93e4c7b7a556a9e4e
This commit is contained in:
parent
b6bcaa3031
commit
eab3e79587
@ -19,3 +19,9 @@ def import_versioned_module(version, submodule=None):
|
||||
if submodule:
|
||||
module = '.'.join((module, submodule))
|
||||
return importutils.import_module(module)
|
||||
|
||||
|
||||
def args_to_dict(args, attrs):
|
||||
return {(attr, value)
|
||||
for attr, value in [(attr, getattr(args, attr)) for attr in attrs]
|
||||
if value is not None}
|
||||
|
@ -15,10 +15,27 @@ from cliff import show
|
||||
|
||||
# noinspection PyAbstractClass
|
||||
class TopologyShow(show.ShowOne):
|
||||
"""Show the topology of the system"""
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(TopologyShow, self).get_parser(prog_name)
|
||||
parser.add_argument("--edges",
|
||||
type=lambda s: [edge for edge in s.split(',')],
|
||||
metavar="<edge type,edge type>",
|
||||
help="list of edges type (separated by ',')")
|
||||
parser.add_argument("--vertices",
|
||||
type=lambda s: [vertex for vertex in s.split(',')],
|
||||
metavar="<vertex type,vertex type>",
|
||||
help="list of vertices types (separated by ',')")
|
||||
parser.add_argument("--depth", type=int,
|
||||
help="the depth of the topology")
|
||||
return parser
|
||||
|
||||
def formatter_default(self):
|
||||
return "json"
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
topology = self.app.client.topology.get()
|
||||
topology = self.app.client.topology.get(edges=parsed_args.edges,
|
||||
vertices=parsed_args.vertices,
|
||||
depth=parsed_args.depth)
|
||||
return self.dict2columns(topology)
|
||||
|
@ -17,7 +17,13 @@ class Topology(object):
|
||||
def __init__(self, api):
|
||||
self.api = api
|
||||
|
||||
def get(self):
|
||||
"""Get a topology """
|
||||
def get(self, edges=None, vertices=None, depth=None):
|
||||
"""Get a topology
|
||||
|
||||
return self.api.get(self.URL).json()
|
||||
:param depth: the depth of the topology graph
|
||||
:param vertices: list of vertices types
|
||||
:param edges: list of edges type
|
||||
"""
|
||||
|
||||
params = dict(edges=edges, vertices=vertices, depth=depth)
|
||||
return self.api.get(self.URL, params=params).json()
|
||||
|
Loading…
x
Reference in New Issue
Block a user