From 537f11216a93bd6a5f123b23fdf3ef3760efe4bb Mon Sep 17 00:00:00 2001 From: Michele Cereda Date: Mon, 10 Feb 2025 22:27:20 +0100 Subject: [PATCH] fix(dblab): use api endpoints for api operations --- snippets/ansible/tasks.yml | 19 ++++++++++--------- snippets/dblab.fish | 9 ++++++++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/snippets/ansible/tasks.yml b/snippets/ansible/tasks.yml index 0c10bdb..e6a8a81 100644 --- a/snippets/ansible/tasks.yml +++ b/snippets/ansible/tasks.yml @@ -1252,7 +1252,7 @@ hosts: localhost connection: local vars: - dblab_port: 2345 + dblab_api_port: 2346 # some operations (reset) are not available on the non-api endpoints max_snapshot_age_in_days: 15 vars_prompt: - name: dblab_host @@ -1266,7 +1266,7 @@ {{ dict([ [ 'host', dblab_host ], - [ 'port', dblab_port ], + [ 'port', dblab_api_port ], [ 'token', dblab_token ], [ 'max_snapshot_age_in_days', max_snapshot_age_in_days ], ]) @@ -1276,7 +1276,7 @@ - name: Gather snapshots' status check_mode: false ansible.builtin.uri: - url: https://{{ dblab_host }}:{{ dblab_port }}/snapshots + url: https://{{ dblab_host }}:{{ dblab_api_port }}/api/snapshots headers: 'verification-token': "{{ dblab_token }}" register: snapshots_status @@ -1294,13 +1294,13 @@ fail_msg: snapshot {{ item.id }} for pool {{ item.pool }} is too old loop: "{{ snapshots_status.json }}" tasks: - - name: Reset protected clones on {{ dblab_host }} - tags: reset_protected_clones + - name: Reset clones on {{ dblab_host }} + tags: reset_clones block: - name: Gather clones on {{ dblab_host }} check_mode: false ansible.builtin.uri: - url: http://{{ dblab_host }}:{{ dblab_port }}/status + url: http://{{ dblab_host }}:{{ dblab_api_port }}/api/status headers: 'verification-token': "{{ dblab_token }}" register: instance_status @@ -1310,15 +1310,16 @@ var: instance_status.json - name: Reset protected clones vars: - protected_clones: "{{ instance_status.json.cloning.clones | selectattr('protected', 'equalto', true) }}" + clones: "{{ instance_status.json.cloning.clones | selectattr('protected', 'equalto', true) }}" ansible.builtin.uri: - url: http://{{ dblab_host }}:{{ dblab_port }}/clone/{{ item.id }}/reset + url: http://{{ dblab_host }}:{{ dblab_api_port }}/api/clone/{{ item.id }}/reset + method: POST headers: 'verification-token': "{{ dblab_token }}" body_format: json body: latest: true - loop: "{{ protected_clones }}" + loop: "{{ clones }}" register: reset_requests - name: Gitea-specific operations diff --git a/snippets/dblab.fish b/snippets/dblab.fish index 2c29f48..fb972bb 100644 --- a/snippets/dblab.fish +++ b/snippets/dblab.fish @@ -46,6 +46,10 @@ curl 'https://dblab.example.org:2345/status' -H "Verification-Token: $(gopass sh curl 'https://dblab.example.org:1234/api/status' -H "Verification-Token: $(gopass show -o 'dblab')" dblab instance status +# Show data refresh status +curl 'https://dblab.example.org:2345/instance/retrieval' -H "Verification-Token: $(gopass show -o 'dblab')" +curl 'https://dblab.example.org:1234/api/instance/retrieval' -H "Verification-Token: $(gopass show -o 'dblab')" + # List snapshots curl 'https://dblab.example.org:2345/snapshots' -H "Verification-Token: $(gopass show -o 'dblab')" curl 'https://dblab.example.org:1234/api/snapshots' -H "Verification-Token: $(gopass show -o 'dblab')" @@ -65,14 +69,17 @@ curl -X 'POST' 'https://dblab.example.org:1234/api/clone' -H "Verification-Token }' # List clones +curl 'https://dblab.example.org:2345/status' -H "Verification-Token: $(gopass show -o 'dblab')" | jq '.' - curl 'https://dblab.example.org:1234/api/status' -H "Verification-Token: $(gopass show -o 'dblab')" dblab clone list # Get clones' information +curl 'https://dblab.example.org:1234/clone/some-clone' -H "Verification-Token: $(gopass show -o 'dblab')" curl 'https://dblab.example.org:1234/api/clone/some-clone' -H "Verification-Token: $(gopass show -o 'dblab')" dblab clone status 'some-clone' # Reset clones +# Only available via the '/api' endpoints, no direct ones curl -X 'POST' 'https://dblab.example.org:1234/api/clone/some-clone/reset' \ -H "Verification-Token: $(gopass show -o 'dblab')" \ -H 'accept: application/json' -H 'content-type: application/json' \ @@ -82,7 +89,7 @@ dblab clone reset --async='true' --latest='true' 'some-clone' curl --url 'https://dblab.example.org:2345/status' --header 'verification-token: somePassword' \ | jq -r '.cloning.clones[]|select(.protected = "true")|.id' \ | xargs -I '%%' \ - curl --request 'POST' --url 'https://dblab.example.org:2345/clone/%%/reset' \ + curl --request 'POST' --url 'https://dblab.example.org:1234/api/clone/%%/reset' \ --header 'verification-token: somePassword' \ --header 'content-type: application/json' \ --data '{ "latest": true }'