change topology api to get complex query
Implements: blueprint get-topology-api Change-Id: I706684992b8f9e7c1bda4a9f386c78ab9c4adb54
This commit is contained in:
parent
f90209b0c7
commit
aed0bb924e
vitrageclient/v1
@ -19,16 +19,15 @@ class TopologyShow(show.ShowOne):
|
||||
|
||||
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")
|
||||
parser.add_argument("--filter",
|
||||
metavar="<query>",
|
||||
help="query for the graph)")
|
||||
|
||||
parser.add_argument("--limit", type=int,
|
||||
metavar="<depth>",
|
||||
help="the depth of the topology graph")
|
||||
|
||||
parser.add_argument("--root", help="the root of the topology graph")
|
||||
|
||||
parser.add_argument('--graph-type', choices=['tree', 'graph'],
|
||||
default='graph', dest='type',
|
||||
@ -41,8 +40,8 @@ class TopologyShow(show.ShowOne):
|
||||
return "json"
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
topology = self.app.client.topology.get(edges=parsed_args.edges,
|
||||
vertices=parsed_args.vertices,
|
||||
depth=parsed_args.depth,
|
||||
graph_type=parsed_args.type)
|
||||
topology = self.app.client.topology.get(limit=parsed_args.limit,
|
||||
graph_type=parsed_args.type,
|
||||
query=parsed_args.filter,
|
||||
root=parsed_args.root)
|
||||
return self.dict2columns(topology)
|
||||
|
@ -9,6 +9,7 @@
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import json
|
||||
|
||||
|
||||
class Topology(object):
|
||||
@ -17,15 +18,18 @@ class Topology(object):
|
||||
def __init__(self, api):
|
||||
self.api = api
|
||||
|
||||
def get(self, edges=None, vertices=None, depth=None, graph_type='graph'):
|
||||
def get(self, depth=None, graph_type='graph', query=None, root=None,
|
||||
limit=None):
|
||||
"""Get a topology
|
||||
|
||||
:param limit: the depth of the topology graph
|
||||
:param root: the root of the topology graph
|
||||
:param query: the query filter for the topology
|
||||
:param graph_type: graph can be tree or graph
|
||||
: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,
|
||||
graph_type=graph_type)
|
||||
return self.api.get(self.URL, params=params).json()
|
||||
params = dict(depth=depth, graph_type=graph_type,
|
||||
query=json.loads(query),
|
||||
root=root)
|
||||
return self.api.post(self.URL, json=params).json()
|
||||
|
Loading…
x
Reference in New Issue
Block a user