Compare commits
7 commits
1a2d04f044
...
ca2a261514
| Author | SHA1 | Date | |
|---|---|---|---|
| ca2a261514 | |||
| d6627617af | |||
| 05ae461817 | |||
| 85deade39b | |||
| d765c72b8f | |||
| c5bdcaec6a | |||
| 4991897eca |
6 changed files with 111 additions and 72 deletions
|
|
@ -55,6 +55,22 @@ func mapGetInstanceResponseToModel(
|
|||
)
|
||||
}
|
||||
|
||||
isConnectionInfoIncomplete := resp.ConnectionInfo == nil ||
|
||||
resp.ConnectionInfo.Host == nil || *resp.ConnectionInfo.Host == "" ||
|
||||
resp.ConnectionInfo.Port == nil || *resp.ConnectionInfo.Port == 0
|
||||
|
||||
if isConnectionInfoIncomplete {
|
||||
m.ConnectionInfo = postgresflexalpharesource.NewConnectionInfoValueNull()
|
||||
} else {
|
||||
m.ConnectionInfo = postgresflexalpharesource.NewConnectionInfoValueMust(
|
||||
postgresflexalpharesource.ConnectionInfoValue{}.AttributeTypes(ctx),
|
||||
map[string]attr.Value{
|
||||
"host": types.StringPointerValue(resp.ConnectionInfo.Host),
|
||||
"port": types.Int64PointerValue(resp.ConnectionInfo.Port),
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
m.ConnectionInfo.Host = types.StringValue("")
|
||||
if host, ok := resp.ConnectionInfo.GetHostOk(); ok {
|
||||
m.ConnectionInfo.Host = types.StringValue(host)
|
||||
|
|
@ -138,8 +154,8 @@ func mapGetDataInstanceResponseToModel(
|
|||
) error {
|
||||
m.BackupSchedule = types.StringValue(resp.GetBackupSchedule())
|
||||
handleEncryption(m, resp)
|
||||
m.ConnectionInfo.Host = types.StringValue(resp.ConnectionInfo.GetHost())
|
||||
m.ConnectionInfo.Port = types.Int64Value(resp.ConnectionInfo.GetPort())
|
||||
handleConnectionInfo(ctx, m, resp)
|
||||
|
||||
m.FlavorId = types.StringValue(resp.GetFlavorId())
|
||||
m.Id = utils.BuildInternalTerraformId(m.ProjectId.ValueString(), m.Region.ValueString(), m.InstanceId.ValueString())
|
||||
m.InstanceId = types.StringPointerValue(resp.Id)
|
||||
|
|
@ -169,6 +185,24 @@ func mapGetDataInstanceResponseToModel(
|
|||
return nil
|
||||
}
|
||||
|
||||
func handleConnectionInfo(ctx context.Context, m *dataSourceModel, resp *postgresflex.GetInstanceResponse) {
|
||||
isConnectionInfoIncomplete := resp.ConnectionInfo == nil ||
|
||||
resp.ConnectionInfo.Host == nil || *resp.ConnectionInfo.Host == "" ||
|
||||
resp.ConnectionInfo.Port == nil || *resp.ConnectionInfo.Port == 0
|
||||
|
||||
if isConnectionInfoIncomplete {
|
||||
m.ConnectionInfo = postgresflexalphadatasource.NewConnectionInfoValueNull()
|
||||
} else {
|
||||
m.ConnectionInfo = postgresflexalphadatasource.NewConnectionInfoValueMust(
|
||||
postgresflexalphadatasource.ConnectionInfoValue{}.AttributeTypes(ctx),
|
||||
map[string]attr.Value{
|
||||
"host": types.StringPointerValue(resp.ConnectionInfo.Host),
|
||||
"port": types.Int64PointerValue(resp.ConnectionInfo.Port),
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
func handleNetwork(ctx context.Context, m *dataSourceModel, resp *postgresflex.GetInstanceResponse) error {
|
||||
netAcl, diags := types.ListValueFrom(ctx, types.StringType, resp.Network.GetAcl())
|
||||
if diags.HasError() {
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
package postgresflexalpha
|
||||
|
|
@ -157,67 +157,70 @@ func TestMapFieldsCreate(t *testing.T) {
|
|||
expected resourceModel
|
||||
isValid bool
|
||||
}{
|
||||
//{
|
||||
// "default_values",
|
||||
// &postgresflex.GetUserResponse{
|
||||
// Id: utils.Ptr(int64(1)),
|
||||
// },
|
||||
// testRegion,
|
||||
// resourceModel{
|
||||
// UserId: types.Int64Value(1),
|
||||
// InstanceId: types.StringValue("iid"),
|
||||
// ProjectId: types.StringValue("pid"),
|
||||
// Name: types.StringNull(),
|
||||
// Roles: types.List(types.SetNull(types.StringType)),
|
||||
// Password: types.StringNull(),
|
||||
// Region: types.StringValue(testRegion),
|
||||
// Status: types.StringNull(),
|
||||
// ConnectionString: types.StringNull(),
|
||||
// },
|
||||
// true,
|
||||
//},
|
||||
//{
|
||||
// "simple_values",
|
||||
// &postgresflex.GetUserResponse{
|
||||
// Id: utils.Ptr(int64(1)),
|
||||
// Name: utils.Ptr("username"),
|
||||
// Status: utils.Ptr("status"),
|
||||
// },
|
||||
// testRegion,
|
||||
// resourceModel{
|
||||
// UserId: types.Int64Value(1),
|
||||
// InstanceId: types.StringValue("iid"),
|
||||
// ProjectId: types.StringValue("pid"),
|
||||
// Name: types.StringValue("username"),
|
||||
// Roles: types.List(types.SetNull(types.StringType)),
|
||||
// Password: types.StringNull(),
|
||||
// Region: types.StringValue(testRegion),
|
||||
// Status: types.StringValue("status"),
|
||||
// ConnectionString: types.StringValue("connection_string"),
|
||||
// },
|
||||
// true,
|
||||
//},
|
||||
//{
|
||||
// "null_fields_and_int_conversions",
|
||||
// &postgresflex.GetUserResponse{
|
||||
// Id: utils.Ptr(int64(1)),
|
||||
// Name: nil,
|
||||
// Status: nil,
|
||||
// },
|
||||
// testRegion,
|
||||
// resourceModel{
|
||||
// UserId: types.Int64Value(1),
|
||||
// InstanceId: types.StringValue("iid"),
|
||||
// ProjectId: types.StringValue("pid"),
|
||||
// Name: types.StringNull(),
|
||||
// Roles: types.List(types.SetNull(types.StringType)),
|
||||
// Password: types.StringNull(),
|
||||
// Region: types.StringValue(testRegion),
|
||||
// Status: types.StringNull(),
|
||||
// ConnectionString: types.StringNull(),
|
||||
// },
|
||||
// true,
|
||||
//},
|
||||
{
|
||||
"default_values",
|
||||
&postgresflex.GetUserResponse{
|
||||
Id: utils.Ptr(int64(1)),
|
||||
},
|
||||
testRegion,
|
||||
resourceModel{
|
||||
Id: types.Int64Value(1),
|
||||
UserId: types.Int64Value(1),
|
||||
InstanceId: types.StringValue("iid"),
|
||||
ProjectId: types.StringValue("pid"),
|
||||
Name: types.StringNull(),
|
||||
Roles: types.List(types.SetNull(types.StringType)),
|
||||
Password: types.StringNull(),
|
||||
Region: types.StringValue(testRegion),
|
||||
Status: types.StringNull(),
|
||||
ConnectionString: types.StringNull(),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"simple_values",
|
||||
&postgresflex.GetUserResponse{
|
||||
Id: utils.Ptr(int64(1)),
|
||||
Name: utils.Ptr("username"),
|
||||
Status: utils.Ptr("status"),
|
||||
},
|
||||
testRegion,
|
||||
resourceModel{
|
||||
Id: types.Int64Value(1),
|
||||
UserId: types.Int64Value(1),
|
||||
InstanceId: types.StringValue("iid"),
|
||||
ProjectId: types.StringValue("pid"),
|
||||
Name: types.StringValue("username"),
|
||||
Roles: types.List(types.SetNull(types.StringType)),
|
||||
Password: types.StringNull(),
|
||||
Region: types.StringValue(testRegion),
|
||||
Status: types.StringValue("status"),
|
||||
ConnectionString: types.StringNull(),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"null_fields_and_int_conversions",
|
||||
&postgresflex.GetUserResponse{
|
||||
Id: utils.Ptr(int64(1)),
|
||||
Name: nil,
|
||||
Status: nil,
|
||||
},
|
||||
testRegion,
|
||||
resourceModel{
|
||||
Id: types.Int64Value(1),
|
||||
UserId: types.Int64Value(1),
|
||||
InstanceId: types.StringValue("iid"),
|
||||
ProjectId: types.StringValue("pid"),
|
||||
Name: types.StringNull(),
|
||||
Roles: types.List(types.SetNull(types.StringType)),
|
||||
Password: types.StringNull(),
|
||||
Region: types.StringValue(testRegion),
|
||||
Status: types.StringNull(),
|
||||
ConnectionString: types.StringNull(),
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
"nil_response",
|
||||
nil,
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
package sqlserverflexalpha
|
||||
|
|
@ -416,6 +416,7 @@ func mapFieldsCreate(userResp *sqlserverflexalpha.CreateUserResponse, model *res
|
|||
return fmt.Errorf("user id not present")
|
||||
}
|
||||
userId := *user.Id
|
||||
model.Id = types.Int64Value(userId)
|
||||
model.UserId = types.Int64Value(userId)
|
||||
model.Username = types.StringPointerValue(user.Username)
|
||||
|
||||
|
|
@ -467,6 +468,7 @@ func mapFields(userResp *sqlserverflexalpha.GetUserResponse, model *resourceMode
|
|||
return fmt.Errorf("user id not present")
|
||||
}
|
||||
|
||||
model.Id = types.Int64Value(userId)
|
||||
model.UserId = types.Int64Value(userId)
|
||||
model.Username = types.StringPointerValue(user.Username)
|
||||
|
||||
|
|
|
|||
|
|
@ -67,9 +67,11 @@ func CreateInstanceWaitHandler(
|
|||
if s == nil || s.Id == nil || *s.Id != instanceId || s.Status == nil {
|
||||
return false, nil, nil
|
||||
}
|
||||
tflog.Debug(ctx, "waiting for instance ready", map[string]interface{}{
|
||||
"status": *s.Status,
|
||||
})
|
||||
tflog.Debug(
|
||||
ctx, "waiting for instance ready", map[string]interface{}{
|
||||
"status": *s.Status,
|
||||
},
|
||||
)
|
||||
switch *s.Status {
|
||||
default:
|
||||
return true, s, fmt.Errorf("instance with id %s has unexpected status %s", instanceId, *s.Status)
|
||||
|
|
@ -118,13 +120,13 @@ func CreateInstanceWaitHandler(
|
|||
instanceCreated = true
|
||||
instanceGetResponse = s
|
||||
case InstanceStateSuccess:
|
||||
if s.Network.AccessScope != nil && *s.Network.AccessScope == "SNA" {
|
||||
if s.Network == nil || s.Network.InstanceAddress == nil || *s.Network.InstanceAddress == "" {
|
||||
if s.Network != nil && s.Network.AccessScope != nil && *s.Network.AccessScope == "SNA" {
|
||||
if s.Network.InstanceAddress == nil {
|
||||
tflog.Warn(ctx, "Waiting for instance_address")
|
||||
return false, nil, nil
|
||||
}
|
||||
if s.Network.RouterAddress == nil || *s.Network.RouterAddress == "" {
|
||||
tflog.Info(ctx, "Waiting for router_address")
|
||||
if s.Network.RouterAddress == nil {
|
||||
tflog.Warn(ctx, "Waiting for router_address")
|
||||
return false, nil, nil
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue