@@ -11,7 +11,9 @@ import (
11
11
var (
12
12
ErrNoName = errors .New ("Policy name cannot by empty." )
13
13
ErrNoArgs = errors .New ("Args cannot be nil for schedule policies." )
14
- ErrInvalidAdjustment = errors .New ("Invalid adjustment type." )
14
+ ErrCooldownRange = errors .New ("Cooldown is out of range (0, 86400)." )
15
+ ErrUnknownType = errors .New ("Unknown policy type." )
16
+ ErrUnknownAdjustment = errors .New ("Unknown adjustment type." )
15
17
)
16
18
17
19
// List returns all scaling policies for a group.
@@ -73,6 +75,14 @@ func (opts CreateOpts) ToPolicyCreateMap() ([]map[string]interface{}, error) {
73
75
return nil , ErrNoArgs
74
76
}
75
77
78
+ if ok := validateType (o .Type ); ! ok {
79
+ return nil , ErrUnknownType
80
+ }
81
+
82
+ if ok := validateCooldown (o .Cooldown ); ! ok {
83
+ return nil , ErrCooldownRange
84
+ }
85
+
76
86
policy := make (map [string ]interface {})
77
87
78
88
policy ["name" ] = o .Name
@@ -166,6 +176,14 @@ func (opts UpdateOpts) ToPolicyUpdateMap() (map[string]interface{}, error) {
166
176
return nil , ErrNoArgs
167
177
}
168
178
179
+ if ok := validateType (opts .Type ); ! ok {
180
+ return nil , ErrUnknownType
181
+ }
182
+
183
+ if ok := validateCooldown (opts .Cooldown ); ! ok {
184
+ return nil , ErrCooldownRange
185
+ }
186
+
169
187
policy := make (map [string ]interface {})
170
188
171
189
policy ["name" ] = opts .Name
@@ -240,8 +258,30 @@ func setAdjustment(t AdjustmentType, v float64, body map[string]interface{}) err
240
258
body [key ] = int (v )
241
259
242
260
default :
243
- return ErrInvalidAdjustment
261
+ return ErrUnknownAdjustment
244
262
}
245
263
246
264
return nil
247
265
}
266
+
267
+ func validateType (t Type ) (ok bool ) {
268
+ switch t {
269
+ case Schedule , Webhook :
270
+ ok = true
271
+ return
272
+
273
+ default :
274
+ ok = false
275
+ return
276
+ }
277
+ }
278
+
279
+ func validateCooldown (cooldown int ) (ok bool ) {
280
+ if cooldown < 0 || cooldown > 86400 {
281
+ ok = false
282
+ return
283
+ }
284
+
285
+ ok = true
286
+ return
287
+ }
0 commit comments