Skip to content
This repository was archived by the owner on Jan 9, 2023. It is now read-only.

Commit e1b9f14

Browse files
committed
Ensures results are of type multierror.Error and call ErrorOrNil
1 parent 597efd2 commit e1b9f14

File tree

7 files changed

+48
-45
lines changed

7 files changed

+48
-45
lines changed

pkg/tarmak/cluster/cluster.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func NewFromConfig(environment interfaces.Environment, conf *clusterv1alpha1.Clu
7474
}
7575

7676
// setup instance pools
77-
var result error
77+
var result *multierror.Error
7878
for pos, _ := range cluster.conf.InstancePools {
7979
instancePool := cluster.conf.InstancePools[pos]
8080
// create instance pools
@@ -86,7 +86,7 @@ func NewFromConfig(environment interfaces.Environment, conf *clusterv1alpha1.Clu
8686
cluster.instancePools = append(cluster.instancePools, pool)
8787
}
8888

89-
return cluster, result
89+
return cluster, result.ErrorOrNil()
9090
}
9191

9292
func (c *Cluster) InstancePools() []interfaces.InstancePool {
@@ -357,7 +357,7 @@ func (c *Cluster) verifyHubState() error {
357357
}
358358

359359
// Verify instance pools
360-
func (c *Cluster) VerifyInstancePools() (result error) {
360+
func (c *Cluster) VerifyInstancePools() error {
361361
imageIDs, err := c.ImageIDs()
362362
if err != nil {
363363
return fmt.Errorf("error getting image IDs: %s]", err)
@@ -370,6 +370,7 @@ func (c *Cluster) VerifyInstancePools() (result error) {
370370
return fmt.Errorf("error getting the image ID of %s", instancePool.TFName())
371371
}
372372
}
373+
373374
return nil
374375
}
375376

@@ -416,7 +417,7 @@ func (c *Cluster) Validate() error {
416417
}
417418

418419
// validate network configuration
419-
func (c *Cluster) validateNetwork() (result error) {
420+
func (c *Cluster) validateNetwork() error {
420421
// make the choice between deploying into existing VPC or creating a new one
421422
if _, ok := c.Config().Network.ObjectMeta.Annotations[clusterv1alpha1.ExistingVPCAnnotationKey]; ok {
422423
// TODO: handle existing vpc
@@ -437,7 +438,7 @@ func (c *Cluster) validateNetwork() (result error) {
437438
}
438439

439440
// validate logging configuration
440-
func (c *Cluster) validateLoggingSinks() (result error) {
441+
func (c *Cluster) validateLoggingSinks() error {
441442

442443
if c.Config().LoggingSinks != nil {
443444
for index, loggingSink := range c.Config().LoggingSinks {
@@ -459,7 +460,7 @@ func (c *Cluster) validateLoggingSinks() (result error) {
459460
}
460461

461462
// validate overprovisioning
462-
func (c *Cluster) validateClusterAutoscaler() (result error) {
463+
func (c *Cluster) validateClusterAutoscaler() error {
463464

464465
if c.Config().Kubernetes != nil && c.Config().Kubernetes.ClusterAutoscaler != nil && c.Config().Kubernetes.ClusterAutoscaler.Overprovisioning != nil {
465466
if !c.Config().Kubernetes.ClusterAutoscaler.Overprovisioning.Enabled {
@@ -490,20 +491,20 @@ func (c *Cluster) validateClusterAutoscaler() (result error) {
490491
}
491492

492493
// Validate APIServer
493-
func (c *Cluster) validateAPIServer() (result error) {
494+
func (c *Cluster) validateAPIServer() error {
495+
var result *multierror.Error
496+
494497
for _, cidr := range c.Config().Kubernetes.APIServer.AllowCIDRs {
495498
_, _, err := net.ParseCIDR(cidr)
496499
if err != nil {
497500
result = multierror.Append(result, fmt.Errorf("%s is not a valid CIDR format", cidr))
498501
}
499502
}
500503

501-
return result
504+
return result.ErrorOrNil()
502505
}
503506

504507
func (c *Cluster) validatePrometheusMode() error {
505-
var result error
506-
507508
allowedModes := sets.NewString(
508509
clusterv1alpha1.PrometheusModeFull,
509510
clusterv1alpha1.PrometheusModeExternalScrapeTargetsOnly,
@@ -517,7 +518,7 @@ func (c *Cluster) validatePrometheusMode() error {
517518
}
518519
}
519520

520-
return result
521+
return nil
521522
}
522523

523524
// Determine if this Cluster is a cluster or hub, single or multi environment

pkg/tarmak/environment/environment.go

+11-7
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ func NewFromConfig(tarmak interfaces.Tarmak, conf *tarmakv1alpha1.Environment, c
5353
log: tarmak.Log().WithField("environment", conf.Name),
5454
}
5555

56-
var result error
5756
var err error
58-
5957
// init provider
6058
e.provider, err = tarmak.ProviderByName(conf.Provider)
6159
if err != nil {
@@ -65,20 +63,23 @@ func NewFromConfig(tarmak interfaces.Tarmak, conf *tarmakv1alpha1.Environment, c
6563
// TODO RENABLE
6664
//networkCIDRs := []*net.IPNet{}
6765

66+
var result *multierror.Error
6867
for posCluster, _ := range clusters {
6968
clusterConf := clusters[posCluster]
7069
clusterIntf, err := cluster.NewFromConfig(e, clusterConf)
7170
if err != nil {
7271
result = multierror.Append(result, err)
7372
continue
7473
}
74+
7575
e.clusters = append(e.clusters, clusterIntf)
7676
if len(clusters) == 1 || clusterConf.Name == "hub" {
7777
e.HubCluster = clusterIntf
7878
}
7979
}
80+
8081
if result != nil {
81-
return nil, result
82+
return nil, result.ErrorOrNil()
8283
}
8384

8485
if e.HubCluster != nil {
@@ -277,7 +278,8 @@ func (e *Environment) Log() *logrus.Entry {
277278
return e.log
278279
}
279280

280-
func (e *Environment) Validate() (result error) {
281+
func (e *Environment) Validate() error {
282+
var result *multierror.Error
281283

282284
if err := e.Provider().Validate(); err != nil {
283285
result = multierror.Append(result, err)
@@ -287,18 +289,20 @@ func (e *Environment) Validate() (result error) {
287289
result = multierror.Append(result, err)
288290
}
289291

290-
return result
292+
return result.ErrorOrNil()
291293
}
292294

293-
func (e *Environment) ValidateAdminCIDRs() (result error) {
295+
func (e *Environment) ValidateAdminCIDRs() error {
296+
var result *multierror.Error
297+
294298
for _, cidr := range e.Config().AdminCIDRs {
295299
_, _, err := net.ParseCIDR(cidr)
296300
if err != nil {
297301
result = multierror.Append(result, fmt.Errorf("%s is not a valid CIDR format", cidr))
298302
}
299303
}
300304

301-
return result
305+
return result.ErrorOrNil()
302306
}
303307

304308
func (e *Environment) Verify() error {

pkg/tarmak/instance_pool/instance_pool.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ func NewFromConfig(cluster interfaces.Cluster, conf *clusterv1alpha1.InstancePoo
7575
return nil, fmt.Errorf("minCount does not equal maxCount but role is stateful. minCount=%d maxCount=%d", instancePool.Config().MinCount, instancePool.Config().MaxCount)
7676
}
7777

78-
var result error
79-
78+
var result *multierror.Error
8079
count := 0
8180
for pos, _ := range conf.Volumes {
8281
volume, err := NewVolumeFromConfig(count, provider, &conf.Volumes[pos])
@@ -96,7 +95,7 @@ func NewFromConfig(cluster interfaces.Cluster, conf *clusterv1alpha1.InstancePoo
9695
return nil, errors.New("no root volume given")
9796
}
9897

99-
return instancePool, result
98+
return instancePool, result.ErrorOrNil()
10099
}
101100

102101
func (n *InstancePool) Role() *role.Role {
@@ -189,24 +188,26 @@ func (n *InstancePool) AmazonAdditionalIAMPolicies() string {
189188
return fmt.Sprintf("[%s]", strings.Join(policies, ","))
190189
}
191190

192-
func (n *InstancePool) Validate() (result error) {
191+
func (n *InstancePool) Validate() error {
193192
return n.ValidateAllowCIDRs()
194193
}
195194

196-
func (n *InstancePool) ValidateAllowCIDRs() (result error) {
195+
func (n *InstancePool) ValidateAllowCIDRs() error {
196+
var result *multierror.Error
197+
197198
for _, cidr := range n.Config().AllowCIDRs {
198199
_, _, err := net.ParseCIDR(cidr)
199200
if err != nil {
200201
result = multierror.Append(result, fmt.Errorf("%s is not a valid CIDR format", cidr))
201202
}
202203
}
203204

204-
return result
205+
return result.ErrorOrNil()
205206
}
206207

207208
func (n *InstancePool) Labels() (string, error) {
208209
var labels []string
209-
var result error
210+
var result *multierror.Error
210211

211212
validKey := regexp.MustCompile(`^\w+$`)
212213
validValue := regexp.MustCompile(`^\w+$`)
@@ -221,12 +222,12 @@ func (n *InstancePool) Labels() (string, error) {
221222
labels = append(labels, fmt.Sprintf(" %s: \"%s\"", label.Key, label.Value))
222223
}
223224

224-
return strings.Join(labels, "\n"), result
225+
return strings.Join(labels, "\n"), result.ErrorOrNil()
225226
}
226227

227228
func (n *InstancePool) Taints() (string, error) {
228229
var taints []string
229-
var result error
230+
var result *multierror.Error
230231

231232
validKey := regexp.MustCompile(`^\w+$`)
232233
validValue := regexp.MustCompile(`^\w+$`)
@@ -246,5 +247,5 @@ func (n *InstancePool) Taints() (string, error) {
246247
taints = append(taints, fmt.Sprintf(" %s: \"%s:%s\"", taint.Key, taint.Value, taint.Effect))
247248
}
248249

249-
return strings.Join(taints, "\n"), result
250+
return strings.Join(taints, "\n"), result.ErrorOrNil()
250251
}

pkg/tarmak/provider/amazon/amazon.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ func (a *Amazon) getAvailablityZoneByRegion() (zones []string, err error) {
399399
}
400400

401401
func (a *Amazon) validateAvailabilityZones() error {
402-
var result error
402+
var result *multierror.Error
403403

404404
zones, err := a.getAvailablityZoneByRegion()
405405
if err != nil {
@@ -432,7 +432,7 @@ func (a *Amazon) validateAvailabilityZones() error {
432432
}
433433
}
434434
if result != nil {
435-
return result
435+
return result.ErrorOrNil()
436436
}
437437

438438
if len(availabilityZones) == 0 {
@@ -522,7 +522,7 @@ func (a *Amazon) vaultSession() (*session.Session, error) {
522522
}
523523

524524
func (a *Amazon) VerifyInstanceTypes(instancePools []interfaces.InstancePool) error {
525-
var result error
525+
var result *multierror.Error
526526

527527
svc, err := a.EC2()
528528
if err != nil {
@@ -540,11 +540,11 @@ func (a *Amazon) VerifyInstanceTypes(instancePools []interfaces.InstancePool) er
540540
}
541541
}
542542

543-
return result
543+
return result.ErrorOrNil()
544544
}
545545

546546
func (a *Amazon) verifyInstanceType(instanceType string, zones []string, svc EC2) error {
547-
var result error
547+
var result *multierror.Error
548548
var available bool
549549

550550
//Request offering, filter by given instance type
@@ -579,7 +579,7 @@ func (a *Amazon) verifyInstanceType(instanceType string, zones []string, svc EC2
579579
}
580580
}
581581

582-
return result
582+
return result.ErrorOrNil()
583583
}
584584

585585
// This methods converts and possibly validates a generic instance type to a

pkg/tarmak/tarmak.go

+4-7
Original file line numberDiff line numberDiff line change
@@ -281,20 +281,17 @@ func (t *Tarmak) Version() string {
281281
}
282282

283283
func (t *Tarmak) Validate() error {
284-
var err error
285-
var result error
284+
var result *multierror.Error
286285

287-
err = t.Cluster().Validate()
288-
if err != nil {
286+
if err := t.Cluster().Validate(); err != nil {
289287
result = multierror.Append(result, err)
290288
}
291289

292-
err = t.Cluster().Environment().Validate()
293-
if err != nil {
290+
if err := t.Cluster().Environment().Validate(); err != nil {
294291
result = multierror.Append(result, err)
295292
}
296293

297-
return result
294+
return result.ErrorOrNil()
298295
}
299296

300297
func (t *Tarmak) Verify() error {

pkg/tarmak/utils/networks.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func UnusedPort() int {
2121
}
2222

2323
func NetworkOverlap(netCIDRs []*net.IPNet) error {
24-
var result error
24+
var result *multierror.Error
2525
for i, _ := range netCIDRs {
2626
for j := i + 1; j < len(netCIDRs); j++ {
2727
// check for overlap per network
@@ -34,5 +34,5 @@ func NetworkOverlap(netCIDRs []*net.IPNet) error {
3434
}
3535
}
3636
}
37-
return result
37+
return result.ErrorOrNil()
3838
}

pkg/terraform/templating.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ type terraformTemplate struct {
118118

119119
func (t *terraformTemplate) Generate() error {
120120

121-
var result error
121+
var result *multierror.Error
122122
if err := t.generateRemoteStateConfig(); err != nil {
123123
result = multierror.Append(result, err)
124124
}
@@ -151,7 +151,7 @@ func (t *terraformTemplate) Generate() error {
151151
result = multierror.Append(result, err)
152152
}
153153

154-
return result
154+
return result.ErrorOrNil()
155155
}
156156

157157
func (t *terraformTemplate) data(module string) map[string]interface{} {

0 commit comments

Comments
 (0)