api7 / api7/adc

Bug: dump missing upstreams and routes

Open
#218 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wontfix
Dominant language
Rust
Stars
70
Forks
15
Avg merge
1h 58m
Merged PRs (30d)
42

Description

Current Behavior

./adc dump --tls-skip-verify --verbose 2 -o service-configuration.yaml

generate empty output for upstreams and routes.
Debug log shown the server return upstreams and routes correctly.

[7:23:16 PM] [APISIX] › ⬤  debug     Get upstreams
GET https://10.0.0.1:9180/apisix/admin/upstreams
Accept: application/json, text/plain, */*
Content-Type: application/json
X-API-KEY: *****
User-Agent: axios/1.7.2
Accept-Encoding: gzip, compress, deflate, br

200 OK
Date: Tue, 17 Dec 2024 11:23:16 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: close
Server: APISIX/3.9.1
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 3600
X-Api-Version: v3

{
    "total": 1,
    "list": [
        {
            "value": {
                "hash_on": "vars",
                "type": "roundrobin",
                "checks": {
                    "active": {
                        "https_verify_certificate": true,
                        "healthy": {
                            "http_statuses": [
                                200,
                                302
                            ],
                            "interval": 1,
                            "successes": 2
                        },
                        "type": "tcp",
                        "http_path": "/",
                        "unhealthy": {
                            "http_statuses": [
                                429,
                                404,
                                500,
                                501,
                                502,
                                503,
                                504,
                                505
                            ],
                            "http_failures": 5,
                            "tcp_failures": 2,
                            "timeouts": 3,
                            "interval": 1
                        },
                        "concurrency": 10,
                        "timeout": 1
                    }
                },
                "create_time": 1718966926,
                "id": "472184775684129492",
                "update_time": 1718966926,
                "keepalive_pool": {
                    "size": 320,
                    "idle_timeout": 60,
                    "requests": 1000
                },
                "nodes": [
                    {
                        "weight": 1,
                        "port": 80,
                        "priority": 0,
                        "host": "10.0.0.206"
                    },
                    {
                        "weight": 1,
                        "port": 80,
                        "priority": 0,
                        "host": "10.0.0.82"
                    }
                ],
                "pass_host": "pass",
                "scheme": "http",
                "name": "ocr-http",
                "timeout": {
                    "send": 6,
                    "connect": 6,
                    "read": 120
                }
            },
            "key": "/apisix/upstreams/472184775684129492",
            "createdIndex": 35,
            "modifiedIndex": 35
        }
    ]
}
Exxpected Behavior

Dump all upstreams and routes.

Steps to Reproduce

./adc dump --tls-skip-verify --verbose 2 -o service-configuration.yaml

Environment
  • APISIX version: 3.9.1
  • ADC version (run adc version): 0.16.2
  • Operating system (run uname -a): Linux manjaro 6.1.119-1-MANJARO x86_64 GNU/Linux

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with ./adc dump --tls-skip-verify --verbose 2 -o service-configuration.yaml against APISIX 3.9.1, then trace how the returned upstream and route lists are processed into the configuration output. Compare the debug responses with service-configuration.yaml; done means the dump includes all upstreams and routes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.