providers/ionoscloud/dbaas_pgsql_cluster.go (48 lines of code) (raw):
package ionoscloud
import (
"context"
"log"
"github.com/GoogleCloudPlatform/terraformer/providers/ionoscloud/helpers"
"github.com/GoogleCloudPlatform/terraformer/terraformutils"
dbaas "github.com/ionos-cloud/sdk-go-dbaas-postgres"
)
type DBaaSPgSQLClusterGenerator struct {
Service
}
func (g DBaaSPgSQLClusterGenerator) createResources(
clustersList []dbaas.ClusterResponse,
) []terraformutils.Resource {
var resources []terraformutils.Resource
for _, cluster := range clustersList {
if cluster.Properties == nil || cluster.Properties.DisplayName == nil {
log.Printf(
"[WARNING] 'nil' values in the response for db cluster with ID %v, skipping this resource.\n",
*cluster.Id,
)
continue
}
resources = append(resources, terraformutils.NewResource(
*cluster.Id,
*cluster.Properties.DisplayName+"-"+*cluster.Id,
"ionoscloud_pg_cluster",
helpers.Ionos,
map[string]string{},
[]string{},
map[string]interface{}{}))
}
return resources
}
func (g *DBaaSPgSQLClusterGenerator) InitResources() error {
client := g.generateClient()
dbaasAPIClient := client.DBaaSPgSQLApiClient
output, _, err := dbaasAPIClient.ClustersApi.ClustersGet(context.TODO()).Execute()
if err != nil {
return err
}
if output.Items != nil {
g.Resources = g.createResources(*output.Items)
} else {
log.Printf("[WARNING] expected a response containing db clusters but received 'nil' instead.")
}
return nil
}