Skip to content
This repository was archived by the owner on Mar 1, 2023. It is now read-only.

Commit dbc5449

Browse files
alexk53Alexandr Sokolov
andauthored
Fix acceptance test (#83)
* data_source_gcore_instance_test.go fixed * k8s and k8s's pools datasource fixed * lb pool/member/listener resource test fixed * router/instance/snapshot resource test fixed * k8s/k8s pool resources test fixed * add build tag on tests fix k8s/k8s pool resource test Co-authored-by: Alexandr Sokolov <[email protected]>
1 parent 4b5cd48 commit dbc5449

File tree

51 files changed

+1140
-301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1140
-301
lines changed

gcore/data_source_gcore_floatingip_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//go:build cloud
2+
// +build cloud
3+
14
package gcore
25

36
import (

gcore/data_source_gcore_image_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//go:build cloud
2+
// +build cloud
3+
14
package gcore
25

36
import (

gcore/data_source_gcore_instance_test.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
//go:build cloud
2+
// +build cloud
3+
14
package gcore
25

36
import (
47
"fmt"
58
"testing"
69

710
gcorecloud "github.com/G-Core/gcorelabscloud-go"
11+
"github.com/G-Core/gcorelabscloud-go/gcore/image/v1/images"
812
"github.com/G-Core/gcorelabscloud-go/gcore/instance/v1/instances"
913
"github.com/G-Core/gcorelabscloud-go/gcore/instance/v1/types"
1014
"github.com/G-Core/gcorelabscloud-go/gcore/task/v1/tasks"
@@ -13,10 +17,9 @@ import (
1317
)
1418

1519
const (
16-
flavorID = "g1-standard-1-2"
17-
//todo need to get actual image id
18-
imageID = "44e136a7-15c1-4b5f-a086-20b7b3237d40"
20+
flavorID = "g1-standard-1-2"
1921
instanceTestName = "test-vm"
22+
testOsDistro = "ubuntu"
2023
)
2124

2225
func TestAccInstanceDataSource(t *testing.T) {
@@ -30,12 +33,33 @@ func TestAccInstanceDataSource(t *testing.T) {
3033
t.Fatal(err)
3134
}
3235

36+
clientImage, err := CreateTestClient(cfg.Provider, imagesPoint, versionPointV1)
37+
if err != nil {
38+
t.Fatal(err)
39+
}
40+
41+
imgs, err := images.ListAll(clientImage, nil)
42+
if err != nil {
43+
t.Fatal(err)
44+
}
45+
46+
var img images.Image
47+
for _, i := range imgs {
48+
if i.OsDistro == testOsDistro {
49+
img = i
50+
break
51+
}
52+
}
53+
if img.ID == "" {
54+
t.Fatalf("images with os_distro='%s' does not exist", testOsDistro)
55+
}
56+
3357
optsV := volumes.CreateOpts{
3458
Name: volumeTestName,
3559
Size: volumeTestSize * 5,
3660
Source: volumes.Image,
3761
TypeName: volumes.Standard,
38-
ImageID: imageID,
62+
ImageID: img.ID,
3963
}
4064
volumeID, err := createTestVolume(clientVolume, optsV)
4165
if err != nil {

gcore/data_source_gcore_k8s_pool_test.go

Lines changed: 115 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,144 @@
1+
//go:build cloud
2+
// +build cloud
3+
14
package gcore
25

36
import (
47
"fmt"
8+
"net"
9+
"os"
10+
"strconv"
511
"testing"
612

13+
"github.com/G-Core/gcorelabscloud-go/gcore/k8s/v1/clusters"
14+
"github.com/G-Core/gcorelabscloud-go/gcore/k8s/v1/pools"
15+
"github.com/G-Core/gcorelabscloud-go/gcore/keypair/v2/keypairs"
16+
"github.com/G-Core/gcorelabscloud-go/gcore/network/v1/networks"
17+
"github.com/G-Core/gcorelabscloud-go/gcore/subnet/v1/subnets"
718
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
819
)
920

1021
func TestAccK8sPoolDataSource(t *testing.T) {
11-
fullName := "data.gcore_k8s_pool.acctest"
22+
cfg, err := createTestConfig()
23+
if err != nil {
24+
t.Fatal(err)
25+
}
26+
k8sClient, err := CreateTestClient(cfg.Provider, K8sPoint, versionPointV1)
27+
if err != nil {
28+
t.Fatal(err)
29+
}
30+
31+
netClient, err := CreateTestClient(cfg.Provider, networksPoint, versionPointV1)
32+
if err != nil {
33+
t.Fatal(err)
34+
}
35+
36+
subnetClient, err := CreateTestClient(cfg.Provider, subnetPoint, versionPointV1)
37+
if err != nil {
38+
t.Fatal(err)
39+
}
40+
41+
kpClient, err := CreateTestClient(cfg.Provider, keypairsPoint, versionPointV2)
42+
if err != nil {
43+
t.Fatal(err)
44+
}
45+
46+
netOpts := networks.CreateOpts{
47+
Name: networkTestName,
48+
CreateRouter: true,
49+
}
50+
networkID, err := createTestNetwork(netClient, netOpts)
51+
if err != nil {
52+
t.Fatal(err)
53+
}
54+
defer deleteTestNetwork(netClient, networkID)
55+
56+
gw := net.ParseIP("")
57+
subnetOpts := subnets.CreateOpts{
58+
Name: subnetTestName,
59+
NetworkID: networkID,
60+
ConnectToNetworkRouter: true,
61+
EnableDHCP: true,
62+
GatewayIP: &gw,
63+
}
1264

65+
subnetID, err := CreateTestSubnet(subnetClient, subnetOpts)
66+
if err != nil {
67+
t.Fatal(err)
68+
}
69+
70+
// update our new network router so that the k8s nodes will have access to the Nexus
71+
// registry to download images
72+
if err := patchRouterForK8S(cfg.Provider, networkID); err != nil {
73+
t.Fatal(err)
74+
}
75+
76+
pid, err := strconv.Atoi(os.Getenv("TEST_PROJECT_ID"))
77+
if err != nil {
78+
t.Fatal(err)
79+
}
80+
81+
kpOpts := keypairs.CreateOpts{
82+
Name: kpName,
83+
PublicKey: pkTest,
84+
ProjectID: pid,
85+
}
86+
keyPair, err := keypairs.Create(kpClient, kpOpts).Extract()
87+
if err != nil {
88+
t.Fatal(err)
89+
}
90+
defer keypairs.Delete(kpClient, keyPair.ID)
91+
92+
k8sOpts := clusters.CreateOpts{
93+
Name: testClusterName,
94+
FixedNetwork: networkID,
95+
FixedSubnet: subnetID,
96+
AutoHealingEnabled: true,
97+
KeyPair: keyPair.ID,
98+
Version: testClusterVersion,
99+
Pools: []pools.CreateOpts{{
100+
Name: testClusterPoolName,
101+
FlavorID: testPoolFlavor,
102+
NodeCount: testNodeCount,
103+
DockerVolumeSize: testDockerVolumeSize,
104+
DockerVolumeType: testDockerVolumeType,
105+
MinNodeCount: testMinNodeCount,
106+
MaxNodeCount: testMaxNodeCount,
107+
}},
108+
}
109+
clusterID, err := createTestCluster(k8sClient, k8sOpts)
110+
if err != nil {
111+
t.Fatal(err)
112+
}
113+
defer deleteTestCluster(k8sClient, clusterID)
114+
115+
cluster, err := clusters.Get(k8sClient, clusterID).Extract()
116+
if err != nil {
117+
t.Fatal(err)
118+
}
119+
pool := cluster.Pools[0]
120+
121+
fullName := "data.gcore_k8s_pool.acctest"
13122
ipTemplate := fmt.Sprintf(`
14123
data "gcore_k8s_pool" "acctest" {
15124
%s
16125
%s
17126
cluster_id = "%s"
18127
pool_id = "%s"
19128
}
20-
`, projectInfo(), regionInfo(), GCORE_CLUSTER_ID, GCORE_CLUSTER_POOL_ID)
129+
`, projectInfo(), regionInfo(), clusterID, pool.UUID)
21130

22131
resource.Test(t, resource.TestCase{
23-
PreCheck: func() { testAccPreCheckK8sPoolDataSource(t) },
132+
PreCheck: func() { testAccPreCheck(t) },
24133
ProviderFactories: testAccProviders,
25134
Steps: []resource.TestStep{
26135
{
27136
Config: ipTemplate,
28137
Check: resource.ComposeTestCheckFunc(
29138
testAccCheckResourceExists(fullName),
30-
resource.TestCheckResourceAttr(fullName, "cluster_id", GCORE_CLUSTER_ID),
31-
resource.TestCheckResourceAttr(fullName, "pool_id", GCORE_CLUSTER_POOL_ID),
139+
resource.TestCheckResourceAttr(fullName, "cluster_id", clusterID),
140+
resource.TestCheckResourceAttr(fullName, "pool_id", pool.UUID),
141+
resource.TestCheckResourceAttr(fullName, "name", pool.Name),
32142
),
33143
},
34144
},

0 commit comments

Comments
 (0)