apigee / apigeecli

This is a tool to interact with Apigee APIs. The tool lets you manage (create, del, get, list) environments, proxies, etc.
Apache License 2.0
51 stars 28 forks source link

feat: adds support for kvm entries upsert #488 #489

Closed srinandan closed 2 months ago

kurtkanaskie commented 2 months ago

Removing an entry from the entries does not remove it, but I think that's as expected.

kurtkanaskie commented 2 months ago

Test for non-json entries

gorun kvms delete --org=$ORG --env=dev --name=issue488
gorun kvms create --org=$ORG --env=dev --name=issue488
gorun kvms entries import --org=apigeex-mint-kurt --env=dev --map=issue488 --file=./testing-issue-488/issue488.json
gorun kvms entries import --org=apigeex-mint-kurt --env=dev --map=issue488 --file=./testing-issue-488/issue488-update.json
gorun kvms entries list --org=apigeex-mint-kurt --env=dev --map=issue488

test issue488.json file

{
    "keyValueEntries": [
        {
            "name": "basepath",
            "value": "/chris/duncan"
        },
        {
            "name": "key1",
            "value": "value1"
        },
        {
            "name": "pathsuffix",
            "value": "/is/great"
        }
    ],
    "nextPageToken": ""
}

Test issue488-update.json file

{
    "keyValueEntries": [
        {
            "name": "basepath",
            "value": "/christopher/duncan"
        },
        {
            "name": "pathsuffix",
            "value": "/is/great"
        }
    ],
    "nextPageToken": ""
}
kurtkanaskie commented 2 months ago

Test for issue4880json

gorun kvms delete --org=$ORG --env=dev --name=issue488-json
gorun kvms create --org=$ORG --env=dev --name=issue488-json
gorun kvms entries import --org=$ORG --env=dev --map=issue488-json --file=./testing-issue-488/issue488-json.json 
gorun kvms entries list --org=apigeex-mint-kurt --env=dev --map=issue488

gorun kvms entries import --org=$ORG --env=dev --map=issue488-json --file=./testing-issue-488/issue488-json-update.json 
gorun kvms entries list --org=apigeex-mint-kurt --env=dev --map=issue488

test issue488-json.json file

{
    "keyValueEntries": [
        {
            "name": "json1",
            "value": "{\"message\":\"hello\"}"
        },
        {
            "name": "basepath",
            "value": "/chris/duncan"
        },
        {
            "name": "pathsuffix",
            "value": "/is/great"
        }
    ],
    "nextPageToken": ""
}

test issue488-json-update.json file

{
    "keyValueEntries": [
        {
            "name": "json1",
            "value": "{\"message\":\"hello\"}"
        },
        {
            "name": "basepath",
            "value": "/christopher/duncan"
        },
        {
            "name": "pathsuffix",
            "value": "/is/great"
        }
    ],
    "nextPageToken": ""
}
kurtkanaskie commented 2 months ago

Everything works, but wondering about outputs: Import with new entries I see 404s for new entries that get created - OK

Import with changed entries I don't see anything, so I don't really know if anything happened. Would be nice if entries that changed were output so I know something changed.