Skip to content

Commit 4e18747

Browse files
authored
Allocate array capacity in advance (#2297)
1 parent 604569a commit 4e18747

File tree

7 files changed

+27
-17
lines changed

7 files changed

+27
-17
lines changed

pkg/csi/cinder/driver.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,10 @@ func NewDriver(endpoint, cluster string) *Driver {
9494
csi.ControllerServiceCapability_RPC_LIST_VOLUMES_PUBLISHED_NODES,
9595
csi.ControllerServiceCapability_RPC_GET_VOLUME,
9696
})
97-
d.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER})
97+
d.AddVolumeCapabilityAccessModes(
98+
[]csi.VolumeCapability_AccessMode_Mode{
99+
csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER,
100+
})
98101

99102
// ignoring error, because AddNodeServiceCapabilities is public
100103
// and so potentially used somewhere else.
@@ -109,7 +112,7 @@ func NewDriver(endpoint, cluster string) *Driver {
109112
}
110113

111114
func (d *Driver) AddControllerServiceCapabilities(cl []csi.ControllerServiceCapability_RPC_Type) {
112-
var csc []*csi.ControllerServiceCapability
115+
csc := make([]*csi.ControllerServiceCapability, 0, len(cl))
113116

114117
for _, c := range cl {
115118
klog.Infof("Enabling controller service capability: %v", c.String())
@@ -120,22 +123,28 @@ func (d *Driver) AddControllerServiceCapabilities(cl []csi.ControllerServiceCapa
120123
}
121124

122125
func (d *Driver) AddVolumeCapabilityAccessModes(vc []csi.VolumeCapability_AccessMode_Mode) []*csi.VolumeCapability_AccessMode {
123-
var vca []*csi.VolumeCapability_AccessMode
126+
vca := make([]*csi.VolumeCapability_AccessMode, 0, len(vc))
127+
124128
for _, c := range vc {
125129
klog.Infof("Enabling volume access mode: %v", c.String())
126130
vca = append(vca, NewVolumeCapabilityAccessMode(c))
127131
}
132+
128133
d.vcap = vca
134+
129135
return vca
130136
}
131137

132138
func (d *Driver) AddNodeServiceCapabilities(nl []csi.NodeServiceCapability_RPC_Type) error {
133-
var nsc []*csi.NodeServiceCapability
139+
nsc := make([]*csi.NodeServiceCapability, 0, len(nl))
140+
134141
for _, n := range nl {
135142
klog.Infof("Enabling node service capability: %v", n.String())
136143
nsc = append(nsc, NewNodeServiceCapability(n))
137144
}
145+
138146
d.nscap = nsc
147+
139148
return nil
140149
}
141150

@@ -149,6 +158,7 @@ func (d *Driver) ValidateControllerServiceRequest(c csi.ControllerServiceCapabil
149158
return nil
150159
}
151160
}
161+
152162
return status.Error(codes.InvalidArgument, c.String())
153163
}
154164

pkg/csi/manila/driver.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ func NewDriver(o *DriverOpts) (*Driver, error) {
170170
if err != nil {
171171
return nil, fmt.Errorf("failed to initialize proxied CSI driver: %v", err)
172172
}
173-
var nscaps []csi.NodeServiceCapability_RPC_Type
173+
nscaps := make([]csi.NodeServiceCapability_RPC_Type, 0, len(nodeCapsMap))
174174
for c := range nodeCapsMap {
175175
nscaps = append(nscaps, c)
176176

@@ -195,7 +195,7 @@ func (d *Driver) Run() {
195195
}
196196

197197
func (d *Driver) addControllerServiceCapabilities(cs []csi.ControllerServiceCapability_RPC_Type) {
198-
var caps []*csi.ControllerServiceCapability
198+
caps := make([]*csi.ControllerServiceCapability, 0, len(cs))
199199

200200
for _, c := range cs {
201201
klog.Infof("Enabling controller service capability: %v", c.String())
@@ -214,7 +214,7 @@ func (d *Driver) addControllerServiceCapabilities(cs []csi.ControllerServiceCapa
214214
}
215215

216216
func (d *Driver) addVolumeCapabilityAccessModes(vs []csi.VolumeCapability_AccessMode_Mode) {
217-
var caps []*csi.VolumeCapability_AccessMode
217+
caps := make([]*csi.VolumeCapability_AccessMode, 0, len(vs))
218218

219219
for _, c := range vs {
220220
klog.Infof("Enabling volume access mode: %v", c.String())
@@ -225,7 +225,7 @@ func (d *Driver) addVolumeCapabilityAccessModes(vs []csi.VolumeCapability_Access
225225
}
226226

227227
func (d *Driver) addNodeServiceCapabilities(ns []csi.NodeServiceCapability_RPC_Type) {
228-
var caps []*csi.NodeServiceCapability
228+
caps := make([]*csi.NodeServiceCapability, 0, len(ns))
229229

230230
for _, c := range ns {
231231
klog.Infof("Enabling node service capability: %v", c.String())

pkg/identity/keystone/authenticator.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func (k *Keystoner) GetTokenInfo(token string) (*tokenInfo, error) {
7171
return nil, fmt.Errorf("failed to extract roles information from Keystone response: %v", err)
7272
}
7373

74-
var userRoles []string
74+
userRoles := make([]string, 0, len(roles))
7575
for _, role := range roles {
7676
userRoles = append(userRoles, role.Name)
7777
}
@@ -90,19 +90,18 @@ func (k *Keystoner) GetTokenInfo(token string) (*tokenInfo, error) {
9090
// revive:enable:unexported-return
9191

9292
func (k *Keystoner) GetGroups(token string, userID string) ([]string, error) {
93-
var userGroups []string
94-
9593
k.client.ProviderClient.SetToken(token)
9694
allGroupPages, err := users.ListGroups(k.client, userID).AllPages()
9795
if err != nil {
98-
return userGroups, fmt.Errorf("failed to get user groups from Keystone: %v", err)
96+
return nil, fmt.Errorf("failed to get user groups from Keystone: %v", err)
9997
}
10098

10199
allGroups, err := groups.ExtractGroups(allGroupPages)
102100
if err != nil {
103-
return userGroups, fmt.Errorf("failed to extract user groups from Keystone response: %v", err)
101+
return nil, fmt.Errorf("failed to extract user groups from Keystone response: %v", err)
104102
}
105103

104+
userGroups := make([]string, 0, len(allGroups))
106105
for _, g := range allGroups {
107106
userGroups = append(userGroups, g.Name)
108107
}

pkg/identity/keystone/keystone.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ func (k *Auth) authorizeToken(w http.ResponseWriter, r *http.Request, data map[s
337337
attrs := authorizer.AttributesRecord{User: usr}
338338

339339
groups := spec["group"].([]interface{})
340+
usr.Groups = make([]string, 0, len(groups))
340341
for _, v := range groups {
341342
usr.Groups = append(usr.Groups, v.(string))
342343
}

pkg/ingress/controller/openstack/octavia.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func NewResourceTracker(ingressName string, client *gophercloud.ServiceClient, l
122122

123123
logger := log.WithFields(log.Fields{"ingress": ingressName, "lbID": lbID})
124124

125-
var oldPoolIDs []string
125+
oldPoolIDs := make([]string, 0, len(oldPoolMapping))
126126
for _, poolID := range oldPoolMapping {
127127
oldPoolIDs = append(oldPoolIDs, poolID)
128128
}
@@ -181,7 +181,7 @@ func (rt *ResourceTracker) CreateResources() error {
181181
rt.logger.WithFields(log.Fields{"poolName": pool.Name, "poolID": poolID}).Info("pool members updated ")
182182
}
183183

184-
var curPoolIDs []string
184+
curPoolIDs := make([]string, 0, len(poolMapping))
185185
for _, id := range poolMapping {
186186
curPoolIDs = append(curPoolIDs, id)
187187
}

pkg/openstack/instances.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ func nodeAddresses(srv *servers.Server, ports []ports.Port, networkingOpts Netwo
633633
return nil, err
634634
}
635635

636-
var networks []string
636+
networks := make([]string, 0, len(addresses))
637637
for k := range addresses {
638638
networks = append(networks, k)
639639
}

pkg/openstack/routes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func (r *Routes) ListRoutes(ctx context.Context, clusterName string) ([]*cloudpr
8282
return nil, err
8383
}
8484

85-
var routes []*cloudprovider.Route
85+
routes := make([]*cloudprovider.Route, 0, len(router.Routes))
8686
for _, item := range router.Routes {
8787
nodeName, foundNode := getNodeNameByAddr(item.NextHop, nodes)
8888
route := cloudprovider.Route{

0 commit comments

Comments
 (0)