Skip to content

Commit 465c0fa

Browse files
authored
Merge pull request #39 from aws/only_tag_own_networks
Don't tag pre-existing networks or IP addresses
2 parents d94a7cd + 49dc051 commit 465c0fa

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

pkg/cloud/network_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,15 @@ var _ = Describe("Network", func() {
8282
})
8383

8484
// Sets expectations network tag creation. To be used by tests that get/create networks.
85-
expectNetworkTags := func(networkID string) {
85+
expectNetworkTags := func(networkID string, expectTagCreation bool) {
8686
listTagsParams := &cloudstack.ListTagsParams{}
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}, string(cloud.ResourceTypeNetwork), gomock.Any()).Return(createTagsParams)
91-
rs.EXPECT().CreateTags(createTagsParams).Return(&cloudstack.CreateTagsResponse{}, nil)
90+
if expectTagCreation {
91+
rs.EXPECT().NewCreateTagsParams([]string{networkID}, string(cloud.ResourceTypeNetwork), gomock.Any()).Return(createTagsParams)
92+
rs.EXPECT().CreateTags(createTagsParams).Return(&cloudstack.CreateTagsResponse{}, nil)
93+
}
9294
}
9395

9496
Context("for an existing network", func() {
@@ -103,15 +105,15 @@ var _ = Describe("Network", func() {
103105
It("does not call to create a new network via GetOrCreateNetwork", func() {
104106
ns.EXPECT().GetNetworkID(fakeNetName).Return(fakeNetID, 1, nil)
105107
ns.EXPECT().GetNetworkByID(fakeNetID).Return(&cloudstack.Network{Type: isolatedNetworkType}, 1, nil)
106-
expectNetworkTags(fakeNetID)
108+
expectNetworkTags(fakeNetID, false)
107109

108110
Ω(client.GetOrCreateNetwork(csCluster)).Should(Succeed())
109111
})
110112

111113
It("resolves network details with network ID instead of network name", func() {
112114
ns.EXPECT().GetNetworkID(gomock.Any()).Return("", -1, errors.New("no match found for blah"))
113115
ns.EXPECT().GetNetworkByID(fakeNetID).Return(&cloudstack.Network{Type: isolatedNetworkType}, 1, nil)
114-
expectNetworkTags(fakeNetID)
116+
expectNetworkTags(fakeNetID, false)
115117

116118
csCluster.Spec.Network = fakeNetID
117119
Ω(client.GetOrCreateNetwork(csCluster)).Should(Succeed())
@@ -126,7 +128,7 @@ var _ = Describe("Network", func() {
126128
ns.EXPECT().NewCreateNetworkParams(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).
127129
Return(&cloudstack.CreateNetworkParams{})
128130
ns.EXPECT().CreateNetwork(gomock.Any()).Return(&cloudstack.CreateNetworkResponse{Id: netID}, nil)
129-
expectNetworkTags(netID)
131+
expectNetworkTags(netID, true)
130132

131133
Ω(client.GetOrCreateNetwork(csCluster)).Should(Succeed())
132134
})

pkg/cloud/tags.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ func (c *client) AddClusterTag(resourceType ResourceType, resourceID string, csC
5151
return err
5252
}
5353

54+
// Don't tag resources unless they are now being created by CAPC, or were previously created by CAPC.
55+
if !addCreatedByCAPCTag && existingTags[createdByCAPCTagName] == "" {
56+
return nil
57+
}
58+
5459
if existingTags[clusterTagName] == "" {
5560
newTags[clusterTagName] = "1"
5661
}

pkg/cloud/tags_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,11 @@ var _ = Describe("Tag Unit Tests", func() {
7676
if err != nil {
7777
Fail("Failed to get existing tags. Error: " + err.Error())
7878
}
79-
err = client.DeleteTags(cloud.ResourceTypeNetwork, networkID, existingTags)
80-
if err != nil {
81-
Fail("Failed to delete existing tags. Error: " + err.Error())
79+
if len(existingTags) > 0 {
80+
err = client.DeleteTags(cloud.ResourceTypeNetwork, networkID, existingTags)
81+
if err != nil {
82+
Fail("Failed to delete existing tags. Error: " + err.Error())
83+
}
8284
}
8385
})
8486

@@ -116,14 +118,14 @@ var _ = Describe("Tag Unit Tests", func() {
116118
Ω(client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, true)).Should(Succeed())
117119
})
118120

119-
It("adds the tags for a cluster (resource NOT created by CAPC)", func() {
121+
It("doesn't add the tags for a cluster (resource NOT created by CAPC)", func() {
120122
Ω(client.AddClusterTag(cloud.ResourceTypeNetwork, networkID, csCluster, false)).Should(Succeed())
121123

122124
// Verify tags
123125
tags, err := client.GetTags(cloud.ResourceTypeNetwork, networkID)
124126
Ω(err).Should(BeNil())
125127
Ω(tags[createdByCAPCTag]).Should(Equal(""))
126-
Ω(tags[clusterTag]).Should(Equal("1"))
128+
Ω(tags[clusterTag]).Should(Equal(""))
127129
})
128130

129131
It("deletes a cluster tag", func() {

0 commit comments

Comments
 (0)