From 9a820cd1a0db9144bc13b859d8dc25a77c19eee5 Mon Sep 17 00:00:00 2001 From: Jon Date: Sun, 30 Jul 2023 11:36:12 +0930 Subject: [PATCH] feat(api): search for groups_id by name !1 --- docs/projects/nfc_glpi/config_from_code.md | 2 ++ tasks/api/search.yaml | 6 ++++ tasks/api/search/groups_id.yaml | 32 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 tasks/api/search/groups_id.yaml diff --git a/docs/projects/nfc_glpi/config_from_code.md b/docs/projects/nfc_glpi/config_from_code.md index 8dcb078..00f2704 100644 --- a/docs/projects/nfc_glpi/config_from_code.md +++ b/docs/projects/nfc_glpi/config_from_code.md @@ -19,6 +19,8 @@ Each tab provides an example of the JSON file layout, including any additional v - entities_id +- groups_id + - item_id - itilcategories_id diff --git a/tasks/api/search.yaml b/tasks/api/search.yaml index 53540cf..efbc277 100644 --- a/tasks/api/search.yaml +++ b/tasks/api/search.yaml @@ -12,6 +12,12 @@ when: item.entities_id is defined +- name: Search groups_id + ansible.builtin.include_tasks: + file: api/search/groups_id.yaml + when: item.groups_id is defined + + - name: Search itilcategories_id ansible.builtin.include_tasks: file: api/search/itilcategories_id.yaml diff --git a/tasks/api/search/groups_id.yaml b/tasks/api/search/groups_id.yaml new file mode 100644 index 0000000..545cd74 --- /dev/null +++ b/tasks/api/search/groups_id.yaml @@ -0,0 +1,32 @@ +--- + +- name: Fetch users_id + ansible.builtin.uri: + url: "http://{{ glpi.host }}/apirest.php/Group?searchText[name]={{ item.groups_id | urlencode }}" + method: "GET" + return_content: true + body: '' + status_code: [200, 201] + headers: + App-Token: "{{ glpi.app_token }}" + Session-Token: "{{ glpi.session.valid_id }}" + body_format: json + register: glpi_search + no_log: true + + +- name: Set groups_id + ansible.builtin.set_fact: + new_data: + groups_id: "{{ glpi_search.json[0].id | int }}" + when: glpi_search.json | length | int == 1 + + +- name: Append groups (have item_body) + ansible.builtin.set_fact: + item_body: "{{ item_body | ansible.builtin.combine(new_data) }}" + glpi_search: {} + new_data: {} + no_log: true + when: glpi_search.json | length | int == 1 +