Adding backedn_status info to the monitoring service and tenant REST APIs
Adding e2e tests for monitoring service
Change-Id: I9f60f380318a84e2b13535f638920274c64ac30d
diff --git a/xos/test/roles/common/tasks/main.yml b/xos/test/roles/common/tasks/main.yml
new file mode 100644
index 0000000..32c9613
--- /dev/null
+++ b/xos/test/roles/common/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+- name: Validate Monitoring service is ready
+ uri:
+ url: "{{item}}"
+ user: "{{ auth.user }}"
+ password: "{{ auth.pass }}"
+ status_code: 200
+ body_format: json
+ force_basic_auth: yes
+ HEADER_Content-Type: "application/json"
+ register: monitoringservice
+ until: "monitoringservice.json and 'OK' in monitoringservice.json[0].backend_status"
+ retries: 5
+ delay: 60
+ with_items:
+ - http://localhost:8888/api/service/monitoring/
+ - http://localhost:8888/api/tenant/monitoring/monitoringchannel/
diff --git a/xos/test/roles/test-inframonitoring/tasks/main.yml b/xos/test/roles/test-inframonitoring/tasks/main.yml
new file mode 100644
index 0000000..5703e48
--- /dev/null
+++ b/xos/test/roles/test-inframonitoring/tasks/main.yml
@@ -0,0 +1,28 @@
+---
+- name: Validate Monitoring URL is completely UP and valid metrics are returned
+ uri:
+ url: "{{monitoringservice.results[1].json[0].ceilometer_url}}v2/meters"
+ status_code: 200
+ return_content: yes
+ body_format: json
+ HEADER_Content-Type: "application/json"
+ register: metrics
+ until: "(metrics.status == 200) and (metrics.content|from_json|length>0)"
+ retries: 5
+ delay: 10
+
+- name: assert disk related infra metrics are present
+ assert:
+ that: "'disk.write.requests' in metrics.content"
+ msg: "Metrics does not contains disk related statistics"
+
+- name: assert memory related infra metrics are present
+ assert:
+ that: "'memory' in metrics.content"
+ msg: "Metrics does not contains memory related statistics"
+
+- name: assert cpu related infra metrics are present
+ assert:
+ that: "'cpu' in metrics.content"
+ msg: "Metrics does not contains cpu related statistics"
+
diff --git a/xos/test/roles/test-initial/tasks/main.yml b/xos/test/roles/test-initial/tasks/main.yml
new file mode 100644
index 0000000..dea7524
--- /dev/null
+++ b/xos/test/roles/test-initial/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+- name: Validate Monitoring URL is completely UP
+ uri:
+ url: "{{monitoringservice.results[1].json[0].ceilometer_url}}v2/meters"
+ status_code: 200
+ return_content: yes
+ body_format: json
+ HEADER_Content-Type: "application/json"
+ register: metrics
+ until: metrics.status == 200
+ retries: 5
+ delay: 10
+
+- name: assert no metrics are present
+ assert:
+ that: metrics.content|from_json|length==0
+ msg: "Meters list is non empty for the first time"
diff --git a/xos/test/roles/test-vsgmonitoring/tasks/main.yml b/xos/test/roles/test-vsgmonitoring/tasks/main.yml
new file mode 100644
index 0000000..11d8be6
--- /dev/null
+++ b/xos/test/roles/test-vsgmonitoring/tasks/main.yml
@@ -0,0 +1,28 @@
+---
+- name: Validate Monitoring URL is completely UP and metrics contain vSG related metrics
+ uri:
+ url: "{{monitoringservice.results[1].json[0].ceilometer_url}}v2/meters"
+ status_code: 200
+ return_content: yes
+ body_format: json
+ HEADER_Content-Type: "application/json"
+ register: metrics
+ until: "(metrics.status == 200) and (metrics.content|from_json|length>0) and ('vsg' in metrics.content)"
+ retries: 5
+ delay: 10
+
+- name: assert vSG metrics vsg.dns.cache.size are present
+ assert:
+ that: "'vsg.dns.cache.size' in metrics.content"
+ msg: "Metrics does not contains vsg.dns.cache.size related statistics"
+
+- name: assert vSG metrics vsg.dns.replaced_unexpired_entries are present
+ assert:
+ that: "'vsg.dns.replaced_unexpired_entries' in metrics.content"
+ msg: "Metrics does not contains vsg.dns.replaced_unexpired_entries related statistics"
+
+- name: assert vSG metrics vsg.dns.queries_answered_locally are present
+ assert:
+ that: "'vsg.dns.queries_answered_locally' in metrics.content"
+ msg: "Metrics does not contains vsg.dns.queries_answered_locally related statistics"
+