Skip to content

Commit 7dd03c1

Browse files
authored
Merge pull request kubernetes#127353 from Gekko0114/integration_test_volumezone
Add integration test for VolumeZone in requeueing scenarios
2 parents bb6bfba + 3e57d5c commit 7dd03c1

File tree

2 files changed

+386
-1
lines changed

2 files changed

+386
-1
lines changed

pkg/scheduler/testing/wrappers.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
v1 "k8s.io/api/core/v1"
2424
resourceapi "k8s.io/api/resource/v1alpha3"
25+
storagev1 "k8s.io/api/storage/v1"
2526
"k8s.io/apimachinery/pkg/api/resource"
2627
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2728
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -913,6 +914,23 @@ func (p *PersistentVolumeWrapper) NodeAffinityIn(key string, vals []string) *Per
913914
return p
914915
}
915916

917+
// Labels sets all {k,v} pair provided by `labels` to the pv.
918+
func (p *PersistentVolumeWrapper) Labels(labels map[string]string) *PersistentVolumeWrapper {
919+
for k, v := range labels {
920+
p.Label(k, v)
921+
}
922+
return p
923+
}
924+
925+
// Label sets a {k,v} pair to the pv.
926+
func (p *PersistentVolumeWrapper) Label(k, v string) *PersistentVolumeWrapper {
927+
if p.PersistentVolume.ObjectMeta.Labels == nil {
928+
p.PersistentVolume.ObjectMeta.Labels = make(map[string]string)
929+
}
930+
p.PersistentVolume.ObjectMeta.Labels[k] = v
931+
return p
932+
}
933+
916934
// ResourceClaimWrapper wraps a ResourceClaim inside.
917935
type ResourceClaimWrapper struct{ resourceapi.ResourceClaim }
918936

@@ -1133,3 +1151,34 @@ func (wrapper *ResourceSliceWrapper) Device(name string, attrs map[resourceapi.Q
11331151
wrapper.Spec.Devices = append(wrapper.Spec.Devices, resourceapi.Device{Name: name, Basic: &resourceapi.BasicDevice{Attributes: attrs}})
11341152
return wrapper
11351153
}
1154+
1155+
// StorageClassWrapper wraps a StorageClass inside.
1156+
type StorageClassWrapper struct{ storagev1.StorageClass }
1157+
1158+
// MakeStorageClass creates a StorageClass wrapper.
1159+
func MakeStorageClass() *StorageClassWrapper {
1160+
return &StorageClassWrapper{}
1161+
}
1162+
1163+
// Obj returns the inner StorageClass.
1164+
func (s *StorageClassWrapper) Obj() *storagev1.StorageClass {
1165+
return &s.StorageClass
1166+
}
1167+
1168+
// Name sets `n` as the name of the inner StorageClass.
1169+
func (s *StorageClassWrapper) Name(n string) *StorageClassWrapper {
1170+
s.SetName(n)
1171+
return s
1172+
}
1173+
1174+
// VolumeBindingMode sets mode as the mode of the inner StorageClass.
1175+
func (s *StorageClassWrapper) VolumeBindingMode(mode storagev1.VolumeBindingMode) *StorageClassWrapper {
1176+
s.StorageClass.VolumeBindingMode = &mode
1177+
return s
1178+
}
1179+
1180+
// Provisoner sets p as the provisioner of the inner StorageClass.
1181+
func (s *StorageClassWrapper) Provisioner(p string) *StorageClassWrapper {
1182+
s.StorageClass.Provisioner = p
1183+
return s
1184+
}

0 commit comments

Comments
 (0)