You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
3.1 KiB

---
- name: Delete petstore services of a 3scale tenant
hosts: localhost
gather_facts: no
vars:
ansible_connection: local
threescale_api: https://{{ admin_portal_hostname }}/admin/api
find_in_systemname: library
validate_certs: no
tasks:
- assert:
that:
- threescale_token is defined
- admin_portal_hostname is defined
msg: >
Please pass your 3scale Access Token in the 'threescale_token' extra var
and your 3scale Admin Portal hostname in the 'admin_portal_hostname' extra var.
- name: Find Services
uri:
url: '{{ threescale_api }}/services.json?access_token={{ threescale_token }}'
validate_certs: '{{ validate_certs }}'
register: find_services_response
changed_when: false
- name: Delete all matching services
uri:
url: '{{ threescale_api }}/services/{{ item.id }}.json?access_token={{ threescale_token }}'
method: DELETE
status_code: "200,404"
validate_certs: '{{ validate_certs }}'
register: delete_service_response
changed_when: delete_service_response.status == 200
with_items: '{{ services }}'
when: >
find_in_systemname in item.system_name
vars:
services: '{{ find_services_response.json|json_query(query) }}'
query: >
services[?service.system_name != `api`].{"id": service.id, "system_name": service.system_name}
- name: Find API Backends
uri:
url: '{{ threescale_api }}/backend_apis.json?access_token={{ threescale_token }}'
validate_certs: '{{ validate_certs }}'
register: find_backends_response
changed_when: false
- name: Delete all matching API Backends
uri:
url: '{{ threescale_api }}/backend_apis/{{ item.id }}.json?access_token={{ threescale_token }}'
method: DELETE
status_code: "200,404"
validate_certs: '{{ validate_certs }}'
register: delete_service_response
changed_when: delete_service_response.status == 200
with_items: '{{ services }}'
when: >
find_in_systemname in item.system_name
vars:
services: '{{ find_backends_response.json|json_query(query) }}'
query: >
backend_apis[?backend_api.system_name != `api`].{"id": backend_api.id, "system_name": backend_api.system_name}
- name: Find ActiveDocs
uri:
url: '{{ threescale_api }}/active_docs.json?access_token={{ threescale_token }}'
validate_certs: '{{ validate_certs }}'
register: find_active_docs_response
changed_when: false
- name: Delete all matching ActiveDocs
uri:
url: '{{ threescale_api }}/active_docs/{{ item.id }}.json?access_token={{ threescale_token }}'
method: DELETE
status_code: "200,404"
validate_certs: '{{ validate_certs }}'
register: delete_active_docs_response
changed_when: delete_active_docs_response.status == 200
with_items: '{{ active_docs }}'
when: >
find_in_systemname in item.system_name
vars:
active_docs: '{{ find_active_docs_response.json|json_query(query) }}'
query: >
api_docs[?api_doc.system_name != `echo`].{"id": api_doc.id, "system_name": api_doc.system_name}