Skip to content

Commit 3522961

Browse files
#866 fixed gosec issues with block/file sorting, added a lot of unit tests for that sorting as well
1 parent 7db5469 commit 3522961

3 files changed

Lines changed: 171 additions & 7 deletions

File tree

plugin/testfixtures/SoftLayer_Account/getNasNetworkStorage.json

Lines changed: 78 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@
2121
"storageType": {
2222
"keyName": "ENDURANCE_FILE_STORAGE"
2323
},
24-
"username": "SL012345_1"
24+
"username": "SL012345_1",
25+
"billingItem": {
26+
"orderItem": {
27+
"order":{ "userRecord": { "username": "testUser"}}
28+
}
29+
},
30+
"fileNetworkMountAddress": "SomePathGoesHere"
2531
},
2632
{
2733
"activeTransactionCount": 0,
@@ -30,17 +36,84 @@
3036
"id": 21021427,
3137
"replicationPartnerCount": 0,
3238
"serviceResource": {
33-
"backendIpAddress": "nfswdc0401a-fz.service.softlayer.com",
39+
"backendIpAddress": "cccccc-fz.service.softlayer.com",
3440
"id": 5373,
3541
"name": "Storage Type 01 Aggregate staaswdc0401_hp01",
3642
"type": {
3743
"type": "NETAPP_STOR_AGGR"
44+
},
45+
"datacenter": {
46+
"name": "dal19"
3847
}
3948
},
40-
"serviceResourceBackendIpAddress": "nfswdc0401a-fz.service.softlayer.com",
49+
"serviceResourceBackendIpAddress": "cccccc-fz.service.softlayer.com",
4150
"storageType": {
42-
"keyName": "ENDURANCE_FILE_STORAGE"
51+
"keyName": "ENDU56RANCE_FILE_STORAGE"
52+
},
53+
"username": "3SL12345_1_REP_1",
54+
"billingItem": {
55+
"orderItem": {
56+
"order":{ "userRecord": { "username": "fffwww"}}
57+
}
58+
},
59+
"fileNetworkMountAddress": "SomePathGoesHere"
60+
},
61+
{
62+
"activeTransactionCount": 1,
63+
"bytesUsed": "534636456",
64+
"capacityGb": 120,
65+
"id": 123,
66+
"replicationPartnerCount": 0,
67+
"serviceResource": {
68+
"backendIpAddress": "bbbb-fz.service.softlayer.com",
69+
"id": 5373,
70+
"name": "Storage Type 01 Aggregate staaswdc0401_hp01",
71+
"type": {
72+
"type": "ZZZNETAPP_STOR_AGGR"
73+
},
74+
"datacenter": {
75+
"name": "hou01"
76+
}
77+
},
78+
"serviceResourceBackendIpAddress": "bbbb-fz.service.softlayer.com",
79+
"storageType": {
80+
"keyName": "E1NDURANCE_FILE_STORAGE"
81+
},
82+
"username": "SL112345_1_REP_1",
83+
"billingItem": {
84+
"orderItem": {
85+
"order":{ "userRecord": { "username": "sssdddd"}}
86+
}
87+
},
88+
"fileNetworkMountAddress": "podfgoicvbur"
89+
},
90+
{
91+
"activeTransactionCount": 1,
92+
"bytesUsed": "534636456",
93+
"capacityGb": 12430,
94+
"id": 154123,
95+
"replicationPartnerCount": 0,
96+
"serviceResource": {
97+
"backendIpAddress": "nfswdc0401a-fz.service.softlayer.com",
98+
"id": 53373,
99+
"name": "Storage Type 01 Aggregate staaswdc0401_hp01",
100+
"type": {
101+
"type": "aZZZNETAPP_STOR_AGGR"
102+
},
103+
"datacenter": {
104+
"name": "zou01"
105+
}
106+
},
107+
"serviceResourceBackendIpAddress": "aaaaa-fz.service.softlayer.com",
108+
"storageType": {
109+
"keyName": "aE1NDURANCE_FILE_STORAGE"
110+
},
111+
"username": "SL1123445_1_REP_1",
112+
"billingItem": {
113+
"orderItem": {
114+
"order":{ "userRecord": { "username": "zzzaaa"}}
115+
}
43116
},
44-
"username": "SL12345_1_REP_1"
117+
"fileNetworkMountAddress": "eryexv"
45118
}
46119
]

plugin/utils/blocksort.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func (a VolumeByTxnCount) Swap(i, j int) {
149149
}
150150
func (a VolumeByTxnCount) Less(i, j int) bool {
151151
if a[i].ActiveTransactionCount != nil && a[j].ActiveTransactionCount != nil {
152-
return int(*a[i].ActiveTransactionCount) < int(*a[j].ActiveTransactionCount)
152+
return uint(*a[i].ActiveTransactionCount) < uint(*a[j].ActiveTransactionCount)
153153
}
154154
return false
155155
}

plugin/utils/utils_test.go

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package utils_test
22

33
import (
4+
"sort"
5+
// "fmt"
46
. "github.com/onsi/ginkgo/v2"
57
. "github.com/onsi/gomega"
68
"github.com/spf13/pflag"
79
"github.ibm.com/SoftLayer/softlayer-cli/plugin/utils"
8-
)
10+
"github.com/softlayer/softlayer-go/datatypes"
11+
"github.ibm.com/SoftLayer/softlayer-cli/plugin/testhelpers")
912

1013
var _ = Describe("Utility Tests", func() {
1114
DescribeTable("FormatBoolPointerToYN Tests",
@@ -57,4 +60,92 @@ var _ = Describe("Utility Tests", func() {
5760
Expect(string(result)).To(Equal("asd"))
5861
})
5962
})
63+
Describe("Block Sorting Utility Tests", func() {
64+
var blockVolumes []datatypes.Network_Storage
65+
BeforeEach(func() {
66+
fakeSession := testhelpers.NewFakeSoftlayerSession([]string{})
67+
err := fakeSession.TransportHandler.DoRequest(fakeSession, "SoftLayer_Account", "getNasNetworkStorage", nil, nil, &blockVolumes)
68+
Expect(err).NotTo(HaveOccurred())
69+
})
70+
It("Test utils.VolumeById", func() {
71+
sort.Sort(utils.VolumeById(blockVolumes))
72+
Expect(len(blockVolumes)).To(Equal(4))
73+
Expect(*blockVolumes[0].Id).To(Equal(123))
74+
Expect(*blockVolumes[1].Id).To(Equal(154123))
75+
Expect(*blockVolumes[2].Id).To(Equal(4917309))
76+
Expect(*blockVolumes[3].Id).To(Equal(21021427))
77+
})
78+
It("Test utils.VolumeByUsername", func() {
79+
sort.Sort(utils.VolumeByUsername(blockVolumes))
80+
Expect(len(blockVolumes)).To(Equal(4))
81+
Expect(*blockVolumes[0].Id).To(Equal(21021427))
82+
Expect(*blockVolumes[1].Id).To(Equal(4917309))
83+
Expect(*blockVolumes[2].Id).To(Equal(154123))
84+
Expect(*blockVolumes[3].Id).To(Equal(123))
85+
})
86+
It("Test utils.VolumeByDatacenter", func() {
87+
sort.Sort(utils.VolumeByDatacenter(blockVolumes))
88+
Expect(len(blockVolumes)).To(Equal(4))
89+
Expect(*blockVolumes[0].Id).To(Equal(4917309))
90+
Expect(*blockVolumes[1].Id).To(Equal(21021427))
91+
Expect(*blockVolumes[2].Id).To(Equal(123))
92+
Expect(*blockVolumes[3].Id).To(Equal(154123))
93+
})
94+
It("Test utils.VolumeByStorageType", func() {
95+
sort.Sort(utils.VolumeByStorageType(blockVolumes))
96+
Expect(len(blockVolumes)).To(Equal(4))
97+
Expect(*blockVolumes[0].Id).To(Equal(123))
98+
Expect(*blockVolumes[1].Id).To(Equal(21021427))
99+
Expect(*blockVolumes[2].Id).To(Equal(4917309))
100+
Expect(*blockVolumes[3].Id).To(Equal(154123))
101+
})
102+
It("Test utils.VolumeByCapacity", func() {
103+
sort.Sort(utils.VolumeByCapacity(blockVolumes))
104+
Expect(len(blockVolumes)).To(Equal(4))
105+
Expect(*blockVolumes[0].Id).To(Equal(4917309))
106+
Expect(*blockVolumes[1].Id).To(Equal(21021427))
107+
Expect(*blockVolumes[2].Id).To(Equal(123))
108+
Expect(*blockVolumes[3].Id).To(Equal(154123))
109+
})
110+
It("Test utils.VolumeByBytesUsed", func() {
111+
sort.Sort(utils.VolumeByBytesUsed(blockVolumes))
112+
Expect(len(blockVolumes)).To(Equal(4))
113+
Expect(*blockVolumes[0].Id).To(Equal(21021427))
114+
Expect(*blockVolumes[1].Id).To(Equal(123))
115+
Expect(*blockVolumes[2].Id).To(Equal(154123))
116+
Expect(*blockVolumes[3].Id).To(Equal(4917309))
117+
})
118+
It("Test utils.VolumeByIPAddress", func() {
119+
sort.Sort(utils.VolumeByIPAddress(blockVolumes))
120+
Expect(len(blockVolumes)).To(Equal(4))
121+
Expect(*blockVolumes[0].Id).To(Equal(154123))
122+
Expect(*blockVolumes[1].Id).To(Equal(123))
123+
Expect(*blockVolumes[2].Id).To(Equal(21021427))
124+
Expect(*blockVolumes[3].Id).To(Equal(4917309))
125+
})
126+
It("Test utils.VolumeByTxnCount", func() {
127+
sort.Sort(utils.VolumeByTxnCount(blockVolumes))
128+
Expect(len(blockVolumes)).To(Equal(4))
129+
Expect(*blockVolumes[0].Id).To(Equal(4917309))
130+
Expect(*blockVolumes[1].Id).To(Equal(21021427))
131+
Expect(*blockVolumes[2].Id).To(Equal(123))
132+
Expect(*blockVolumes[3].Id).To(Equal(154123))
133+
})
134+
It("Test utils.VolumeByCreatedBy", func() {
135+
sort.Sort(utils.VolumeByCreatedBy(blockVolumes))
136+
Expect(len(blockVolumes)).To(Equal(4))
137+
Expect(*blockVolumes[0].Id).To(Equal(21021427))
138+
Expect(*blockVolumes[1].Id).To(Equal(123))
139+
Expect(*blockVolumes[2].Id).To(Equal(4917309))
140+
Expect(*blockVolumes[3].Id).To(Equal(154123))
141+
})
142+
It("Test utils.VolumeByMountAddr", func() {
143+
sort.Sort(utils.VolumeByMountAddr(blockVolumes))
144+
Expect(len(blockVolumes)).To(Equal(4))
145+
Expect(*blockVolumes[0].Id).To(Equal(4917309))
146+
Expect(*blockVolumes[1].Id).To(Equal(21021427))
147+
Expect(*blockVolumes[2].Id).To(Equal(154123))
148+
Expect(*blockVolumes[3].Id).To(Equal(123))
149+
})
150+
})
60151
})

0 commit comments

Comments
 (0)