Update helper methods to print and parse ReadWriteOncePod access mode

This commit is contained in:
Chris Henzie 2021-03-10 20:51:43 -08:00
parent 2b98f8edc7
commit 5f98f6cfa4
5 changed files with 50 additions and 3 deletions

View File

@ -303,7 +303,7 @@ func IsStandardFinalizerName(str string) bool {
}
// GetAccessModesAsString returns a string representation of an array of access modes.
// modes, when present, are always in the same order: RWO,ROX,RWX.
// modes, when present, are always in the same order: RWO,ROX,RWX,RWOP.
func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
modes = removeDuplicateAccessModes(modes)
modesStr := []string{}
@ -316,6 +316,9 @@ func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
if ContainsAccessMode(modes, core.ReadWriteMany) {
modesStr = append(modesStr, "RWX")
}
if ContainsAccessMode(modes, core.ReadWriteOncePod) {
modesStr = append(modesStr, "RWOP")
}
return strings.Join(modesStr, ",")
}
@ -332,6 +335,8 @@ func GetAccessModesFromString(modes string) []core.PersistentVolumeAccessMode {
accessModes = append(accessModes, core.ReadOnlyMany)
case s == "RWX":
accessModes = append(accessModes, core.ReadWriteMany)
case s == "RWOP":
accessModes = append(accessModes, core.ReadWriteOncePod)
}
}
return accessModes

View File

@ -100,12 +100,29 @@ func TestGetAccessModesFromString(t *testing.T) {
}
modes = GetAccessModesFromString("RWO,ROX,RWX")
if !ContainsAccessMode(modes, core.ReadWriteOnce) {
t.Errorf("Expected mode %s, but got %+v", core.ReadWriteOnce, modes)
}
if !ContainsAccessMode(modes, core.ReadOnlyMany) {
t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes)
}
if !ContainsAccessMode(modes, core.ReadWriteMany) {
t.Errorf("Expected mode %s, but got %+v", core.ReadWriteMany, modes)
}
modes = GetAccessModesFromString("RWO,ROX,RWX,RWOP")
if !ContainsAccessMode(modes, core.ReadWriteOnce) {
t.Errorf("Expected mode %s, but got %+v", core.ReadWriteOnce, modes)
}
if !ContainsAccessMode(modes, core.ReadOnlyMany) {
t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes)
}
if !ContainsAccessMode(modes, core.ReadWriteMany) {
t.Errorf("Expected mode %s, but got %+v", core.ReadWriteMany, modes)
}
if !ContainsAccessMode(modes, core.ReadWriteOncePod) {
t.Errorf("Expected mode %s, but got %+v", core.ReadWriteOncePod, modes)
}
}
func TestRemoveDuplicateAccessModes(t *testing.T) {

View File

@ -170,7 +170,7 @@ func ingressEqual(lhs, rhs *v1.LoadBalancerIngress) bool {
}
// GetAccessModesAsString returns a string representation of an array of access modes.
// modes, when present, are always in the same order: RWO,ROX,RWX.
// modes, when present, are always in the same order: RWO,ROX,RWX,RWOP.
func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
modes = removeDuplicateAccessModes(modes)
modesStr := []string{}
@ -183,6 +183,9 @@ func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
if ContainsAccessMode(modes, v1.ReadWriteMany) {
modesStr = append(modesStr, "RWX")
}
if ContainsAccessMode(modes, v1.ReadWriteOncePod) {
modesStr = append(modesStr, "RWOP")
}
return strings.Join(modesStr, ",")
}
@ -199,6 +202,8 @@ func GetAccessModesFromString(modes string) []v1.PersistentVolumeAccessMode {
accessModes = append(accessModes, v1.ReadOnlyMany)
case s == "RWX":
accessModes = append(accessModes, v1.ReadWriteMany)
case s == "RWOP":
accessModes = append(accessModes, v1.ReadWriteOncePod)
}
}
return accessModes

View File

@ -226,12 +226,29 @@ func TestGetAccessModesFromString(t *testing.T) {
}
modes = GetAccessModesFromString("RWO,ROX,RWX")
if !ContainsAccessMode(modes, v1.ReadWriteOnce) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadWriteOnce, modes)
}
if !ContainsAccessMode(modes, v1.ReadOnlyMany) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadOnlyMany, modes)
}
if !ContainsAccessMode(modes, v1.ReadWriteMany) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadWriteMany, modes)
}
modes = GetAccessModesFromString("RWO,ROX,RWX,RWOP")
if !ContainsAccessMode(modes, v1.ReadWriteOnce) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadWriteOnce, modes)
}
if !ContainsAccessMode(modes, v1.ReadOnlyMany) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadOnlyMany, modes)
}
if !ContainsAccessMode(modes, v1.ReadWriteMany) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadWriteMany, modes)
}
if !ContainsAccessMode(modes, v1.ReadWriteOncePod) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadWriteOncePod, modes)
}
}
func TestRemoveDuplicateAccessModes(t *testing.T) {

View File

@ -45,7 +45,7 @@ func IsDefaultAnnotationText(obj metav1.ObjectMeta) string {
}
// GetAccessModesAsString returns a string representation of an array of access modes.
// modes, when present, are always in the same order: RWO,ROX,RWX.
// modes, when present, are always in the same order: RWO,ROX,RWX,RWOP.
func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
modes = removeDuplicateAccessModes(modes)
modesStr := []string{}
@ -58,6 +58,9 @@ func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
if ContainsAccessMode(modes, v1.ReadWriteMany) {
modesStr = append(modesStr, "RWX")
}
if ContainsAccessMode(modes, v1.ReadWriteOncePod) {
modesStr = append(modesStr, "RWOP")
}
return strings.Join(modesStr, ",")
}