service_registry.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:FogLAMP 作者: foglamp 项目源码 文件源码
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})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号