Skip to content

Commit 42dbb9d

Browse files
Bug Fixes & Performance Improvements (#23)
* refactor: improvements for golangci-lint * fix: set status to 'Failure' in case of error Co-authored-by: Artashes Balabekyan <[email protected]>
1 parent 1d9577a commit 42dbb9d

File tree

7 files changed

+41
-104
lines changed

7 files changed

+41
-104
lines changed

controllers/api_handler.go

-13
Original file line numberDiff line numberDiff line change
@@ -128,16 +128,3 @@ func getSites(names []string) map[string]int {
128128
}
129129
return siteList
130130
}
131-
132-
func getTenantID(name string) int {
133-
tenants, err := Cred.GetTenants()
134-
if err != nil {
135-
fmt.Println(err)
136-
}
137-
for _, tenant := range tenants {
138-
if tenant.Name == name {
139-
return tenant.ID
140-
}
141-
}
142-
return 0
143-
}

controllers/storage.go

+17-11
Original file line numberDiff line numberDiff line change
@@ -52,23 +52,29 @@ func NewStorage() *Storage {
5252
func (s *Storage) Download() error {
5353
s.Lock()
5454
defer s.Unlock()
55-
err := s.PortsStorage.Download()
56-
err = s.SitesStorage.Download()
57-
err = s.TenantsStorage.Download()
58-
err = s.VNetStorage.Download()
59-
return err
55+
if err := s.PortsStorage.Download(); err != nil {
56+
return err
57+
}
58+
if err := s.SitesStorage.Download(); err != nil {
59+
return err
60+
}
61+
if err := s.TenantsStorage.Download(); err != nil {
62+
return err
63+
}
64+
if err := s.VNetStorage.Download(); err != nil {
65+
return err
66+
}
67+
return nil
6068
}
6169

6270
// DownloadWithInterval .
6371
func (s *Storage) DownloadWithInterval() {
6472
ticker := time.NewTicker(10 * time.Second)
6573
for {
66-
select {
67-
case <-ticker.C:
68-
err := s.Download()
69-
if err != nil {
70-
fmt.Println(err)
71-
}
74+
<-ticker.C
75+
err := s.Download()
76+
if err != nil {
77+
fmt.Println(err)
7278
}
7379
}
7480
}

controllers/translations.go

+4-20
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ func (r *VNetReconciler) VnetToVnetMeta(vnet *k8sv1alpha1.VNet) (*k8sv1alpha1.VN
3333

3434
for _, site := range vnet.Spec.Sites {
3535
siteNames = append(siteNames, site.Name)
36-
for _, port := range site.SwitchPorts {
37-
ports = append(ports, port)
38-
}
36+
ports = append(ports, site.SwitchPorts...)
3937
for _, gateway := range site.Gateways {
4038
apiGateways = append(apiGateways, makeGateway(gateway))
4139
}
@@ -226,11 +224,7 @@ func compareVNetMetaAPIVnetGateways(vnetMetaGateways []k8sv1alpha1.VNetMetaGatew
226224

227225
changelog, _ := diff.Diff(vnetGateways, apiGateways)
228226

229-
if len(changelog) > 0 {
230-
return false
231-
}
232-
233-
return true
227+
return len(changelog) <= 0
234228
}
235229

236230
func compareVNetMetaAPIVnetMembers(vnetMetaMembers []k8sv1alpha1.VNetMetaMember, apiVnetMembers []api.APIVNetInfoMember) bool {
@@ -264,22 +258,12 @@ func compareVNetMetaAPIVnetMembers(vnetMetaMembers []k8sv1alpha1.VNetMetaMember,
264258
}
265259

266260
changelog, _ := diff.Diff(vnetMembers, apiMembers)
267-
268-
if len(changelog) > 0 {
269-
return false
270-
}
271-
272-
return true
261+
return len(changelog) <= 0
273262
}
274263

275264
func compareVNetMetaAPIVnetTenants(vnetMetaTenants []int, apiVnetTenants []int) bool {
276265
changelog, _ := diff.Diff(vnetMetaTenants, apiVnetTenants)
277-
278-
if len(changelog) > 0 {
279-
return false
280-
}
281-
282-
return true
266+
return len(changelog) <= 0
283267
}
284268

285269
func compareVNetMetaAPIVnetSites(vnetMetaSites []k8sv1alpha1.VNetMetaSite, apiVnetSites []int) bool {

controllers/utils.go

-44
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,12 @@ limitations under the License.
1717
package controllers
1818

1919
import (
20-
"encoding/json"
2120
"fmt"
2221
"net"
23-
"strconv"
24-
25-
api "github.com/netrisai/netrisapi"
2622

2723
k8sv1alpha1 "github.com/netrisai/netris-operator/api/v1alpha1"
28-
"sigs.k8s.io/controller-runtime/pkg/event"
29-
"sigs.k8s.io/controller-runtime/pkg/predicate"
3024
)
3125

32-
func ignoreDeletionPredicate() predicate.Predicate {
33-
return predicate.Funcs{
34-
UpdateFunc: func(e event.UpdateEvent) bool {
35-
fmt.Println("UPDATE EVENT")
36-
// Ignore updates to CR status in which case metadata.Generation does not change
37-
return e.MetaOld.GetGeneration() != e.MetaNew.GetGeneration()
38-
},
39-
DeleteFunc: func(e event.DeleteEvent) bool {
40-
fmt.Println("DELETE EVENT")
41-
// Evaluates to false if the object has been confirmed deleted.
42-
return true
43-
},
44-
}
45-
}
46-
4726
func makeGateway(gateway k8sv1alpha1.VNetGateway) k8sv1alpha1.VNetMetaGateway {
4827
version := ""
4928
ip, ipNet, err := net.ParseCIDR(gateway.String())
@@ -67,26 +46,3 @@ func makeGateway(gateway k8sv1alpha1.VNetGateway) k8sv1alpha1.VNetMetaGateway {
6746
}
6847
return apiGateway
6948
}
70-
71-
func getVNet(id int) (vnet *api.APIVNet, err error) {
72-
vnets, err := Cred.GetVNets()
73-
if err != nil {
74-
return vnet, err
75-
}
76-
for _, v := range vnets {
77-
vid, err := strconv.Atoi(v.ID)
78-
if err != nil {
79-
return vnet, err
80-
}
81-
if vid == id {
82-
return v, nil
83-
}
84-
}
85-
86-
return vnet, fmt.Errorf("VNet not found in Netris")
87-
}
88-
89-
func toJSON(s interface{}) string {
90-
js, _ := json.Marshal(s)
91-
return string(js)
92-
}

controllers/vnet_controller.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func (r *VNetReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
8282
_, err := r.deleteVNet(vnet, vnetMeta)
8383
if err != nil {
8484
logger.Error(fmt.Errorf("{deleteVNet} %s", err), "")
85-
return u.patchVNetStatus(vnet, "Netris Failure", err.Error())
85+
return u.patchVNetStatus(vnet, "Failure", err.Error())
8686
}
8787
logger.Info("Vnet deleted")
8888
return ctrl.Result{}, nil
@@ -143,6 +143,9 @@ func updateVNet(vnet *api.APIVNetUpdate) (ctrl.Result, error, error) {
143143
return ctrl.Result{}, fmt.Errorf("{updateVNet} %s", err), err
144144
}
145145
resp, err := api.ParseAPIResponse(reply.Data)
146+
if err != nil {
147+
return ctrl.Result{}, err, err
148+
}
146149
if !resp.IsSuccess {
147150
return ctrl.Result{}, fmt.Errorf("{updateVNet} %s", fmt.Errorf(resp.Message)), fmt.Errorf(resp.Message)
148151
}
@@ -152,6 +155,9 @@ func updateVNet(vnet *api.APIVNetUpdate) (ctrl.Result, error, error) {
152155
return ctrl.Result{}, fmt.Errorf("{updateVNet} %s", err), err
153156
}
154157
resp, err = api.ParseAPIResponse(reply.Data)
158+
if err != nil {
159+
return ctrl.Result{}, err, err
160+
}
155161
if !resp.IsSuccess {
156162
return ctrl.Result{}, fmt.Errorf("{updateVNet} %s", fmt.Errorf(resp.Message)), fmt.Errorf(resp.Message)
157163
}
@@ -167,6 +173,9 @@ func (r *VNetReconciler) deleteVNet(vnet *k8sv1alpha1.VNet, vnetMeta *k8sv1alpha
167173
return ctrl.Result{}, fmt.Errorf("{deleteVNet} %s", err)
168174
}
169175
resp, err := api.ParseAPIResponse(reply.Data)
176+
if err != nil {
177+
return ctrl.Result{}, err
178+
}
170179
if !resp.IsSuccess {
171180
if resp.Message != "Invalid circuit ID" {
172181
return ctrl.Result{}, fmt.Errorf("{deleteVNet} %s", fmt.Errorf(resp.Message))

controllers/vnetmeta_controller.go

+8-13
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ func (r *VNetMetaReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
8383

8484
if vnetMeta.Spec.ID == 0 {
8585
debugLogger.Info("ID Not found in meta")
86-
8786
if vnetMeta.Spec.Imported {
8887
logger.Info("Importing vnet")
8988
debugLogger.Info("Imported yaml mode. Finding VNet by name")
@@ -94,12 +93,6 @@ func (r *VNetMetaReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
9493
debugLogger.Info(err.Error())
9594
return ctrl.Result{RequeueAfter: requeueInterval}, nil
9695
}
97-
if vnet.Provisioning == 0 {
98-
provisionState = "Active"
99-
}
100-
if vnet.State == "disabled" {
101-
provisionState = "Disabled"
102-
}
10396
vnetMeta.Spec.ID = vnetID
10497
err = r.Patch(context.Background(), vnetMeta.DeepCopyObject(), client.Merge, &client.PatchOptions{})
10598
if err != nil {
@@ -117,22 +110,22 @@ func (r *VNetMetaReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
117110
logger.Info("Creating VNet")
118111
if _, err, errMsg := r.createVNet(vnetMeta); err != nil {
119112
logger.Error(fmt.Errorf("{createVNet} %s", err), "")
120-
return u.updateVNetStatus(vnetCR, "Netris Failure", errMsg.Error())
113+
return u.updateVNetStatus(vnetCR, "Failure", errMsg.Error())
121114
}
122115
logger.Info("VNet Created")
123116
} else {
124117
vnets, err := Cred.GetVNetsByID(vnetMeta.Spec.ID)
125118
if err != nil {
126119
logger.Error(fmt.Errorf("{GetVNetsByID} %s", err), "")
127-
return u.updateVNetStatus(vnetCR, "Netris Failure", err.Error())
120+
return u.updateVNetStatus(vnetCR, "Failure", err.Error())
128121
}
129122
if len(vnets) == 0 {
130123
debugLogger.Info("VNet not found in Netris")
131124
debugLogger.Info("Going to create VNet")
132125
logger.Info("Creating VNet")
133126
if _, err, errMsg := r.createVNet(vnetMeta); err != nil {
134127
logger.Error(fmt.Errorf("{createVNet} %s", err), "")
135-
return u.updateVNetStatus(vnetCR, "Netris Failure", errMsg.Error())
128+
return u.updateVNetStatus(vnetCR, "Failure", errMsg.Error())
136129
}
137130
logger.Info("VNet Created")
138131
} else {
@@ -158,15 +151,14 @@ func (r *VNetMetaReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
158151
_, err, errMsg := updateVNet(updateVnet)
159152
if err != nil {
160153
logger.Error(fmt.Errorf("{updateVNet} %s", err), "")
161-
return u.updateVNetStatus(vnetCR, "Netris Error", errMsg.Error())
154+
return u.updateVNetStatus(vnetCR, "Failure", errMsg.Error())
162155
}
163156
logger.Info("VNet Updated")
164157
}
165158
}
166159
}
167160

168161
return u.updateVNetStatus(vnetCR, provisionState, "Success")
169-
// return ctrl.Result{RequeueAfter: requeueInterval}, nil
170162
}
171163

172164
// SetupWithManager .
@@ -196,7 +188,10 @@ func (r *VNetMetaReconciler) createVNet(vnetMeta *k8sv1alpha1.VNetMeta) (ctrl.Re
196188
}
197189

198190
idStruct := api.APIVNetAddReply{}
199-
api.CustomDecode(resp.Data, &idStruct)
191+
err = api.CustomDecode(resp.Data, &idStruct)
192+
if err != nil {
193+
return ctrl.Result{}, err, err
194+
}
200195

201196
debugLogger.Info("VNet Created", "id", idStruct.CircuitID)
202197

deploy/charts/netris-operator/Chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.2.5
18+
version: 0.2.6
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to
2222
# follow Semantic Versioning. They should reflect the version the application is using.
23-
appVersion: v0.3.3
23+
appVersion: v0.3.4
2424
home: https://github.com/netrisai/netris-operator
2525
icon: https://www.netris.ai/wp-content/uploads/2020/05/logo-600.png # [todo] Change url to permalink
2626
keywords:

0 commit comments

Comments
 (0)