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. // 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 { func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
modes = removeDuplicateAccessModes(modes) modes = removeDuplicateAccessModes(modes)
modesStr := []string{} modesStr := []string{}
@ -316,6 +316,9 @@ func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
if ContainsAccessMode(modes, core.ReadWriteMany) { if ContainsAccessMode(modes, core.ReadWriteMany) {
modesStr = append(modesStr, "RWX") modesStr = append(modesStr, "RWX")
} }
if ContainsAccessMode(modes, core.ReadWriteOncePod) {
modesStr = append(modesStr, "RWOP")
}
return strings.Join(modesStr, ",") return strings.Join(modesStr, ",")
} }
@ -332,6 +335,8 @@ func GetAccessModesFromString(modes string) []core.PersistentVolumeAccessMode {
accessModes = append(accessModes, core.ReadOnlyMany) accessModes = append(accessModes, core.ReadOnlyMany)
case s == "RWX": case s == "RWX":
accessModes = append(accessModes, core.ReadWriteMany) accessModes = append(accessModes, core.ReadWriteMany)
case s == "RWOP":
accessModes = append(accessModes, core.ReadWriteOncePod)
} }
} }
return accessModes return accessModes

View File

@ -100,12 +100,29 @@ func TestGetAccessModesFromString(t *testing.T) {
} }
modes = GetAccessModesFromString("RWO,ROX,RWX") 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) { if !ContainsAccessMode(modes, core.ReadOnlyMany) {
t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes) t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes)
} }
if !ContainsAccessMode(modes, core.ReadWriteMany) { if !ContainsAccessMode(modes, core.ReadWriteMany) {
t.Errorf("Expected mode %s, but got %+v", core.ReadWriteMany, modes) 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) { 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. // 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 { func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
modes = removeDuplicateAccessModes(modes) modes = removeDuplicateAccessModes(modes)
modesStr := []string{} modesStr := []string{}
@ -183,6 +183,9 @@ func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
if ContainsAccessMode(modes, v1.ReadWriteMany) { if ContainsAccessMode(modes, v1.ReadWriteMany) {
modesStr = append(modesStr, "RWX") modesStr = append(modesStr, "RWX")
} }
if ContainsAccessMode(modes, v1.ReadWriteOncePod) {
modesStr = append(modesStr, "RWOP")
}
return strings.Join(modesStr, ",") return strings.Join(modesStr, ",")
} }
@ -199,6 +202,8 @@ func GetAccessModesFromString(modes string) []v1.PersistentVolumeAccessMode {
accessModes = append(accessModes, v1.ReadOnlyMany) accessModes = append(accessModes, v1.ReadOnlyMany)
case s == "RWX": case s == "RWX":
accessModes = append(accessModes, v1.ReadWriteMany) accessModes = append(accessModes, v1.ReadWriteMany)
case s == "RWOP":
accessModes = append(accessModes, v1.ReadWriteOncePod)
} }
} }
return accessModes return accessModes

View File

@ -226,12 +226,29 @@ func TestGetAccessModesFromString(t *testing.T) {
} }
modes = GetAccessModesFromString("RWO,ROX,RWX") 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) { if !ContainsAccessMode(modes, v1.ReadOnlyMany) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadOnlyMany, modes) t.Errorf("Expected mode %s, but got %+v", v1.ReadOnlyMany, modes)
} }
if !ContainsAccessMode(modes, v1.ReadWriteMany) { if !ContainsAccessMode(modes, v1.ReadWriteMany) {
t.Errorf("Expected mode %s, but got %+v", v1.ReadWriteMany, modes) 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) { 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. // 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 { func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
modes = removeDuplicateAccessModes(modes) modes = removeDuplicateAccessModes(modes)
modesStr := []string{} modesStr := []string{}
@ -58,6 +58,9 @@ func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
if ContainsAccessMode(modes, v1.ReadWriteMany) { if ContainsAccessMode(modes, v1.ReadWriteMany) {
modesStr = append(modesStr, "RWX") modesStr = append(modesStr, "RWX")
} }
if ContainsAccessMode(modes, v1.ReadWriteOncePod) {
modesStr = append(modesStr, "RWOP")
}
return strings.Join(modesStr, ",") return strings.Join(modesStr, ",")
} }