Skip to content

Commit f7a94ca

Browse files
committed
More tests
1 parent eabe535 commit f7a94ca

File tree

2 files changed

+99
-11
lines changed

2 files changed

+99
-11
lines changed

pkg/cloud/network_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ var _ = Describe("Network", func() {
8787
createTagsParams := &cloudstack.CreateTagsParams{}
8888
rs.EXPECT().NewListTagsParams().Return(listTagsParams)
8989
rs.EXPECT().ListTags(listTagsParams).Return(&cloudstack.ListTagsResponse{}, nil)
90-
rs.EXPECT().NewCreateTagsParams([]string{networkID}, cloud.ResourceTypeNetwork, gomock.Any()).Return(createTagsParams)
90+
rs.EXPECT().NewCreateTagsParams([]string{networkID}, string(cloud.ResourceTypeNetwork), gomock.Any()).Return(createTagsParams)
9191
rs.EXPECT().CreateTags(createTagsParams).Return(&cloudstack.CreateTagsResponse{}, nil)
9292
}
9393

@@ -183,7 +183,7 @@ var _ = Describe("Network", func() {
183183
Ω(csCluster.Status.LBRuleID).Should(Equal(lbRuleID))
184184
})
185185

186-
It("doesn't create a new load blancer rule on create", func() {
186+
It("doesn't create a new load balancer rule on create", func() {
187187
lbs.EXPECT().NewListLoadBalancerRulesParams().Return(&cloudstack.ListLoadBalancerRulesParams{})
188188
lbs.EXPECT().ListLoadBalancerRules(gomock.Any()).
189189
Return(&cloudstack.ListLoadBalancerRulesResponse{

pkg/cloud/tags_test.go

Lines changed: 97 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,17 @@ var _ = Describe("Tag Unit Tests", func() {
4444
client, connectionErr := cloud.NewClient("../../cloud-config")
4545

4646
const (
47-
tagKey = "test_tag"
48-
tagValue = "arbitrary_value"
47+
tagKey = "test_tag"
48+
tagValue = "arbitrary_value"
49+
clusterID = "123456"
50+
createdByCAPCTag = "created_by_CAPC"
51+
clusterTag = "CAPC_cluster_" + clusterID
4952
)
5053

5154
var (
5255
networkID string
5356
testTags map[string]string
57+
csCluster *infrav1.CloudStackCluster
5458
)
5559

5660
BeforeEach(func() {
@@ -64,25 +68,109 @@ var _ = Describe("Tag Unit Tests", func() {
6468

6569
networkID = cluster.Status.NetworkID
6670
testTags = map[string]string{tagKey: tagValue}
67-
})
71+
csCluster = &infrav1.CloudStackCluster{}
72+
csCluster.SetUID(clusterID)
6873

69-
It("Tags a network with an arbitrary tag.", func() {
70-
// Delete the tag if it already exists from a prior test run, otherwise the test will fail.
71-
_ = client.DeleteTags(cloud.ResourceTypeNetwork, networkID, testTags)
72-
Ω(client.AddTags(cloud.ResourceTypeNetwork, networkID, testTags)).Should(Succeed())
74+
// Delete any existing tags
75+
existingTags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
76+
if err != nil {
77+
Fail("Failed to get existing tags. Error: " + err.Error())
78+
}
79+
err = client.DeleteTags(cloud.ResourceTypeNetwork, networkID, existingTags)
80+
if err != nil {
81+
Fail("Failed to delete existing tags. Error: " + err.Error())
82+
}
7383
})
7484

75-
It("Fetches said tag.", func() {
85+
It("Adds and gets a resource tag", func() {
86+
Ω(client.AddTags(cloud.ResourceTypeNetwork, networkID, testTags)).Should(Succeed())
7687
tags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
7788
Ω(err).Should(BeNil())
7889
Ω(tags[tagKey]).Should(Equal(tagValue))
7990
})
8091

81-
It("Deletes said tag.", func() {
92+
It("deletes a resource tag", func() {
93+
_ = client.AddTags(cloud.ResourceTypeNetwork, networkID, testTags)
8294
Ω(client.DeleteTags(cloud.ResourceTypeNetwork, networkID, testTags)).Should(Succeed())
8395
remainingTags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
8496
Ω(err).Should(BeNil())
8597
Ω(remainingTags[tagKey]).Should(Equal(""))
8698
})
99+
100+
It("adds the tags for a cluster (resource created by CAPC)", func() {
101+
Ω(client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)).Should(Succeed())
102+
103+
// Verify tags
104+
tags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
105+
Ω(err).Should(BeNil())
106+
Ω(tags[createdByCAPCTag]).Should(Equal("1"))
107+
Ω(tags[clusterTag]).Should(Equal("1"))
108+
})
109+
110+
It("does not fail when the cluster tags are added twice", func() {
111+
Ω(client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)).Should(Succeed())
112+
Ω(client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)).Should(Succeed())
113+
})
114+
115+
It("adds the tags for a cluster (resource NOT created by CAPC)", func() {
116+
Ω(client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, false)).Should(Succeed())
117+
118+
// Verify tags
119+
tags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
120+
Ω(err).Should(BeNil())
121+
Ω(tags[createdByCAPCTag]).Should(Equal(""))
122+
Ω(tags[clusterTag]).Should(Equal("1"))
123+
})
124+
125+
It("deletes a cluster tag", func() {
126+
_ = client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)
127+
Ω(client.DeleteClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster)).Should(Succeed())
128+
129+
// Verify tags
130+
tags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
131+
Ω(err).Should(BeNil())
132+
Ω(tags[createdByCAPCTag]).Should(Equal("1"))
133+
Ω(tags[clusterTag]).Should(Equal(""))
134+
})
135+
136+
It("deletes a CAPC created tag", func() {
137+
_ = client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)
138+
Ω(client.DeleteCreatedByCAPCTag(cloud.ResourceTypeNetwork, networkID)).Should(Succeed())
139+
140+
// Verify tags
141+
tags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
142+
Ω(err).Should(BeNil())
143+
Ω(tags[createdByCAPCTag]).Should(Equal(""))
144+
Ω(tags[clusterTag]).Should(Equal("1"))
145+
})
146+
147+
It("does not fail when cluster and CAPC created tags are deleted twice", func() {
148+
_ = client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)
149+
Ω(client.DeleteClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster)).Should(Succeed())
150+
Ω(client.DeleteClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster)).Should(Succeed())
151+
Ω(client.DeleteCreatedByCAPCTag(cloud.ResourceTypeNetwork, networkID)).Should(Succeed())
152+
Ω(client.DeleteCreatedByCAPCTag(cloud.ResourceTypeNetwork, networkID)).Should(Succeed())
153+
})
154+
155+
It("does not allow a resource to be deleted when there are no tags", func() {
156+
tagsAllowDisposal, err := client.DoClusterTagsAllowDisposal(cloud.ResourceTypeNetwork, networkID)
157+
Ω(err).Should(BeNil())
158+
Ω(tagsAllowDisposal).Should(BeFalse())
159+
})
160+
161+
It("does not allow a resource to be deleted when there is a cluster tag", func() {
162+
_ = client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)
163+
tagsAllowDisposal, err := client.DoClusterTagsAllowDisposal(cloud.ResourceTypeNetwork, networkID)
164+
Ω(err).Should(BeNil())
165+
Ω(tagsAllowDisposal).Should(BeFalse())
166+
})
167+
168+
It("does allow a resource to be deleted when there are no cluster tags and there is a CAPC created tag", func() {
169+
_ = client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)
170+
_ = client.DeleteClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster)
171+
tagsAllowDisposal, err := client.DoClusterTagsAllowDisposal(cloud.ResourceTypeNetwork, networkID)
172+
Ω(err).Should(BeNil())
173+
Ω(tagsAllowDisposal).Should(BeTrue())
174+
})
87175
})
88176
})

0 commit comments

Comments
 (0)