Skip to content

Commit 16de6ac

Browse files
test: assert read network resources are as expected (#412)
1 parent 30a3818 commit 16de6ac

8 files changed

Lines changed: 109 additions & 18 deletions

File tree

resources/output/kubernetes_service/aws_eks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ type VpcConfig struct {
2323
}
2424

2525
type KubernetesNetworkConfig struct {
26-
ServiceIpv4Cidr string `hcl:"service_ipv4_cidr" json:"service_ipv_4_cidr"`
26+
ServiceIpv4Cidr string `hcl:"service_ipv4_cidr" json:"service_ipv4_cidr"`
2727
}
2828

2929
type CertificateAuthority struct {

resources/output/kubernetes_service/gcp_gke.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ type GoogleContainerClusterAuth struct {
2828

2929
type GoogleContainerClusterIpAllocationPolicy struct {
3030
//ClusterIpv4CidrBlock string `hcl:"cluster_ipv_4_cidr_block"`
31-
ServicesIpv4CidrBlock string `hcl:"services_ipv4_cidr_block"`
31+
ServicesIpv4CidrBlock string `hcl:"services_ipv4_cidr_block" json:"services_ipv4_cidr_block"`
3232
}

resources/types/gcp/virtual_machine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (r GcpVirtualMachine) FromState(state *output.TfState) (*resourcespb.Virtua
7676
out.PublicSshKey = ""
7777
} else {
7878
// remove the expiration timestamp (https://cloud.google.com/compute/docs/connect/add-ssh-keys#gcloud_1)
79-
out.PublicSshKey = strings.TrimSpace(strings.SplitN(userAndKey[1], " google-ssh ", 2)[0])
79+
out.PublicSshKey = strings.SplitN(userAndKey[1], " google-ssh ", 2)[0]
8080
}
8181

8282
if r.Args.GeneratePublicIp {

test/e2e/common.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/multycloud/multy/api/proto/commonpb"
99
"github.com/multycloud/multy/api/proto/resourcespb"
1010
"github.com/multycloud/multy/api/services"
11+
"github.com/stretchr/testify/assert"
1112
"google.golang.org/protobuf/proto"
1213
"testing"
1314
)
@@ -34,6 +35,13 @@ func createNetworkWithInternetAccess(t *testing.T, ctx context.Context, location
3435
}
3536
cleanup(t, ctx, server.VnService, vn)
3637

38+
assert.Equal(t, createVnRequest.GetResource().GetCommonParameters().GetLocation(), vn.GetCommonParameters().GetLocation())
39+
assert.Equal(t, createVnRequest.GetResource().GetCommonParameters().GetCloudProvider(), vn.GetCommonParameters().GetCloudProvider())
40+
assert.Nil(t, vn.GetCommonParameters().GetResourceStatus())
41+
42+
assert.Equal(t, createVnRequest.GetResource().GetName(), vn.GetName())
43+
assert.Equal(t, createVnRequest.GetResource().GetCidrBlock(), vn.GetCidrBlock())
44+
3745
createPublicSubnetRequest := &resourcespb.CreateSubnetRequest{Resource: &resourcespb.SubnetArgs{
3846
Name: prefix + "-test-public-subnet",
3947
CidrBlock: publicSubnetCidr,
@@ -46,6 +54,12 @@ func createNetworkWithInternetAccess(t *testing.T, ctx context.Context, location
4654
}
4755
cleanup(t, ctx, server.SubnetService, publicSubnet)
4856

57+
assert.Nil(t, publicSubnet.GetCommonParameters().GetResourceStatus())
58+
59+
assert.Equal(t, createPublicSubnetRequest.GetResource().GetName(), publicSubnet.GetName())
60+
assert.Equal(t, createPublicSubnetRequest.GetResource().GetCidrBlock(), publicSubnet.GetCidrBlock())
61+
assert.Equal(t, createPublicSubnetRequest.GetResource().GetVirtualNetworkId(), publicSubnet.GetVirtualNetworkId())
62+
4963
createRtRequest := &resourcespb.CreateRouteTableRequest{Resource: &resourcespb.RouteTableArgs{
5064
Name: prefix + "-test-rt",
5165
VirtualNetworkId: vn.CommonParameters.ResourceId,
@@ -63,6 +77,14 @@ func createNetworkWithInternetAccess(t *testing.T, ctx context.Context, location
6377
}
6478
cleanup(t, ctx, server.RouteTableService, rt)
6579

80+
assert.Nil(t, rt.GetCommonParameters().GetResourceStatus())
81+
82+
assert.Equal(t, createRtRequest.GetResource().GetName(), rt.GetName())
83+
assert.Len(t, rt.GetRoutes(), 1)
84+
assert.Equal(t, createRtRequest.GetResource().GetRoutes()[0].GetCidrBlock(), rt.GetRoutes()[0].GetCidrBlock())
85+
assert.Equal(t, createRtRequest.GetResource().GetRoutes()[0].GetDestination(), rt.GetRoutes()[0].GetDestination())
86+
assert.Equal(t, createRtRequest.GetResource().GetVirtualNetworkId(), rt.GetVirtualNetworkId())
87+
6688
createRtaRequest := &resourcespb.CreateRouteTableAssociationRequest{Resource: &resourcespb.RouteTableAssociationArgs{
6789
SubnetId: publicSubnet.CommonParameters.ResourceId,
6890
RouteTableId: rt.CommonParameters.ResourceId,
@@ -74,6 +96,11 @@ func createNetworkWithInternetAccess(t *testing.T, ctx context.Context, location
7496
}
7597
cleanup(t, ctx, server.RouteTableAssociationService, rta)
7698

99+
assert.Nil(t, rta.GetCommonParameters().GetResourceStatus())
100+
101+
assert.Equal(t, createRtaRequest.GetResource().GetSubnetId(), rta.GetSubnetId())
102+
assert.Equal(t, createRtaRequest.GetResource().GetRouteTableId(), rta.GetRouteTableId())
103+
77104
createNsgRequest := &resourcespb.CreateNetworkSecurityGroupRequest{Resource: &resourcespb.NetworkSecurityGroupArgs{
78105
CommonParameters: &commonpb.ResourceCommonArgs{
79106
Location: location,
@@ -118,6 +145,23 @@ func createNetworkWithInternetAccess(t *testing.T, ctx context.Context, location
118145
}
119146
cleanup(t, ctx, server.NetworkSecurityGroupService, nsg)
120147

148+
assert.Equal(t, createNsgRequest.GetResource().GetCommonParameters().GetLocation(), nsg.GetCommonParameters().GetLocation())
149+
assert.Equal(t, createNsgRequest.GetResource().GetCommonParameters().GetCloudProvider(), nsg.GetCommonParameters().GetCloudProvider())
150+
assert.Nil(t, nsg.GetCommonParameters().GetResourceStatus())
151+
152+
assert.Equal(t, createNsgRequest.GetResource().GetName(), nsg.GetName())
153+
assert.Equal(t, createNsgRequest.GetResource().GetVirtualNetworkId(), nsg.GetVirtualNetworkId())
154+
assert.Len(t, nsg.GetRules(), len(createNsgRequest.GetResource().GetRules()))
155+
if len(nsg.GetRules()) == len(createNsgRequest.GetResource().GetRules()) {
156+
for i, rule := range createNsgRequest.GetResource().GetRules() {
157+
assert.Equal(t, rule.GetCidrBlock(), nsg.GetRules()[i].GetCidrBlock())
158+
assert.Equal(t, rule.GetDirection(), nsg.GetRules()[i].GetDirection())
159+
assert.Equal(t, rule.GetPortRange().GetFrom(), nsg.GetRules()[i].GetPortRange().GetFrom())
160+
assert.Equal(t, rule.GetPortRange().GetTo(), nsg.GetRules()[i].GetPortRange().GetTo())
161+
assert.Equal(t, rule.GetPriority(), nsg.GetRules()[i].GetPriority())
162+
}
163+
}
164+
121165
return publicSubnet, nsg
122166
}
123167

test/e2e/database_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,24 @@ func testDatabase(t *testing.T, cloud commonpb.CloudProvider) {
9393
}
9494
cleanup(t, ctx, server.DatabaseService, db)
9595

96+
readDb, err := server.DatabaseService.Read(ctx, &resourcespb.ReadDatabaseRequest{ResourceId: db.CommonParameters.ResourceId})
97+
if err != nil {
98+
t.Fatalf("unable to read db, %s", err)
99+
}
100+
101+
assert.Equal(t, createDbRequest.GetResource().GetCommonParameters().GetLocation(), readDb.GetCommonParameters().GetLocation())
102+
assert.Equal(t, createDbRequest.GetResource().GetCommonParameters().GetCloudProvider(), readDb.GetCommonParameters().GetCloudProvider())
103+
assert.Nil(t, readDb.GetCommonParameters().GetResourceStatus())
104+
105+
assert.Equal(t, createDbRequest.GetResource().GetName(), readDb.GetName())
106+
assert.Equal(t, createDbRequest.GetResource().GetSubnetId(), readDb.GetSubnetId())
107+
assert.Equal(t, createDbRequest.GetResource().GetEngine(), readDb.GetEngine())
108+
assert.Equal(t, createDbRequest.GetResource().GetEngineVersion(), readDb.GetEngineVersion())
109+
assert.Equal(t, createDbRequest.GetResource().GetStorageGb(), readDb.GetStorageGb())
110+
assert.Equal(t, createDbRequest.GetResource().GetSize(), readDb.GetSize())
111+
assert.Equal(t, createDbRequest.GetResource().GetUsername(), readDb.GetUsername())
112+
assert.Equal(t, createDbRequest.GetResource().GetPassword(), readDb.GetPassword())
113+
96114
time.Sleep(5 * time.Second)
97115

98116
out, err := exec.Command("mysql", "-h", db.Host, "-P", "3306", "-u", db.ConnectionUsername, "--password="+db.Password, "-e", "select 12+34;").CombinedOutput()

test/e2e/public_ip_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"context"
88
"github.com/multycloud/multy/api/proto/commonpb"
99
"github.com/multycloud/multy/api/proto/resourcespb"
10+
"github.com/stretchr/testify/assert"
1011
"golang.org/x/crypto/ssh"
1112
"testing"
1213
"time"
@@ -33,6 +34,12 @@ func testPublicIp(t *testing.T, ctx context.Context, vm *resourcespb.VirtualMach
3334
}
3435
cleanup(t, ctx, server.PublicIpService, pip)
3536

37+
assert.Equal(t, createPipRequest.GetResource().GetCommonParameters().GetLocation(), pip.GetCommonParameters().GetLocation())
38+
assert.Equal(t, createPipRequest.GetResource().GetCommonParameters().GetCloudProvider(), pip.GetCommonParameters().GetCloudProvider())
39+
assert.Nil(t, pip.GetCommonParameters().GetResourceStatus())
40+
41+
assert.Equal(t, createPipRequest.GetResource().GetName(), pip.GetName())
42+
3643
updateReq := getNoopUpdate(vm)
3744
updateReq.Resource.GeneratePublicIp = false
3845
updateReq.Resource.PublicIpId = pip.CommonParameters.ResourceId

test/e2e/vault_secret_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,17 @@ func testVaultSecret(t *testing.T, cloud commonpb.CloudProvider) {
4040
}
4141
cleanup(t, ctx, server.VaultService, vault)
4242

43+
readVault, err := server.VaultService.Read(ctx, &resourcespb.ReadVaultRequest{ResourceId: vault.CommonParameters.ResourceId})
44+
if err != nil {
45+
t.Fatalf("unable to read vault, %s", err)
46+
}
47+
48+
assert.Equal(t, createVaultRequest.GetResource().GetCommonParameters().GetLocation(), readVault.GetCommonParameters().GetLocation())
49+
assert.Equal(t, createVaultRequest.GetResource().GetCommonParameters().GetCloudProvider(), readVault.GetCommonParameters().GetCloudProvider())
50+
assert.Nil(t, readVault.GetCommonParameters().GetResourceStatus())
51+
52+
assert.Equal(t, createVaultRequest.GetResource().GetName(), readVault.GetName())
53+
4354
createVaultSecretRequest := &resourcespb.CreateVaultSecretRequest{Resource: &resourcespb.VaultSecretArgs{
4455
Name: "test-secret",
4556
Value: "test-value",
@@ -52,6 +63,17 @@ func testVaultSecret(t *testing.T, cloud commonpb.CloudProvider) {
5263
}
5364
cleanup(t, ctx, server.VaultSecretService, vaultSecret)
5465

66+
readVaultSecret, err := server.VaultSecretService.Read(ctx, &resourcespb.ReadVaultSecretRequest{ResourceId: vaultSecret.CommonParameters.ResourceId})
67+
if err != nil {
68+
t.Fatalf("unable to read vault secret, %s", err)
69+
}
70+
71+
assert.Nil(t, readVaultSecret.GetCommonParameters().GetResourceStatus())
72+
73+
assert.Equal(t, createVaultSecretRequest.GetResource().GetName(), readVaultSecret.GetName())
74+
assert.Equal(t, createVaultSecretRequest.GetResource().GetValue(), readVaultSecret.GetValue())
75+
assert.Equal(t, createVaultSecretRequest.GetResource().GetVaultId(), readVaultSecret.GetVaultId())
76+
5577
t.Run("vault-access-policy-reader", func(t *testing.T) {
5678
testReaderAccess(t, ctx, cloud, vm, config, vault, vaultSecret)
5779
})

test/e2e/virtual_machine_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -120,22 +120,22 @@ sudo echo "hello world" > /tmp/test.txt`)),
120120
t.Fatalf("unable to read virtual machine, %s", err)
121121
}
122122

123-
assert.Equal(t, readVm.GetCommonParameters().GetLocation(), createVmRequest.GetResource().GetCommonParameters().GetLocation())
124-
assert.Equal(t, readVm.GetCommonParameters().GetCloudProvider(), createVmRequest.GetResource().GetCommonParameters().GetCloudProvider())
123+
assert.Equal(t, createVmRequest.GetResource().GetCommonParameters().GetLocation(), readVm.GetCommonParameters().GetLocation())
124+
assert.Equal(t, createVmRequest.GetResource().GetCommonParameters().GetCloudProvider(), readVm.GetCommonParameters().GetCloudProvider())
125125
assert.Nil(t, readVm.GetCommonParameters().GetResourceStatus())
126126

127-
assert.Equal(t, readVm.GetName(), createVmRequest.GetResource().GetName())
128-
assert.Equal(t, readVm.GetVmSize(), createVmRequest.GetResource().GetVmSize())
129-
assert.Equal(t, readVm.GetPublicIpId(), createVmRequest.GetResource().GetPublicIpId())
130-
assert.Equal(t, readVm.GetSubnetId(), createVmRequest.GetResource().GetSubnetId())
131-
//assert.Equal(t, readVm.GetAvailabilityZone(), createVmRequest.GetResource().GetAvailabilityZone())
132-
assert.Equal(t, readVm.GetGeneratePublicIp(), createVmRequest.GetResource().GetGeneratePublicIp())
133-
assert.Equal(t, readVm.GetPublicSshKey(), createVmRequest.GetResource().GetPublicSshKey())
134-
assert.Equal(t, readVm.GetUserDataBase64(), createVmRequest.GetResource().GetUserDataBase64())
135-
assert.Equal(t, readVm.GetNetworkInterfaceIds(), createVmRequest.GetResource().GetNetworkInterfaceIds())
136-
assert.Equal(t, readVm.GetNetworkSecurityGroupIds(), createVmRequest.GetResource().GetNetworkSecurityGroupIds())
137-
assert.Equal(t, readVm.GetImageReference().GetOs(), createVmRequest.GetResource().GetImageReference().GetOs())
138-
assert.Equal(t, readVm.GetImageReference().GetVersion(), createVmRequest.GetResource().GetImageReference().GetVersion())
127+
assert.Equal(t, createVmRequest.GetResource().GetName(), readVm.GetName())
128+
assert.Equal(t, createVmRequest.GetResource().GetVmSize(), readVm.GetVmSize())
129+
assert.Equal(t, createVmRequest.GetResource().GetPublicIpId(), readVm.GetPublicIpId())
130+
assert.Equal(t, createVmRequest.GetResource().GetSubnetId(), readVm.GetSubnetId())
131+
//assert.Equal(t, createVmRequest.GetResource().GetAvailabilityZone(), readVm.GetAvailabilityZone())
132+
assert.Equal(t, createVmRequest.GetResource().GetGeneratePublicIp(), readVm.GetGeneratePublicIp())
133+
assert.Equal(t, createVmRequest.GetResource().GetPublicSshKey(), readVm.GetPublicSshKey())
134+
assert.Equal(t, createVmRequest.GetResource().GetUserDataBase64(), readVm.GetUserDataBase64())
135+
assert.Equal(t, createVmRequest.GetResource().GetNetworkInterfaceIds(), readVm.GetNetworkInterfaceIds())
136+
assert.Equal(t, createVmRequest.GetResource().GetNetworkSecurityGroupIds(), readVm.GetNetworkSecurityGroupIds())
137+
assert.Equal(t, createVmRequest.GetResource().GetImageReference().GetOs(), readVm.GetImageReference().GetOs())
138+
assert.Equal(t, createVmRequest.GetResource().GetImageReference().GetVersion(), readVm.GetImageReference().GetVersion())
139139

140140
return vm, nsg
141141
}
@@ -202,7 +202,7 @@ func makeSSHKeyPair() (string, string, error) {
202202
var pubKeyBuf strings.Builder
203203
pubKeyBuf.Write(ssh.MarshalAuthorizedKey(pub))
204204

205-
return pubKeyBuf.String(), privKeyBuf.String(), nil
205+
return strings.Trim(pubKeyBuf.String(), "\n"), privKeyBuf.String(), nil
206206
}
207207

208208
func signerFromPem(pemBytes []byte) (ssh.Signer, error) {

0 commit comments

Comments
 (0)