123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- # Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- ---
- # Testcase OMNIA_1.2_Grafana_TC_005
- # Test case to Validate syslog.log on grafana loki
- - name: OMNIA_1.2_Grafana_TC_005
- hosts: localhost
- connection: local
- tags: TC_005
- gather_subset:
- - 'min'
- vars_files:
- - ../input_params/base_vars.yml
- - test_vars/test_grafana_vars.yml
- tasks:
- - name: Check login_vars file is encrypted
- command: cat {{ login_vars_path }}
- changed_when: false
- register: config_content
- no_log: true
- tags: always
- - name: Validate login file is encypted or not
- assert:
- that: "'$ANSIBLE_VAULT;' in config_content.stdout"
- fail_msg: "{{ login_vars_fail_msg }}"
- success_msg: "{{ login_vars_success_msg }}"
- - name: Installing jq (JSON Query)
- package:
- name: "{{ test_package }}"
- state: present
- - name: Decrpyt login_vars.yml
- command: >-
- ansible-vault decrypt {{ login_vars_path }}
- --vault-password-file {{ login_vars_vault_path }}
- changed_when: false
- when: "'$ANSIBLE_VAULT;' in config_content.stdout"
- no_log: true
- tags: always
- - name: Include variable file login_vars.yml
- include_vars: "{{ login_vars_path }}"
- no_log: true
- tags: always
- - name: Get auth string
- shell: echo -n {{ grafana_username }}_{{ grafana_password }} | sha256sum
- register: auth_string_output
- changed_when: false
- failed_when: false
- no_log: true
- tags: always
- - name: Set the grafana username and password
- set_fact:
- grafana_username: "{{ grafana_username }}"
- grafana_password: "{{ grafana_password }}"
- auth_string: "{{ auth_string_output }}"
- no_log: true
- tags: always
- - name: Encypt login file
- command: >-
- ansible-vault encrypt {{ login_vars_path }}
- --vault-password-file {{ login_vars_vault_path }}
- changed_when: false
- no_log: true
- tags: always
- - name: Fetch Grafana Cluster IP
- shell: |
- kubectl get svc -n grafana -o json | jq '.items[] | select(.metadata.name == "loki") | "\(.spec.clusterIP)"'
- register: grafanaloki_ip_info
- - name: Ping the grafana device to validate connectivity
- command: ping -c1 {{ grafanaloki_ip_info.stdout[1:-1] }}
- register: validate_grafanaloki
- changed_when: false
- failed_when: false
- - name: Validate the Grafana Loki connectivity
- assert:
- that:
- - "'ping' in validate_grafanaloki.stdout"
- success_msg: "{{ connectivity_success_msg }}"
- fail_msg: "{{ connectivity_failure_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_005
- # Test case to Validate syslog.log on grafana loki
- - name: Execute get syslog
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="syslog"}' | jq
- register: syslog_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if syslog status is success or not
- assert:
- that:
- - syslog_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ syslog_success_msg }}"
- fail_msg: "{{ syslog_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_006
- # Test case to Validate Grafana omnia.log
- - name: Execute get job is omnia
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="Omnia"}' | jq
- register: omnia_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if omnia log status is success or not
- assert:
- that:
- - omnia_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ omnia_success_msg }}"
- fail_msg: "{{ omnia_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_007(-)
- # Test case to Validate Rocky OS package log
- - name: Execute get job is Package Rocky
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="Package Rocky.log"}' | jq
- register: package_rocky_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if Package Rocky log status is success or not
- assert:
- that:
- - package_rocky_info.stdout.status | regex_search( "{{ success }}" )
- - package_rocky_info.stdout.data.result != None
- success_msg: "{{ package_rocky_success_msg }}"
- fail_msg: "{{ package_rocky_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_007
- # Test case to Validate Rocky OS package log
- - name: Execute get job is Package Rocky
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="Package Rocky"}' | jq
- register: package_rocky_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if Package Rocky log status is success or not
- assert:
- that:
- - package_rocky_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ package_rocky_success_msg }}"
- fail_msg: "{{ package_rocky_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_008
- # Test case to Validate K8s pods log
- - name: Execute get job is K8s pods
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="K8s pods"}' | jq
- register: k8s_pods_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if k8s pods log status is success or not
- assert:
- that:
- - k8s_pods_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ k8s_pods_success_msg }}"
- fail_msg: "{{ k8s_pods_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_009
- # Test case to Validate cron log
- - name: Execute get job is cron logs
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="cron"}' | jq
- register: cron_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if cron log status is success or not
- assert:
- that:
- - cron_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ cron_success_msg }}"
- fail_msg: "{{ cron_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_010
- # Test case to Validate Vars log
- - name: Execute get job is var logs
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="varlogs"}' | jq
- register: varlogs_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if var log status is success or not
- assert:
- that:
- - varlogs_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ varlogs_success_msg }}"
- fail_msg: "{{ varlogs_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_011
- # Test case to Validate Secure log
- - name: Execute get job is secure logs
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="secure"}' | jq
- register: secure_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if secure log status is success or not
- assert:
- that:
- - secure_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ secure_success_msg }}"
- fail_msg: "{{ secure_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_012
- # Test case to Validate audit log
- - name: Execute get job is audit logs
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="audit"}' | jq
- register: audit_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if audit log status is success or not
- assert:
- that:
- - audit_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ audit_success_msg }}"
- fail_msg: "{{ audit_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_013
- # Test case to Validate sssd log
- - name: Execute get job is sssd logs
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="sssd"}' | jq
- register: sssd_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if sssd log status is success or not
- assert:
- that:
- - sssd_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ sssd_success_msg }}"
- fail_msg: "{{ sssd_fail_msg }}"
- # Testcase OMNIA_1.2_Grafana_TC_014
- # Test case to Validate Grafana - /var/log/omnia.log
- - name: Execute get job is Grafana - /var/log/omnia.log logs
- shell: |
- curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="varlogs",filename="/var/log/omnia.log"}' | jq
- register: varlog_omnia_info
- when: "'ping' in validate_grafanaloki.stdout"
- - name: Verify if varlog for file omnio.log status is success or not
- assert:
- that:
- - varlog_omnia_info.stdout.status | regex_search( "{{ success }}" )
- success_msg: "{{ varlog_omnia_success_msg }}"
- fail_msg: "{{ varlog_omnia_fail_msg }}"
|