def get_service(request):
""" Returns a list of all services or of the selected service
:Example: curl -X GET http://localhost:8082/foglamp/service
:Example: curl -X GET http://localhost:8082/foglamp/service?name=X&type=Storage
"""
service_name = request.query['name'] if 'name' in request.query else None
service_type = request.query['type'] if 'type' in request.query else None
try:
if not service_name and not service_type:
services_list = Service.Instances.all()
elif service_name and not service_type:
services_list = Service.Instances.get(name=service_name)
elif not service_name and service_type:
services_list = Service.Instances.get(s_type=service_type)
else:
services_list = Service.Instances.filter_by_name_and_type(
name=service_name, s_type=service_type
)
except Service.DoesNotExist as ex:
raise web.HTTPBadRequest(reason="Invalid service name and/or type provided" + str(ex))
services = []
for service in services_list:
svc = dict()
svc["id"] = service._id
svc["name"] = service._name
svc["type"] = service._type
svc["address"] = service._address
svc["management_port"] = service._management_port
svc["protocol"] = service._protocol
svc["status"] = service._status
if service._port:
svc["service_port"] = service._port
services.append(svc)
return web.json_response({"services": services})
评论列表
文章目录