function _M:get_server_list()

in lib/shenyu/register/eureka.lua [35:74]


function  _M:get_server_list()

    local httpc = http:new()

    local res, err = httpc:request_uri(_M.base_url, {
        method = "GET",
        path = _M.path,
        headers = {["Accept"]="application/json"},
    })
    if not res then
        log(ERR, "failed to get server list from eureka. ", err)
    end

    local service = {}

    if res.status == 200 then

        local list_inst_resp = json.decode(res.body)
        local application = list_inst_resp.application
        for k, v in ipairs(application) do

            local instances = v["instance"]

            for i, instance in pairs(instances) do
                local status = instance["status"]
                if status == "UP" then
                    local ipAddr = instance["ipAddr"]
                    local port = instance["port"]["$"]
                    log(INFO, "ipAddr: ", ipAddr)
                    log(INFO, "port: ", port)
                    service[i] = {ip=ipAddr, port=port}
                end
            end
        end
    end

    _M.storage:set("demo", json.encode(service))


end