@@ -1197,7 +1197,16 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
1197
1197
})
1198
1198
1199
1199
// Messages from test-driver/deploy/example/plugin-permissions.yaml
1200
- matchVAPDeniedError := gomega .MatchError (gomega .ContainSubstring ("may only modify resourceslices that belong to the node the pod is running on" ))
1200
+ matchVAPDeniedError := func (nodeName string , slice * resourceapi.ResourceSlice ) types.GomegaMatcher {
1201
+ subStr := fmt .Sprintf ("this user running on node '%s' may not modify " , nodeName )
1202
+ switch {
1203
+ case slice .Spec .NodeName != "" :
1204
+ subStr += fmt .Sprintf ("resourceslices on node '%s'" , slice .Spec .NodeName )
1205
+ default :
1206
+ subStr += "cluster resourceslices"
1207
+ }
1208
+ return gomega .MatchError (gomega .ContainSubstring (subStr ))
1209
+ }
1201
1210
mustCreate := func (clientSet kubernetes.Interface , clientName string , slice * resourceapi.ResourceSlice ) * resourceapi.ResourceSlice {
1202
1211
ginkgo .GinkgoHelper ()
1203
1212
slice , err := clientSet .ResourceV1alpha3 ().ResourceSlices ().Create (ctx , slice , metav1.CreateOptions {})
@@ -1237,17 +1246,17 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
1237
1246
}
1238
1247
1239
1248
// Create with different clients, keep it in the end.
1240
- mustFailToCreate (realNodeClient , "real plugin" , fictionalNodeSlice , matchVAPDeniedError )
1249
+ mustFailToCreate (realNodeClient , "real plugin" , fictionalNodeSlice , matchVAPDeniedError ( realNodeName , fictionalNodeSlice ) )
1241
1250
mustCreateAndDelete (fictionalNodeClient , "fictional plugin" , fictionalNodeSlice )
1242
1251
createdFictionalNodeSlice := mustCreate (f .ClientSet , "admin" , fictionalNodeSlice )
1243
1252
1244
1253
// Update with different clients.
1245
- mustFailToUpdate (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError )
1254
+ mustFailToUpdate (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError ( realNodeName , createdFictionalNodeSlice ) )
1246
1255
createdFictionalNodeSlice = mustUpdate (fictionalNodeClient , "fictional plugin" , createdFictionalNodeSlice )
1247
1256
createdFictionalNodeSlice = mustUpdate (f .ClientSet , "admin" , createdFictionalNodeSlice )
1248
1257
1249
1258
// Delete with different clients.
1250
- mustFailToDelete (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError )
1259
+ mustFailToDelete (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError ( realNodeName , createdFictionalNodeSlice ) )
1251
1260
mustDelete (fictionalNodeClient , "fictional plugin" , createdFictionalNodeSlice )
1252
1261
1253
1262
// Now the same for a slice which is not associated with a node.
@@ -1272,18 +1281,18 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
1272
1281
})
1273
1282
1274
1283
// Create with different clients, keep it in the end.
1275
- mustFailToCreate (realNodeClient , "real plugin" , clusterSlice , matchVAPDeniedError )
1276
- mustFailToCreate (fictionalNodeClient , "fictional plugin" , clusterSlice , matchVAPDeniedError )
1284
+ mustFailToCreate (realNodeClient , "real plugin" , clusterSlice , matchVAPDeniedError ( realNodeName , clusterSlice ) )
1285
+ mustFailToCreate (fictionalNodeClient , "fictional plugin" , clusterSlice , matchVAPDeniedError ( fictionalNodeName , clusterSlice ) )
1277
1286
createdClusterSlice := mustCreate (f .ClientSet , "admin" , clusterSlice )
1278
1287
1279
1288
// Update with different clients.
1280
- mustFailToUpdate (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError )
1281
- mustFailToUpdate (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError )
1289
+ mustFailToUpdate (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError ( realNodeName , createdClusterSlice ) )
1290
+ mustFailToUpdate (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError ( fictionalNodeName , createdClusterSlice ) )
1282
1291
createdClusterSlice = mustUpdate (f .ClientSet , "admin" , createdClusterSlice )
1283
1292
1284
1293
// Delete with different clients.
1285
- mustFailToDelete (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError )
1286
- mustFailToDelete (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError )
1294
+ mustFailToDelete (realNodeClient , "real plugin" , createdClusterSlice , matchVAPDeniedError ( realNodeName , createdClusterSlice ) )
1295
+ mustFailToDelete (fictionalNodeClient , "fictional plugin" , createdClusterSlice , matchVAPDeniedError ( fictionalNodeName , createdClusterSlice ) )
1287
1296
mustDelete (f .ClientSet , "admin" , createdClusterSlice )
1288
1297
})
1289
1298
0 commit comments