@@ -1184,7 +1184,16 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
1184
1184
})
1185
1185
1186
1186
// Messages from test-driver/deploy/example/plugin-permissions.yaml
1187
- matchVAPDeniedError := gomega .MatchError (gomega .ContainSubstring ("may only modify resourceslices that belong to the node the pod is running on" ))
1187
+ matchVAPDeniedError := func (nodeName string , slice * resourceapi.ResourceSlice ) types.GomegaMatcher {
1188
+ subStr := fmt .Sprintf ("this user running on node '%s' may not modify " , nodeName )
1189
+ switch {
1190
+ case slice .Spec .NodeName != "" :
1191
+ subStr += fmt .Sprintf ("resourceslices on node '%s'" , slice .Spec .NodeName )
1192
+ default :
1193
+ subStr += "cluster resourceslices"
1194
+ }
1195
+ return gomega .MatchError (gomega .ContainSubstring (subStr ))
1196
+ }
1188
1197
mustCreate := func (clientSet kubernetes.Interface , clientName string , slice * resourceapi.ResourceSlice ) * resourceapi.ResourceSlice {
1189
1198
ginkgo .GinkgoHelper ()
1190
1199
slice , err := clientSet .ResourceV1alpha3 ().ResourceSlices ().Create (ctx , slice , metav1.CreateOptions {})
@@ -1224,17 +1233,17 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
1224
1233
}
1225
1234
1226
1235
// Create with different clients, keep it in the end.
1227
- mustFailToCreate (realNodeClient , "real plugin" , fictionalNodeSlice , matchVAPDeniedError )
1236
+ mustFailToCreate (realNodeClient , "real plugin" , fictionalNodeSlice , matchVAPDeniedError ( realNodeName , fictionalNodeSlice ) )
1228
1237
mustCreateAndDelete (fictionalNodeClient , "fictional plugin" , fictionalNodeSlice )
1229
1238
createdFictionalNodeSlice := mustCreate (f .ClientSet , "admin" , fictionalNodeSlice )
1230
1239
1231
1240
// Update with different clients.
1232
- mustFailToUpdate (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError )
1241
+ mustFailToUpdate (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError ( realNodeName , createdFictionalNodeSlice ) )
1233
1242
createdFictionalNodeSlice = mustUpdate (fictionalNodeClient , "fictional plugin" , createdFictionalNodeSlice )
1234
1243
createdFictionalNodeSlice = mustUpdate (f .ClientSet , "admin" , createdFictionalNodeSlice )
1235
1244
1236
1245
// Delete with different clients.
1237
- mustFailToDelete (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError )
1246
+ mustFailToDelete (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError ( realNodeName , createdFictionalNodeSlice ) )
1238
1247
mustDelete (fictionalNodeClient , "fictional plugin" , createdFictionalNodeSlice )
1239
1248
1240
1249
// Now the same for a slice which is not associated with a node.
@@ -1259,18 +1268,18 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
1259
1268
})
1260
1269
1261
1270
// Create with different clients, keep it in the end.
1262
- mustFailToCreate (realNodeClient , "real plugin" , clusterSlice , matchVAPDeniedError )
1263
- mustFailToCreate (fictionalNodeClient , "fictional plugin" , clusterSlice , matchVAPDeniedError )
1271
+ mustFailToCreate (realNodeClient , "real plugin" , clusterSlice , matchVAPDeniedError ( realNodeName , clusterSlice ) )
1272
+ mustFailToCreate (fictionalNodeClient , "fictional plugin" , clusterSlice , matchVAPDeniedError ( fictionalNodeName , clusterSlice ) )
1264
1273
createdClusterSlice := mustCreate (f .ClientSet , "admin" , clusterSlice )
1265
1274
1266
1275
// Update with different clients.
1267
- mustFailToUpdate (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError )
1268
- mustFailToUpdate (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError )
1276
+ mustFailToUpdate (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError ( realNodeName , createdClusterSlice ) )
1277
+ mustFailToUpdate (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError ( fictionalNodeName , createdClusterSlice ) )
1269
1278
createdClusterSlice = mustUpdate (f .ClientSet , "admin" , createdClusterSlice )
1270
1279
1271
1280
// Delete with different clients.
1272
- mustFailToDelete (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError )
1273
- mustFailToDelete (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError )
1281
+ mustFailToDelete (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError ( realNodeName , createdClusterSlice ) )
1282
+ mustFailToDelete (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError ( fictionalNodeName , createdClusterSlice ) )
1274
1283
mustDelete (f .ClientSet , "admin" , createdClusterSlice )
1275
1284
})
1276
1285
0 commit comments