Skip to content

Commit 2146fad

Browse files
committed
test(robot): add test case Test Disable Node Disk Health Monitoring
Signed-off-by: Yang Chiu <yang.chiu@suse.com>
1 parent 7da0236 commit 2146fad

3 files changed

Lines changed: 28 additions & 2 deletions

File tree

e2e/keywords/metrics.resource

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ Check if nodes are under memory pressure
1414
Metric ${metric_name} value should be ${expected_value}
1515
check_longhorn_metric metric_name=${metric_name} expected_value=${expected_value}
1616

17+
There should be no ${metric_name} metric
18+
wait_for_longhorn_metric_absent metric_name=${metric_name}
19+
1720
Get Longhorn components resource usage
1821
get_longhorn_components_memory_cpu_usage
1922

e2e/libs/keywords/metrics_keywords.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import time
22

33
from node import Node
4-
from metrics.metrics import get_node_metrics, check_longhorn_metric
4+
from metrics.metrics import get_node_metrics, check_longhorn_metric, find_longhorn_metric_samples
55
from metrics.metrics import get_longhorn_components_memory_cpu_usage
66
from metrics.metrics import check_longhorn_components_memory_cpu_usage
77
from utility.utility import get_retry_count_and_interval
@@ -12,7 +12,7 @@ class metrics_keywords:
1212

1313
def __init__(self):
1414
self.node = Node()
15-
retry_count, retry_interval = get_retry_count_and_interval()
15+
self.retry_count, self.retry_interval = get_retry_count_and_interval()
1616

1717
def get_node_total_memory_in_mi(self, node_name):
1818
total_memory = self.node.get_node_total_memory(node_name)
@@ -52,6 +52,14 @@ def check_if_node_under_memory_pressure(self, node_name):
5252
def check_longhorn_metric(self, metric_name, node_name=None, metric_label=None, expected_value=None):
5353
check_longhorn_metric(metric_name, node_name, metric_label, expected_value)
5454

55+
def wait_for_longhorn_metric_absent(self, metric_name, node_name=None):
56+
for i in range(self.retry_count):
57+
logging(f"Waiting for longhorn metric {metric_name} absent on node {node_name} ... ({i})")
58+
if not find_longhorn_metric_samples(metric_name, node_name):
59+
logging(f"Longhorn metric {metric_name} is absent on node {node_name}")
60+
return
61+
time.sleep(self.retry_interval)
62+
5563
def get_longhorn_components_memory_cpu_usage(self):
5664
get_longhorn_components_memory_cpu_usage()
5765

e2e/tests/regression/test_metric.robot

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Resource ../keywords/variables.resource
77
Resource ../keywords/common.resource
88
Resource ../keywords/volume.resource
99
Resource ../keywords/metrics.resource
10+
Resource ../keywords/setting.resource
1011

1112
Test Setup Set up v2 test environment
1213
Test Teardown Cleanup test resources
@@ -22,3 +23,17 @@ Test longhorn_node_storage_scheduled_bytes Metric
2223
When Create volume 0 with size=2Gi dataEngine=v1
2324
And Create volume 1 with size=4Gi dataEngine=v2
2425
Then Metric longhorn_node_storage_scheduled_bytes value should be 6Gi
26+
27+
Test Disable Node Disk Health Monitoring
28+
[Documentation] Issue: https://github.com/longhorn/longhorn/issues/12300
29+
${HOST_PROVIDER}= Get Environment Variable HOST_PROVIDER vagrant
30+
IF '${HOST_PROVIDER}' == "harvester"
31+
Skip HAL nodes don't collect SMART metrics
32+
END
33+
Given Setting node-disk-health-monitoring is set to true
34+
Then Metric longhorn_disk_health value should be 1
35+
And Metric longhorn_disk_health_attribute_raw value should be 0
36+
37+
When Setting node-disk-health-monitoring is set to false
38+
Then There should be no longhorn_disk_health metric
39+
And There should be no longhorn_disk_health_attribute_raw metric

0 commit comments

Comments
 (0)