]>
Commit | Line | Data |
---|---|---|
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 |