]> git.immae.eu Git - github/fretlink/ansible-kong-app.git/blame_incremental - tasks/plugins.yml
Merge pull request #27 from gaetanfl/fix_upstream_creation_return_code
[github/fretlink/ansible-kong-app.git] / tasks / plugins.yml
... / ...
CommitLineData
1- name: Get plugins
2 uri:
3 url: "{{ server.kong_app_admin_url }}/services/{{ service.name }}/plugins"
4 method: GET
5 validate_certs: no
6 headers:
7 apikey: "{{ server.kong_app_admin_apikey }}"
8 register: kong_app_service_plugins_check
9
10- name: Setup plugin
11 uri:
12 url: "{{ server.kong_app_admin_url }}/{{ exists_plugin | ternary(create_url, update_url) }}"
13 method: "{{ exists_plugin | ternary ('POST', 'PATCH') }}"
14 body: "{{ plugin | combine(current_body) | to_json }}"
15 headers:
16 apikey: "{{ server.kong_app_admin_apikey }}"
17 Content-Type: application/json
18 status_code: 200,201
19 with_items: "{{ service.plugins | default([]) }}"
20 loop_control:
21 loop_var: plugin
22 vars:
23 create_url: "services/{{ service.name }}/plugins"
24 update_url: "plugins/{{ current_config.id }}"
25 plugins_list: "{{ kong_app_service_plugins_check.json.data }}"
26 current_config: "{{ plugins_list | selectattr('name', 'equalto', plugin.name) | first |default({\"id\": ''}) }}"
27 current_id_hash:
28 id: "{{ current_config.id }}"
29 current_body: "{{ (not current_id_hash.id) | ternary({}, current_id_hash) }}"
30 exists_plugin: "{{ not current_id_hash.id }}"
31 when: not kong_app_service_plugins_check is skipped
32 ignore_errors: true
33 no_log: true
34 register: kong_plugin_update_st
35
36- name: Retry failed (deletion)
37 uri:
38 url: "{{ url }}"
39 method: "DELETE"
40 headers: "{{ headers }}"
41 status_code: 204
42 loop: "{{ kong_plugin_update_st.results }}"
43 loop_control:
44 loop_var: result
45 label: "{{ label_name }}"
46 vars:
47 method: "{{ result.invocation.module_args.method }}"
48 url: "{{ result.invocation.module_args.url }}"
49 headers: "{{ result.invocation.module_args.headers }}"
50 label_name: "{{ result.plugin.name }}"
51 when:
52 - kong_plugin_update_st is failed
53 - result is failed
54 - method == "PATCH"
55 no_log: true
56
57- name: Retry failed (recreation)
58 uri:
59 url: "{{ server.kong_app_admin_url }}/services/{{ service.name }}/plugins"
60 method: "POST"
61 body: "{{ body | to_json }}"
62 headers: "{{ headers }}"
63 status_code: 200,201
64 loop: "{{ kong_plugin_update_st.results }}"
65 loop_control:
66 loop_var: result
67 label: "{{ label_name }}"
68 vars:
69 method: "{{ result.invocation.module_args.method }}"
70 headers: "{{ result.invocation.module_args.headers }}"
71 body: "{{ result.invocation.module_args.body }}"
72 label_name: "{{ result.plugin.name }}"
73 when:
74 - kong_plugin_update_st is failed
75 - result is failed
76 - method == "PATCH"
77 no_log: true
78
79- name: Give info on errors
80 debug:
81 msg: "{{ info }}"
82 loop: "{{ kong_plugin_update_st.results }}"
83 loop_control:
84 label: "{{ item.plugin.name }}"
85 when:
86 - kong_plugin_update_st is failed
87 - item is failed
88 - item.plugin is defined
89 - item.plugin.name is defined
90 - item.json is defined
91 - item.json.message is defined
92 vars:
93 info: "{{ item.json.message }}"
94
95- name: Fail otherwise
96 fail:
97 msg: "This plugin {{ result.plugin.name }} failed to be created"
98 loop: "{{ kong_plugin_update_st.results }}"
99 loop_control:
100 loop_var: result
101 label: "{{ label_name }}"
102 vars:
103 method: "{{ result.invocation.module_args.method }}"
104 label_name: "{{ result.plugin.name }}"
105 when:
106 - kong_plugin_update_st is failed
107 - result is failed
108 - method == "POST"
109 no_log: true