@@ -10,6 +10,7 @@ import (
10
10
"github.com/stretchr/testify/require"
11
11
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12
12
"k8s.io/apimachinery/pkg/runtime"
13
+ "k8s.io/apimachinery/pkg/types"
13
14
"sigs.k8s.io/controller-runtime/pkg/client"
14
15
"sigs.k8s.io/controller-runtime/pkg/client/fake"
15
16
@@ -30,6 +31,7 @@ func TestRayClusterInfo(t *testing.T) {
30
31
ObjectMeta : metav1.ObjectMeta {
31
32
Name : "test-ray-cluster" ,
32
33
Namespace : "default" ,
34
+ UID : types .UID ("test-ray-cluster-uid" ),
33
35
Labels : map [string ]string {
34
36
"ray.io/originated-from-crd" : "RayJob" ,
35
37
},
@@ -39,13 +41,14 @@ func TestRayClusterInfo(t *testing.T) {
39
41
ObjectMeta : metav1.ObjectMeta {
40
42
Name : "test-ray-cluster-2" ,
41
43
Namespace : "default" ,
44
+ UID : types .UID ("test-ray-cluster-2-uid" ),
42
45
Labels : map [string ]string {},
43
46
},
44
47
},
45
48
},
46
49
expectedMetrics : []string {
47
- `kuberay_cluster_info{name="test-ray-cluster",namespace="default",owner_kind="RayJob"} 1` ,
48
- `kuberay_cluster_info{name="test-ray-cluster-2",namespace="default",owner_kind="None"} 1` ,
50
+ `kuberay_cluster_info{name="test-ray-cluster",namespace="default",owner_kind="RayJob",uid="test-ray-cluster-uid" } 1` ,
51
+ `kuberay_cluster_info{name="test-ray-cluster-2",namespace="default",owner_kind="None",uid="test-ray-cluster-2-uid" } 1` ,
49
52
},
50
53
},
51
54
}
@@ -98,9 +101,9 @@ func TestDeleteRayClusterMetrics(t *testing.T) {
98
101
99
102
// Test case 1: Delete specific cluster metrics
100
103
// Manually add some metrics
101
- manager .rayClusterProvisionedDurationSeconds .With (prometheus.Labels {"name" : "cluster1" , "namespace" : "ns1" }).Set (10.5 )
102
- manager .rayClusterProvisionedDurationSeconds .With (prometheus.Labels {"name" : "cluster2" , "namespace" : "ns2" }).Set (20.3 )
103
- manager .rayClusterProvisionedDurationSeconds .With (prometheus.Labels {"name" : "cluster3" , "namespace" : "ns1" }).Set (5.7 )
104
+ manager .rayClusterProvisionedDurationSeconds .With (prometheus.Labels {"name" : "cluster1" , "namespace" : "ns1" , "uid" : "uid1" }).Set (10.5 )
105
+ manager .rayClusterProvisionedDurationSeconds .With (prometheus.Labels {"name" : "cluster2" , "namespace" : "ns2" , "uid" : "uid2" }).Set (20.3 )
106
+ manager .rayClusterProvisionedDurationSeconds .With (prometheus.Labels {"name" : "cluster3" , "namespace" : "ns1" , "uid" : "uid3" }).Set (5.7 )
104
107
105
108
// Test deleting metrics for cluster1 in ns1
106
109
manager .DeleteRayClusterMetrics ("cluster1" , "ns1" )
@@ -109,9 +112,9 @@ func TestDeleteRayClusterMetrics(t *testing.T) {
109
112
body , statusCode := support .GetMetricsResponseAndCode (t , reg )
110
113
111
114
assert .Equal (t , http .StatusOK , statusCode )
112
- assert .NotContains (t , body , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1"}` )
113
- assert .Contains (t , body , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2"}` )
114
- assert .Contains (t , body , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1"}` )
115
+ assert .NotContains (t , body , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1",uid="uid1" }` )
116
+ assert .Contains (t , body , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2",uid="uid2" }` )
117
+ assert .Contains (t , body , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1",uid="uid3" }` )
115
118
116
119
// Test case 2: Delete with empty name
117
120
manager .DeleteRayClusterMetrics ("" , "ns1" )
@@ -120,9 +123,9 @@ func TestDeleteRayClusterMetrics(t *testing.T) {
120
123
body2 , statusCode := support .GetMetricsResponseAndCode (t , reg )
121
124
122
125
assert .Equal (t , http .StatusOK , statusCode )
123
- assert .NotContains (t , body2 , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1"}` )
124
- assert .Contains (t , body2 , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1"}` )
125
- assert .Contains (t , body2 , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2"}` )
126
+ assert .NotContains (t , body2 , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1",uid="uid1" }` )
127
+ assert .Contains (t , body2 , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1",uid="uid3" }` )
128
+ assert .Contains (t , body2 , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2",uid="uid2" }` )
126
129
127
130
// Test case 3: Delete with empty name and namespace
128
131
manager .DeleteRayClusterMetrics ("" , "" )
@@ -131,9 +134,9 @@ func TestDeleteRayClusterMetrics(t *testing.T) {
131
134
body3 , statusCode := support .GetMetricsResponseAndCode (t , reg )
132
135
133
136
assert .Equal (t , http .StatusOK , statusCode )
134
- assert .NotContains (t , body3 , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1"}` )
135
- assert .Contains (t , body3 , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1"}` )
136
- assert .Contains (t , body3 , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2"}` )
137
+ assert .NotContains (t , body3 , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1",uid="uid1" }` )
138
+ assert .Contains (t , body3 , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1",uid="uid3" }` )
139
+ assert .Contains (t , body3 , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2",uid="uid2" }` )
137
140
138
141
// Test case 4: Delete with false name and namespace
139
142
manager .DeleteRayClusterMetrics ("ns2" , "cluster2" )
@@ -142,9 +145,9 @@ func TestDeleteRayClusterMetrics(t *testing.T) {
142
145
body4 , statusCode := support .GetMetricsResponseAndCode (t , reg )
143
146
144
147
assert .Equal (t , http .StatusOK , statusCode )
145
- assert .NotContains (t , body4 , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1"}` )
146
- assert .Contains (t , body4 , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1"}` )
147
- assert .Contains (t , body4 , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2"}` )
148
+ assert .NotContains (t , body4 , `kuberay_cluster_provisioned_duration_seconds{name="cluster1",namespace="ns1",uid="uid1" }` )
149
+ assert .Contains (t , body4 , `kuberay_cluster_provisioned_duration_seconds{name="cluster3",namespace="ns1",uid="uid3" }` )
150
+ assert .Contains (t , body4 , `kuberay_cluster_provisioned_duration_seconds{name="cluster2",namespace="ns2",uid="uid2" }` )
148
151
}
149
152
150
153
func TestRayClusterConditionProvisioned (t * testing.T ) {
@@ -160,6 +163,7 @@ func TestRayClusterConditionProvisioned(t *testing.T) {
160
163
ObjectMeta : metav1.ObjectMeta {
161
164
Name : "provisioned-cluster" ,
162
165
Namespace : "default" ,
166
+ UID : types .UID ("provisioned-cluster-uid" ),
163
167
},
164
168
Status : rayv1.RayClusterStatus {
165
169
Conditions : []metav1.Condition {
@@ -174,6 +178,7 @@ func TestRayClusterConditionProvisioned(t *testing.T) {
174
178
ObjectMeta : metav1.ObjectMeta {
175
179
Name : "unprovisioned-cluster" ,
176
180
Namespace : "default" ,
181
+ UID : types .UID ("unprovisioned-cluster-uid" ),
177
182
},
178
183
Status : rayv1.RayClusterStatus {
179
184
Conditions : []metav1.Condition {
@@ -186,8 +191,8 @@ func TestRayClusterConditionProvisioned(t *testing.T) {
186
191
},
187
192
},
188
193
expectedMetrics : []string {
189
- `kuberay_cluster_condition_provisioned{condition="true",name="provisioned-cluster",namespace="default"} 1` ,
190
- `kuberay_cluster_condition_provisioned{condition="false",name="unprovisioned-cluster",namespace="default"} 1` ,
194
+ `kuberay_cluster_condition_provisioned{condition="true",name="provisioned-cluster",namespace="default",uid="provisioned-cluster-uid" } 1` ,
195
+ `kuberay_cluster_condition_provisioned{condition="false",name="unprovisioned-cluster",namespace="default",uid="unprovisioned-cluster-uid" } 1` ,
191
196
},
192
197
},
193
198
}
0 commit comments