d403690b88
Change-Id: I500cc8800c412bc0e95edb15babad5c1189e6ee4
121 lines
4.8 KiB
YAML
121 lines
4.8 KiB
YAML
---
|
|
- name: Wait for Monasca Grafana to load
|
|
become: true
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/login"
|
|
status_code: 200
|
|
register: result
|
|
until: result.get('status') == 200
|
|
retries: 10
|
|
delay: 2
|
|
run_once: true
|
|
|
|
- name: Define Monasca Grafana control plane organisation name
|
|
set_fact:
|
|
monasca_grafana_control_plane_org: "{{ monasca_control_plane_project }}@{{ default_project_domain_id }}"
|
|
|
|
- name: List Monasca Grafana organisations
|
|
become: true
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
method: GET
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs"
|
|
user: '{{ monasca_grafana_admin_username }}'
|
|
password: '{{ monasca_grafana_admin_password }}'
|
|
return_content: true
|
|
force_basic_auth: true
|
|
run_once: True
|
|
register: monasca_grafana_orgs
|
|
|
|
- name: Create default control plane organisation if it doesn't exist
|
|
become: true
|
|
vars:
|
|
monasca_orgs_body:
|
|
name: '{{ monasca_grafana_control_plane_org }}'
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
method: POST
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs"
|
|
user: '{{ monasca_grafana_admin_username }}'
|
|
password: '{{ monasca_grafana_admin_password }}'
|
|
body_format: json
|
|
body: "{{ monasca_orgs_body | to_json }}"
|
|
force_basic_auth: true
|
|
run_once: True
|
|
when: monasca_grafana_control_plane_org not in monasca_grafana_orgs.json|map(attribute='name')|unique
|
|
|
|
- name: Lookup Monasca Grafana control plane organisation ID
|
|
become: true
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
method: GET
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs/name/{{ monasca_grafana_control_plane_org }}" # noqa 204
|
|
user: '{{ monasca_grafana_admin_username }}'
|
|
password: '{{ monasca_grafana_admin_password }}'
|
|
return_content: true
|
|
force_basic_auth: true
|
|
run_once: True
|
|
register: monasca_grafana_conf_org
|
|
|
|
- name: Add {{ monasca_grafana_admin_username }} user to control plane organisation
|
|
vars:
|
|
monasca_user_body:
|
|
loginOrEmail: '{{ monasca_grafana_admin_username }}'
|
|
role: Admin
|
|
become: true
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
method: POST
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs/{{ monasca_grafana_conf_org.json.id }}/users" # noqa 204
|
|
user: '{{ monasca_grafana_admin_username }}'
|
|
password: '{{ monasca_grafana_admin_password }}'
|
|
body: "{{ monasca_user_body | to_json }}"
|
|
force_basic_auth: true
|
|
body_format: json
|
|
status_code: 200, 409
|
|
register: monasca_grafana_add_user_response
|
|
run_once: True
|
|
changed_when: monasca_grafana_add_user_response.status == 200
|
|
failed_when: monasca_grafana_add_user_response.status not in [200, 409] or
|
|
monasca_grafana_add_user_response.status == 409 and ("User is already" not in monasca_grafana_add_user_response.json.message|default(""))
|
|
|
|
- name: Switch Monasca Grafana to the control plane organisation
|
|
become: true
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
method: POST
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/user/using/{{ monasca_grafana_conf_org.json.id }}" # noqa 204
|
|
user: '{{ monasca_grafana_admin_username }}'
|
|
password: '{{ monasca_grafana_admin_password }}'
|
|
force_basic_auth: true
|
|
run_once: True
|
|
|
|
- name: Enable Monasca Grafana datasource for control plane organisation
|
|
become: true
|
|
kolla_toolbox:
|
|
module_name: uri
|
|
module_args:
|
|
url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/datasources"
|
|
method: POST
|
|
user: "{{ monasca_grafana_admin_username }}"
|
|
password: "{{ monasca_grafana_admin_password }}"
|
|
body: "{{ item.value.data | to_json }}"
|
|
body_format: json
|
|
force_basic_auth: true
|
|
status_code: 200, 409
|
|
register: monasca_grafana_datasource_response
|
|
run_once: True
|
|
changed_when: monasca_grafana_datasource_response.status == 200
|
|
failed_when: monasca_grafana_datasource_response.status not in [200, 409] or
|
|
(monasca_grafana_datasource_response.status == 409 and
|
|
("Data source with same name already exists" not in monasca_grafana_datasource_response.json.message|default(""))
|
|
with_dict: "{{ monasca_grafana_data_sources }}"
|
|
when: item.value.enabled | bool
|