@@ -1184,7 +1184,16 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
11841184 })
11851185
11861186 // 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+ }
11881197 mustCreate := func (clientSet kubernetes.Interface , clientName string , slice * resourceapi.ResourceSlice ) * resourceapi.ResourceSlice {
11891198 ginkgo .GinkgoHelper ()
11901199 slice , err := clientSet .ResourceV1alpha3 ().ResourceSlices ().Create (ctx , slice , metav1.CreateOptions {})
@@ -1224,17 +1233,17 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
12241233 }
12251234
12261235 // 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 ) )
12281237 mustCreateAndDelete (fictionalNodeClient , "fictional plugin" , fictionalNodeSlice )
12291238 createdFictionalNodeSlice := mustCreate (f .ClientSet , "admin" , fictionalNodeSlice )
12301239
12311240 // Update with different clients.
1232- mustFailToUpdate (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError )
1241+ mustFailToUpdate (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError ( realNodeName , createdFictionalNodeSlice ) )
12331242 createdFictionalNodeSlice = mustUpdate (fictionalNodeClient , "fictional plugin" , createdFictionalNodeSlice )
12341243 createdFictionalNodeSlice = mustUpdate (f .ClientSet , "admin" , createdFictionalNodeSlice )
12351244
12361245 // Delete with different clients.
1237- mustFailToDelete (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError )
1246+ mustFailToDelete (realNodeClient , "real plugin" , createdFictionalNodeSlice , matchVAPDeniedError ( realNodeName , createdFictionalNodeSlice ) )
12381247 mustDelete (fictionalNodeClient , "fictional plugin" , createdFictionalNodeSlice )
12391248
12401249 // Now the same for a slice which is not associated with a node.
@@ -1259,18 +1268,18 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
12591268 })
12601269
12611270 // 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 ) )
12641273 createdClusterSlice := mustCreate (f .ClientSet , "admin" , clusterSlice )
12651274
12661275 // 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 ) )
12691278 createdClusterSlice = mustUpdate (f .ClientSet , "admin" , createdClusterSlice )
12701279
12711280 // 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 ) )
12741283 mustDelete (f .ClientSet , "admin" , createdClusterSlice )
12751284 })
12761285
0 commit comments