Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AutoScaling] refactoring resource/opentelekomcloud_as_* #1963

Merged
merged 3 commits into from Oct 17, 2022
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Expand Up @@ -14,7 +14,7 @@ require (
github.com/jinzhu/copier v0.3.5
github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4
github.com/mitchellh/go-homedir v1.1.0
github.com/opentelekomcloud/gophertelekomcloud v0.5.23-0.20220921110146-fa37d7f29866
github.com/opentelekomcloud/gophertelekomcloud v0.5.23-0.20221006091234-40be4b181d4d
github.com/unknwon/com v1.0.1
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Expand Up @@ -204,8 +204,8 @@ github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce h1:RPclfga2SEJmgMmz2k
github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce/go.mod h1:uFMI8w+ref4v2r9jz+c9i1IfIttS/OkmLfrk1jne5hs=
github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
github.com/opentelekomcloud/gophertelekomcloud v0.5.23-0.20220921110146-fa37d7f29866 h1:TgZRIYIHHtGjDprCGXtviW4hecQWhSzj1bPe0hFWPW0=
github.com/opentelekomcloud/gophertelekomcloud v0.5.23-0.20220921110146-fa37d7f29866/go.mod h1:pzEP1kduNwv+hrI9R6/DFU/NiX7Kr9NiFjpQ7kJQTsM=
github.com/opentelekomcloud/gophertelekomcloud v0.5.23-0.20221006091234-40be4b181d4d h1:p4MgHl4p6On3v2cTiBwcC/rqtoQRN+li9EIc6EbA6Bw=
github.com/opentelekomcloud/gophertelekomcloud v0.5.23-0.20221006091234-40be4b181d4d/go.mod h1:pzEP1kduNwv+hrI9R6/DFU/NiX7Kr9NiFjpQ7kJQTsM=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
Expand Down
Expand Up @@ -119,7 +119,7 @@ func testAccCheckASV1ConfigurationDestroy(s *terraform.State) error {
continue
}

_, err := configurations.Get(client, rs.Primary.ID).Extract()
_, err := configurations.Get(client, rs.Primary.ID)
if err == nil {
return fmt.Errorf("AS configuration still exists")
}
Expand All @@ -145,15 +145,15 @@ func testAccCheckASV1ConfigurationExists(n string, configuration *configurations
return fmt.Errorf("error creating OpenTelekomCloud AutoScalingV1 client: %w", err)
}

found, err := configurations.Get(client, rs.Primary.ID).Extract()
found, err := configurations.Get(client, rs.Primary.ID)
if err != nil {
return err
}

if found.ID != rs.Primary.ID {
return fmt.Errorf("autoscaling Configuration not found")
}
configuration = &found
configuration = found

return nil
}
Expand Down Expand Up @@ -190,17 +190,17 @@ resource "opentelekomcloud_as_configuration_v1" "as_config"{
instance_config {
image = data.opentelekomcloud_images_image_v2.latest_image.id
disk {
size = 32768
size = 1000
volume_type = "uh-l1"
disk_type = "SYS"
}
disk {
size = 32768
size = 1000
volume_type = "co-p1"
disk_type = "DATA"
}
disk {
size = 32768
size = 1000
volume_type = "uh-l1"
disk_type = "DATA"
}
Expand Down
Expand Up @@ -126,7 +126,7 @@ func testAccCheckASV1GroupDestroy(s *terraform.State) error {
continue
}

_, err := groups.Get(client, rs.Primary.ID).Extract()
_, err := groups.Get(client, rs.Primary.ID)
if err == nil {
return fmt.Errorf("AS group still exists")
}
Expand All @@ -152,7 +152,7 @@ func testAccCheckASV1GroupExists(n string, group *groups.Group) resource.TestChe
return fmt.Errorf("error creating OpenTelekomCloud AutoScalingV1 client: %w", err)
}

found, err := groups.Get(client, rs.Primary.ID).Extract()
found, err := groups.Get(client, rs.Primary.ID)
if err != nil {
return err
}
Expand Down
Expand Up @@ -52,7 +52,7 @@ func testAccCheckASV1PolicyDestroy(s *terraform.State) error {
continue
}

_, err := policies.Get(client, rs.Primary.ID).Extract()
_, err := policies.Get(client, rs.Primary.ID)
if err == nil {
return fmt.Errorf("AS policy still exists")
}
Expand All @@ -78,12 +78,12 @@ func testAccCheckASV1PolicyExists(n string, policy *policies.Policy) resource.Te
return fmt.Errorf("error creating OpenTelekomCloud AutoScalingV1 client: %w", err)
}

found, err := policies.Get(client, rs.Primary.ID).Extract()
found, err := policies.Get(client, rs.Primary.ID)
if err != nil {
return err
}

policy = &found
policy = found

return nil
}
Expand Down Expand Up @@ -115,6 +115,8 @@ resource "opentelekomcloud_as_configuration_v1" "as_config"{
resource "opentelekomcloud_as_group_v1" "as_group"{
scaling_group_name = "as_group"
scaling_configuration_id = opentelekomcloud_as_configuration_v1.as_config.id
delete_instances = "yes"
delete_publicip = true
networks {
id = data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id
}
Expand Down
Expand Up @@ -110,7 +110,7 @@ func testAccCheckASV2PolicyDestroy(s *terraform.State) error {
continue
}

_, err := policies.Get(client, rs.Primary.ID).Extract()
_, err := policies.Get(client, rs.Primary.ID)
if err == nil {
return fmt.Errorf("AS policyV2 still exists")
}
Expand All @@ -136,12 +136,12 @@ func testAccCheckASV2PolicyExists(n string, policy *policies.Policy) resource.Te
return fmt.Errorf("error creating OpenTelekomCloud AutoScalingV2 client: %w", err)
}

found, err := policies.Get(asClient, rs.Primary.ID).Extract()
found, err := policies.Get(asClient, rs.Primary.ID)
if err != nil {
return err
}

policy = &found
policy = found

return nil
}
Expand Down
Expand Up @@ -217,22 +217,22 @@ func ResourceASConfiguration() *schema.Resource {
}
}

func getDisk(diskMeta []interface{}) []configurations.DiskOpts {
var diskOptsList []configurations.DiskOpts
func getDisk(diskMeta []interface{}) []configurations.Disk {
var diskOptsList []configurations.Disk

for _, v := range diskMeta {
disk := v.(map[string]interface{})
size := disk["size"].(int)
volumeType := disk["volume_type"].(string)
diskType := disk["disk_type"].(string)
diskOpts := configurations.DiskOpts{
diskOpts := configurations.Disk{
Size: size,
VolumeType: volumeType,
DiskType: diskType,
}
kmsID := disk["kms_id"].(string)
if kmsID != "" {
meta := make(map[string]string)
meta := make(map[string]interface{})
meta["__system__cmkid"] = kmsID
meta["__system__encrypted"] = "1"
diskOpts.Metadata = meta
Expand All @@ -243,12 +243,12 @@ func getDisk(diskMeta []interface{}) []configurations.DiskOpts {
return diskOptsList
}

func getPersonality(personalityMeta []interface{}) []configurations.PersonalityOpts {
var personalityOptsList []configurations.PersonalityOpts
func getPersonality(personalityMeta []interface{}) []configurations.Personality {
var personalityOptsList []configurations.Personality

for _, v := range personalityMeta {
personality := v.(map[string]interface{})
personalityOpts := configurations.PersonalityOpts{
personalityOpts := configurations.Personality{
Path: personality["path"].(string),
Content: personality["content"].(string),
}
Expand All @@ -258,14 +258,14 @@ func getPersonality(personalityMeta []interface{}) []configurations.PersonalityO
return personalityOptsList
}

func getPublicIps(publicIpMeta map[string]interface{}) *configurations.PublicIpOpts {
func getPublicIps(publicIpMeta map[string]interface{}) *configurations.PublicIp {
eipMap := publicIpMeta["eip"].([]interface{})[0].(map[string]interface{})
bandWidthMap := eipMap["bandwidth"].([]interface{})[0].(map[string]interface{})

publicIpOpts := &configurations.PublicIpOpts{
Eip: configurations.EipOpts{
IpType: eipMap["ip_type"].(string),
Bandwidth: configurations.BandwidthOpts{
publicIpOpts := &configurations.PublicIp{
Eip: configurations.Eip{
Type: eipMap["ip_type"].(string),
Bandwidth: configurations.Bandwidth{
Size: bandWidthMap["size"].(int),
ShareType: bandWidthMap["share_type"].(string),
ChargingMode: bandWidthMap["charging_mode"].(string),
Expand All @@ -276,11 +276,11 @@ func getPublicIps(publicIpMeta map[string]interface{}) *configurations.PublicIpO
return publicIpOpts
}

func getSecurityGroups(d *schema.ResourceData) []configurations.SecurityGroupOpts {
func getSecurityGroups(d *schema.ResourceData) []configurations.SecurityGroup {
rawSecGroups := d.Get("instance_config.0.security_groups").(*schema.Set).List()
secGroups := make([]configurations.SecurityGroupOpts, len(rawSecGroups))
secGroups := make([]configurations.SecurityGroup, len(rawSecGroups))
for i, raw := range rawSecGroups {
secGroups[i] = configurations.SecurityGroupOpts{
secGroups[i] = configurations.SecurityGroup{
ID: raw.(string),
}
}
Expand Down Expand Up @@ -327,7 +327,7 @@ func resourceASConfigurationCreate(ctx context.Context, d *schema.ResourceData,
}

log.Printf("[DEBUG] Create AS configuration Options: %#v", createOpts)
asConfigID, err := configurations.Create(client, createOpts).Extract()
asConfigID, err := configurations.Create(client, createOpts)
if err != nil {
return fmterr.Errorf("error creating ASConfiguration: %s", err)
}
Expand All @@ -343,7 +343,7 @@ func resourceASConfigurationRead(_ context.Context, d *schema.ResourceData, meta
return fmterr.Errorf("error creating OpenTelekomCloud AutoScaling client: %s", err)
}

asConfig, err := configurations.Get(client, d.Id()).Extract()
asConfig, err := configurations.Get(client, d.Id())
if err != nil {
return common.CheckDeletedDiag(d, err, "AS Configuration")
}
Expand Down Expand Up @@ -405,7 +405,7 @@ func resourceASConfigurationDelete(_ context.Context, d *schema.ResourceData, me
}

log.Printf("[DEBUG] Begin to delete AS configuration %q", d.Id())
if err := configurations.Delete(client, d.Id()).ExtractErr(); err != nil {
if err := configurations.Delete(client, d.Id()); err != nil {
return fmterr.Errorf("error deleting AS configuration: %s", err)
}

Expand All @@ -417,11 +417,10 @@ func getASGroupsByConfiguration(client *golangsdk.ServiceClient, configID string
listOpts := groups.ListOpts{
ConfigurationID: configID,
}
allPages, err := groups.List(client, listOpts).AllPages()
asGroups, err := groups.List(client, listOpts)
if err != nil {
return asGroups, fmt.Errorf("error getting ASGroups by configuration %q: %s", configID, err)
}
asGroups, err = groups.ExtractGroups(allPages)
return asGroups, err
}

Expand Down