Skip to content

Commit 5a93315

Browse files
Erik Nelsonpmorie
Erik Nelson
authored andcommitted
Validate relistDuration is non-negative (#1395)
1 parent e279d21 commit 5a93315

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

pkg/apis/servicecatalog/validation/broker.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package validation
1818

1919
import (
2020
apivalidation "k8s.io/apimachinery/pkg/api/validation"
21+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2122
"k8s.io/apimachinery/pkg/util/validation/field"
2223

2324
sc "github.com/kubernetes-incubator/service-catalog/pkg/apis/servicecatalog"
@@ -137,10 +138,20 @@ func validateClusterServiceBrokerSpec(spec *sc.ClusterServiceBrokerSpec, fldPath
137138
if spec.RelistRequests < 0 {
138139
allErrs = append(
139140
allErrs,
140-
field.Required(fldPath.Child("relistRequests"), "relistDuration must be greater than zero"),
141+
field.Required(fldPath.Child("relistRequests"), "relistRequests must be greater than zero"),
141142
)
142143
}
143144

145+
if spec.RelistDuration != nil {
146+
zeroDuration := metav1.Duration{0}
147+
if spec.RelistDuration.Duration <= zeroDuration.Duration {
148+
allErrs = append(
149+
allErrs,
150+
field.Required(fldPath.Child("relistDuration"), "relistDuration must be greater than zero"),
151+
)
152+
}
153+
}
154+
144155
return allErrs
145156
}
146157

pkg/apis/servicecatalog/validation/broker_test.go

+14
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,20 @@ func TestValidateClusterServiceBroker(t *testing.T) {
320320
},
321321
valid: false,
322322
},
323+
{
324+
name: "invalid broker - negative relistDuration value",
325+
broker: &servicecatalog.ClusterServiceBroker{
326+
ObjectMeta: metav1.ObjectMeta{
327+
Name: "test-broker",
328+
},
329+
Spec: servicecatalog.ClusterServiceBrokerSpec{
330+
URL: "http://example.com",
331+
RelistBehavior: servicecatalog.ServiceBrokerRelistBehaviorDuration,
332+
RelistDuration: &metav1.Duration{Duration: -15 * time.Minute},
333+
},
334+
},
335+
valid: false,
336+
},
323337
}
324338

325339
for _, tc := range cases {

0 commit comments

Comments
 (0)