Skip to content

Commit

Permalink
[AutoScaling] refactoring resource/opentelekomcloud_as_* (#1963)
Browse files Browse the repository at this point in the history
[AutoScaling] refactoring `resource/opentelekomcloud_as_*`

Summary of the Pull Request
PR Checklist

 Tests added/passed.
 Documentation updated.
 Schema updated.
 Release notes added.

Acceptance Steps Performed
=== RUN   TestAccASPolicyV2_basic
=== PAUSE TestAccASPolicyV2_basic
=== CONT  TestAccASPolicyV2_basic
--- PASS: TestAccASPolicyV2_basic (326.88s)
=== RUN   TestAccASPolicyV2_withSize
=== PAUSE TestAccASPolicyV2_withSize
=== CONT  TestAccASPolicyV2_withSize
--- PASS: TestAccASPolicyV2_withSize (246.98s)
=== RUN   TestAccASPolicyV2_conflictsAction
--- PASS: TestAccASPolicyV2_conflictsAction (99.42s)
PASS

=== RUN   TestAccASV1Policy_basic
=== PAUSE TestAccASV1Policy_basic
=== CONT  TestAccASV1Policy_basic
--- PASS: TestAccASV1Policy_basic (100.68s)
PASS

=== RUN   TestAccASV1Group_basic
=== PAUSE TestAccASV1Group_basic
=== CONT  TestAccASV1Group_basic
--- PASS: TestAccASV1Group_basic (254.86s)
=== RUN   TestAccASV1Group_RemoveWithSetMinNumber
=== PAUSE TestAccASV1Group_RemoveWithSetMinNumber
=== CONT  TestAccASV1Group_RemoveWithSetMinNumber
--- PASS: TestAccASV1Group_RemoveWithSetMinNumber (210.36s)
=== RUN   TestAccASV1Group_WithoutSecurityGroups
=== PAUSE TestAccASV1Group_WithoutSecurityGroups
=== CONT  TestAccASV1Group_WithoutSecurityGroups
--- PASS: TestAccASV1Group_WithoutSecurityGroups (210.36s)
PASS


=== RUN   TestAccASV1Configuration_basic
=== PAUSE TestAccASV1Configuration_basic
=== CONT  TestAccASV1Configuration_basic
--- PASS: TestAccASV1Configuration_basic (137.26s)
=== RUN   TestAccASV1Configuration_publicIP
=== PAUSE TestAccASV1Configuration_publicIP
=== CONT  TestAccASV1Configuration_publicIP
--- PASS: TestAccASV1Configuration_publicIP (145.24s)
=== RUN   TestAccASV1Configuration_invalidDiskSize
=== PAUSE TestAccASV1Configuration_invalidDiskSize
=== CONT  TestAccASV1Configuration_invalidDiskSize
--- PASS: TestAccASV1Configuration_invalidDiskSize (84.72s)
=== RUN   TestAccASV1Configuration_multipleSecurityGroups
=== PAUSE TestAccASV1Configuration_multipleSecurityGroups
=== CONT  TestAccASV1Configuration_multipleSecurityGroups
--- PASS: TestAccASV1Configuration_multipleSecurityGroups (160.15s)
PASS

Process finished with the exit code 0

Reviewed-by: Aloento
Reviewed-by: Vladimir Vshivkov
Reviewed-by: Rodion Gyrbu <fpsoff@outlook.com>
  • Loading branch information
anton-sidelnikov committed Oct 17, 2022
1 parent 0c12cda commit c8a9342
Show file tree
Hide file tree
Showing 12 changed files with 78 additions and 71 deletions.
4 changes: 4 additions & 0 deletions .golangci.yml
Expand Up @@ -34,3 +34,7 @@ linters-settings:
misspell:
ignore-words:
- unknwon
staticcheck:
checks:
- all
- '-SA1019' # disable the rule SA1019
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

0 comments on commit c8a9342

Please sign in to comment.