Skip to content

Commit df19a66

Browse files
authored
test: added sweeper tests (#201)
* added sweeper tests for: cloudRouters, networks, serviceProfiles * updated methods name
1 parent cc57b59 commit df19a66

4 files changed

Lines changed: 168 additions & 0 deletions

File tree

tests/sweepers/cloudRouters.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package sweepers
2+
3+
import (
4+
"context"
5+
"errors"
6+
"fmt"
7+
"github.com/equinix/equinix-sdk-go/services/fabricv4"
8+
"log"
9+
"net/http"
10+
)
11+
12+
func testSweepCloudRouters() error {
13+
var errs []error
14+
log.Printf("[DEBUG] Sweeping Fabric Cloud Routers")
15+
ctx := context.Background()
16+
fabric, err := newFabricClient()
17+
18+
equinixStatus := "/state"
19+
equalOperator := string(fabricv4.EXPRESSIONOPERATOR_EQUAL)
20+
limit := int32(100)
21+
cloudRouterSearchRequest := fabricv4.CloudRouterSearchRequest{
22+
Filter: &fabricv4.CloudRouterFilters{
23+
And: []fabricv4.CloudRouterFilter{
24+
{
25+
CloudRouterSimpleExpression: &fabricv4.CloudRouterSimpleExpression{
26+
Property: &equinixStatus,
27+
Operator: &equalOperator,
28+
Values: []string{string(fabricv4.EQUINIXSTATUS_PROVISIONED)},
29+
},
30+
},
31+
},
32+
},
33+
Pagination: &fabricv4.PaginationRequest{
34+
Limit: &limit,
35+
},
36+
}
37+
38+
fabricCloudRouters, _, err := fabric.CloudRoutersApi.SearchCloudRouters(ctx).CloudRouterSearchRequest(cloudRouterSearchRequest).Execute()
39+
40+
if err != nil {
41+
return fmt.Errorf("error getting fabric cloud router list for sweeping fabric cloud routers: %s", err)
42+
}
43+
44+
for _, cloudRouter := range fabricCloudRouters.Data {
45+
if isSweepableFabricTestResource(cloudRouter.GetName()) {
46+
log.Printf("[DEBUG] Deleting Cloud Router: %s", cloudRouter.GetName())
47+
resp, err := fabric.CloudRoutersApi.DeleteCloudRouterByUuid(ctx, cloudRouter.GetUuid()).Execute()
48+
if resp.StatusCode == http.StatusForbidden || resp.StatusCode == http.StatusNotFound {
49+
errs = append(errs, fmt.Errorf("error deleting fabric cloud routter: %s", err))
50+
}
51+
}
52+
}
53+
54+
return errors.Join(errs...)
55+
}

tests/sweepers/networks.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package sweepers
2+
3+
import (
4+
"context"
5+
"errors"
6+
"fmt"
7+
"github.com/equinix/equinix-sdk-go/services/fabricv4"
8+
"log"
9+
"net/http"
10+
)
11+
12+
func testSweepNetworks() error {
13+
var errs []error
14+
log.Printf("[DEBUG] Sweeping Fabric Networks")
15+
ctx := context.Background()
16+
fabric, err := newFabricClient()
17+
18+
name := fabricv4.NETWORKSEARCHFIELDNAME_NAME
19+
equalOperator := fabricv4.NETWORKFILTEROPERATOR_EQUAL
20+
limit := int32(100)
21+
offset := int32(0)
22+
23+
networkSearchRequest := fabricv4.NetworkSearchRequest{
24+
Filter: &fabricv4.NetworkFilter{
25+
And: []fabricv4.NetworkFilter{},
26+
Property: &name,
27+
Operator: &equalOperator,
28+
Values: fabricTestResourceSuffixes,
29+
},
30+
Pagination: &fabricv4.PaginationRequest{
31+
Offset: &offset,
32+
Limit: &limit,
33+
},
34+
}
35+
networks, _, err := fabric.NetworksApi.SearchNetworks(ctx).NetworkSearchRequest(networkSearchRequest).Execute()
36+
37+
if err != nil {
38+
return fmt.Errorf("error getting fabric network list for sweeping fabric networks: %s", err)
39+
}
40+
41+
for _, network := range networks.Data {
42+
if network.GetState() != "DELETED" && isSweepableFabricTestResource(network.GetName()) {
43+
log.Printf("[DEBUG] Deleting Network: %s", network.GetName())
44+
_, resp, err := fabric.NetworksApi.DeleteNetworkByUuid(ctx, network.GetUuid()).Execute()
45+
if resp.StatusCode == http.StatusForbidden || resp.StatusCode == http.StatusNotFound {
46+
errs = append(errs, fmt.Errorf("error deleting fabric network: %s", err))
47+
}
48+
}
49+
}
50+
51+
return errors.Join(errs...)
52+
}

tests/sweepers/serviceProfiles.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package sweepers
2+
3+
import (
4+
"context"
5+
"errors"
6+
"fmt"
7+
"github.com/equinix/equinix-sdk-go/services/fabricv4"
8+
"log"
9+
"net/http"
10+
)
11+
12+
func testSweepServiceProfiles() error {
13+
var errs []error
14+
log.Printf("[DEBUG] Sweeping Fabric Service Profiles")
15+
ctx := context.Background()
16+
fabric, err := newFabricClient()
17+
18+
limit := int32(100)
19+
offset := int32(0)
20+
equalOperator := string(fabricv4.EXPRESSIONOPERATOR_EQUAL)
21+
state := string(fabricv4.SERVICEPROFILESORTBY_STATE)
22+
23+
serviceProfileSearchRequest := fabricv4.ServiceProfileSearchRequest{
24+
Filter: &fabricv4.ServiceProfileFilter{
25+
ServiceProfileAndFilter: &fabricv4.ServiceProfileAndFilter{
26+
And: []fabricv4.ServiceProfileSimpleExpression{
27+
{
28+
Property: &state,
29+
Operator: &equalOperator,
30+
Values: []string{string(fabricv4.SERVICEPROFILESTATEENUM_ACTIVE), string(fabricv4.SERVICEPROFILESTATEENUM_PENDING_APPROVAL)},
31+
},
32+
},
33+
},
34+
},
35+
Pagination: &fabricv4.PaginationRequest{
36+
Limit: &limit,
37+
Offset: &offset,
38+
},
39+
}
40+
41+
fabricServiceProfiles, _, err := fabric.ServiceProfilesApi.SearchServiceProfiles(ctx).ServiceProfileSearchRequest(serviceProfileSearchRequest).Execute()
42+
43+
if err != nil {
44+
return fmt.Errorf("error getting fabric service profiles list for sweeping fabric service profiles: %s", err)
45+
}
46+
47+
for _, serviceProfile := range fabricServiceProfiles.Data {
48+
if isSweepableFabricTestResource(serviceProfile.GetName()) {
49+
log.Printf("[DEBUG] Deleting Service Profile: %s", serviceProfile.GetName())
50+
_, resp, err := fabric.ServiceProfilesApi.DeleteServiceProfileByUuid(ctx, serviceProfile.GetUuid()).Execute()
51+
if resp.StatusCode == http.StatusForbidden || resp.StatusCode == http.StatusNotFound {
52+
errs = append(errs, fmt.Errorf("error deleting fabric service profile: %s", err))
53+
}
54+
}
55+
}
56+
57+
return errors.Join(errs...)
58+
}

tests/sweepers/sweepers.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@ package sweepers
22

33
func RunTestSweepers() {
44
testSweepConnections()
5+
testSweepServiceProfiles()
6+
testSweepNetworks()
7+
testSweepCloudRouters()
58
}

0 commit comments

Comments
 (0)