Skip to content

Commit 8b35138

Browse files
authored
chore(instance): remove redundant error check (#3051)
1 parent 4f6c3c2 commit 8b35138

File tree

1 file changed

+133
-137
lines changed

1 file changed

+133
-137
lines changed

internal/services/instance/server.go

Lines changed: 133 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -604,176 +604,172 @@ func ResourceInstanceServerRead(ctx context.Context, d *schema.ResourceData, m i
604604
// Read Server
605605
////
606606

607-
if err == nil {
608-
state, err := serverStateFlatten(server.State)
609-
if err != nil {
610-
return diag.FromErr(err)
611-
}
607+
state, err := serverStateFlatten(server.State)
608+
if err != nil {
609+
return diag.FromErr(err)
610+
}
612611

613-
_ = d.Set("state", state)
614-
_ = d.Set("zone", string(zone))
615-
_ = d.Set("name", server.Name)
616-
_ = d.Set("boot_type", server.BootType)
612+
_ = d.Set("state", state)
613+
_ = d.Set("zone", string(zone))
614+
_ = d.Set("name", server.Name)
615+
_ = d.Set("boot_type", server.BootType)
617616

618-
_ = d.Set("type", server.CommercialType)
619-
if len(server.Tags) > 0 {
620-
_ = d.Set("tags", server.Tags)
621-
}
617+
_ = d.Set("type", server.CommercialType)
618+
if len(server.Tags) > 0 {
619+
_ = d.Set("tags", server.Tags)
620+
}
622621

623-
_ = d.Set("security_group_id", zonal.NewID(zone, server.SecurityGroup.ID).String())
624-
// EnableIPv6 is deprecated
625-
_ = d.Set("enable_ipv6", server.EnableIPv6) //nolint:staticcheck
626-
_ = d.Set("enable_dynamic_ip", server.DynamicIPRequired)
627-
_ = d.Set("organization_id", server.Organization)
628-
_ = d.Set("project_id", server.Project)
629-
_ = d.Set("protected", server.Protected)
630-
631-
// Image could be empty in an import context.
632-
image := regional.ExpandID(d.Get("image").(string))
633-
if server.Image != nil && (image.ID == "" || scwvalidation.IsUUID(image.ID)) {
634-
_ = d.Set("image", zonal.NewID(zone, server.Image.ID).String())
635-
}
622+
_ = d.Set("security_group_id", zonal.NewID(zone, server.SecurityGroup.ID).String())
623+
// EnableIPv6 is deprecated
624+
_ = d.Set("enable_ipv6", server.EnableIPv6) //nolint:staticcheck
625+
_ = d.Set("enable_dynamic_ip", server.DynamicIPRequired)
626+
_ = d.Set("organization_id", server.Organization)
627+
_ = d.Set("project_id", server.Project)
628+
_ = d.Set("protected", server.Protected)
636629

637-
if server.PlacementGroup != nil {
638-
_ = d.Set("placement_group_id", zonal.NewID(zone, server.PlacementGroup.ID).String())
639-
_ = d.Set("placement_group_policy_respected", server.PlacementGroup.PolicyRespected)
640-
}
630+
// Image could be empty in an import context.
631+
image := regional.ExpandID(d.Get("image").(string))
632+
if server.Image != nil && (image.ID == "" || scwvalidation.IsUUID(image.ID)) {
633+
_ = d.Set("image", zonal.NewID(zone, server.Image.ID).String())
634+
}
641635

642-
if server.PrivateIP != nil {
643-
_ = d.Set("private_ip", types.FlattenStringPtr(server.PrivateIP))
644-
}
636+
if server.PlacementGroup != nil {
637+
_ = d.Set("placement_group_id", zonal.NewID(zone, server.PlacementGroup.ID).String())
638+
_ = d.Set("placement_group_policy_respected", server.PlacementGroup.PolicyRespected)
639+
}
645640

646-
if _, hasIPID := d.GetOk("ip_id"); server.PublicIP != nil && hasIPID { //nolint:staticcheck
647-
if !server.PublicIP.Dynamic { //nolint:staticcheck
648-
_ = d.Set("ip_id", zonal.NewID(zone, server.PublicIP.ID).String()) //nolint:staticcheck
649-
} else {
650-
_ = d.Set("ip_id", "")
651-
}
652-
} else {
653-
_ = d.Set("ip_id", "")
654-
}
641+
if server.PrivateIP != nil {
642+
_ = d.Set("private_ip", types.FlattenStringPtr(server.PrivateIP))
643+
}
655644

656-
if server.PublicIP != nil { //nolint:staticcheck
657-
_ = d.Set("public_ip", server.PublicIP.Address.String()) //nolint:staticcheck
658-
d.SetConnInfo(map[string]string{
659-
"type": "ssh",
660-
"host": server.PublicIP.Address.String(), //nolint:staticcheck
661-
})
645+
if _, hasIPID := d.GetOk("ip_id"); server.PublicIP != nil && hasIPID { //nolint:staticcheck
646+
if !server.PublicIP.Dynamic { //nolint:staticcheck
647+
_ = d.Set("ip_id", zonal.NewID(zone, server.PublicIP.ID).String()) //nolint:staticcheck
662648
} else {
663-
_ = d.Set("public_ip", "")
664-
d.SetConnInfo(nil)
649+
_ = d.Set("ip_id", "")
665650
}
651+
} else {
652+
_ = d.Set("ip_id", "")
653+
}
666654

667-
if len(server.PublicIPs) > 0 {
668-
_ = d.Set("public_ips", flattenServerPublicIPs(server.Zone, server.PublicIPs))
669-
} else {
670-
_ = d.Set("public_ips", []interface{}{})
671-
}
655+
if server.PublicIP != nil { //nolint:staticcheck
656+
_ = d.Set("public_ip", server.PublicIP.Address.String()) //nolint:staticcheck
657+
d.SetConnInfo(map[string]string{
658+
"type": "ssh",
659+
"host": server.PublicIP.Address.String(), //nolint:staticcheck
660+
})
661+
} else {
662+
_ = d.Set("public_ip", "")
663+
d.SetConnInfo(nil)
664+
}
672665

673-
if _, hasIPIDs := d.GetOk("ip_ids"); hasIPIDs {
674-
_ = d.Set("ip_ids", flattenServerIPIDs(server.PublicIPs))
675-
} else {
676-
_ = d.Set("ip_ids", []interface{}{})
677-
}
666+
if len(server.PublicIPs) > 0 {
667+
_ = d.Set("public_ips", flattenServerPublicIPs(server.Zone, server.PublicIPs))
668+
} else {
669+
_ = d.Set("public_ips", []interface{}{})
670+
}
678671

679-
if server.IPv6 != nil { //nolint:staticcheck
680-
_ = d.Set("ipv6_address", server.IPv6.Address.String()) //nolint:staticcheck
681-
_ = d.Set("ipv6_gateway", server.IPv6.Gateway.String()) //nolint:staticcheck
672+
if _, hasIPIDs := d.GetOk("ip_ids"); hasIPIDs {
673+
_ = d.Set("ip_ids", flattenServerIPIDs(server.PublicIPs))
674+
} else {
675+
_ = d.Set("ip_ids", []interface{}{})
676+
}
682677

683-
prefixLength, err := strconv.Atoi(server.IPv6.Netmask) //nolint:staticcheck
684-
if err != nil {
685-
return diag.FromErr(err)
686-
}
678+
if server.IPv6 != nil { //nolint:staticcheck
679+
_ = d.Set("ipv6_address", server.IPv6.Address.String()) //nolint:staticcheck
680+
_ = d.Set("ipv6_gateway", server.IPv6.Gateway.String()) //nolint:staticcheck
687681

688-
_ = d.Set("ipv6_prefix_length", prefixLength)
689-
} else {
690-
_ = d.Set("ipv6_address", nil)
691-
_ = d.Set("ipv6_gateway", nil)
692-
_ = d.Set("ipv6_prefix_length", nil)
682+
prefixLength, err := strconv.Atoi(server.IPv6.Netmask) //nolint:staticcheck
683+
if err != nil {
684+
return diag.FromErr(err)
693685
}
694686

695-
var additionalVolumesIDs []string
696-
697-
for i, serverVolume := range sortVolumeServer(server.Volumes) {
698-
if i == 0 {
699-
rootVolume := map[string]interface{}{}
700-
701-
vs, ok := d.Get("root_volume").([]map[string]interface{})
702-
if ok && len(vs) > 0 {
703-
rootVolume = vs[0]
704-
}
705-
706-
vol, err := api.GetUnknownVolume(&instancehelpers.GetUnknownVolumeRequest{
707-
VolumeID: serverVolume.ID,
708-
Zone: server.Zone,
709-
})
710-
if err != nil {
711-
return diag.FromErr(fmt.Errorf("failed to read instance volume %s: %w", serverVolume.ID, err))
712-
}
713-
714-
rootVolume["volume_id"] = zonal.NewID(zone, vol.ID).String()
715-
if vol.Size != nil {
716-
rootVolume["size_in_gb"] = int(uint64(*vol.Size) / gb)
717-
} else if serverVolume.Size != nil {
718-
rootVolume["size_in_gb"] = int(uint64(*serverVolume.Size) / gb)
719-
}
687+
_ = d.Set("ipv6_prefix_length", prefixLength)
688+
} else {
689+
_ = d.Set("ipv6_address", nil)
690+
_ = d.Set("ipv6_gateway", nil)
691+
_ = d.Set("ipv6_prefix_length", nil)
692+
}
720693

721-
if vol.IsBlockVolume() {
722-
rootVolume["sbs_iops"] = types.FlattenUint32Ptr(vol.Iops)
723-
}
694+
var additionalVolumesIDs []string
724695

725-
_, rootVolumeAttributeSet := d.GetOk("root_volume") // Related to https://github.com/hashicorp/terraform-plugin-sdk/issues/142
726-
rootVolume["delete_on_termination"] = d.Get("root_volume.0.delete_on_termination").(bool) || !rootVolumeAttributeSet
727-
rootVolume["volume_type"] = serverVolume.VolumeType
728-
rootVolume["boot"] = serverVolume.Boot
729-
rootVolume["name"] = serverVolume.Name
696+
for i, serverVolume := range sortVolumeServer(server.Volumes) {
697+
if i == 0 {
698+
rootVolume := map[string]interface{}{}
730699

731-
_ = d.Set("root_volume", []map[string]interface{}{rootVolume})
732-
} else {
733-
additionalVolumesIDs = append(additionalVolumesIDs, zonal.NewID(zone, serverVolume.ID).String())
700+
vs, ok := d.Get("root_volume").([]map[string]interface{})
701+
if ok && len(vs) > 0 {
702+
rootVolume = vs[0]
734703
}
735-
}
736704

737-
_ = d.Set("additional_volume_ids", additionalVolumesIDs)
738-
if len(additionalVolumesIDs) > 0 {
739-
_ = d.Set("additional_volume_ids", additionalVolumesIDs)
740-
}
741-
////
742-
// Read server user data
743-
////
744-
allUserData, _ := api.GetAllServerUserData(&instanceSDK.GetAllServerUserDataRequest{
745-
Zone: zone,
746-
ServerID: id,
747-
}, scw.WithContext(ctx))
705+
vol, err := api.GetUnknownVolume(&instancehelpers.GetUnknownVolumeRequest{
706+
VolumeID: serverVolume.ID,
707+
Zone: server.Zone,
708+
})
709+
if err != nil {
710+
return diag.FromErr(fmt.Errorf("failed to read instance volume %s: %w", serverVolume.ID, err))
711+
}
748712

749-
userData := make(map[string]interface{})
713+
rootVolume["volume_id"] = zonal.NewID(zone, vol.ID).String()
714+
if vol.Size != nil {
715+
rootVolume["size_in_gb"] = int(uint64(*vol.Size) / gb)
716+
} else if serverVolume.Size != nil {
717+
rootVolume["size_in_gb"] = int(uint64(*serverVolume.Size) / gb)
718+
}
750719

751-
for key, value := range allUserData.UserData {
752-
userDataValue, err := io.ReadAll(value)
753-
if err != nil {
754-
return diag.FromErr(err)
720+
if vol.IsBlockVolume() {
721+
rootVolume["sbs_iops"] = types.FlattenUint32Ptr(vol.Iops)
755722
}
756723

757-
userData[key] = string(userDataValue)
724+
_, rootVolumeAttributeSet := d.GetOk("root_volume") // Related to https://github.com/hashicorp/terraform-plugin-sdk/issues/142
725+
rootVolume["delete_on_termination"] = d.Get("root_volume.0.delete_on_termination").(bool) || !rootVolumeAttributeSet
726+
rootVolume["volume_type"] = serverVolume.VolumeType
727+
rootVolume["boot"] = serverVolume.Boot
728+
rootVolume["name"] = serverVolume.Name
729+
730+
_ = d.Set("root_volume", []map[string]interface{}{rootVolume})
731+
} else {
732+
additionalVolumesIDs = append(additionalVolumesIDs, zonal.NewID(zone, serverVolume.ID).String())
758733
}
734+
}
735+
736+
_ = d.Set("additional_volume_ids", additionalVolumesIDs)
737+
if len(additionalVolumesIDs) > 0 {
738+
_ = d.Set("additional_volume_ids", additionalVolumesIDs)
739+
}
740+
////
741+
// Read server user data
742+
////
743+
allUserData, _ := api.GetAllServerUserData(&instanceSDK.GetAllServerUserDataRequest{
744+
Zone: zone,
745+
ServerID: id,
746+
}, scw.WithContext(ctx))
759747

760-
_ = d.Set("user_data", userData)
748+
userData := make(map[string]interface{})
761749

762-
////
763-
// Read server private networks
764-
////
765-
ph, err := newPrivateNICHandler(api.API, id, zone)
750+
for key, value := range allUserData.UserData {
751+
userDataValue, err := io.ReadAll(value)
766752
if err != nil {
767753
return diag.FromErr(err)
768754
}
769755

770-
// set private networks
771-
err = ph.set(d)
772-
if err != nil {
773-
return diag.FromErr(err)
774-
}
756+
userData[key] = string(userDataValue)
757+
}
775758

776-
return nil
759+
_ = d.Set("user_data", userData)
760+
761+
////
762+
// Read server private networks
763+
////
764+
ph, err := newPrivateNICHandler(api.API, id, zone)
765+
if err != nil {
766+
return diag.FromErr(err)
767+
}
768+
769+
// set private networks
770+
err = ph.set(d)
771+
if err != nil {
772+
return diag.FromErr(err)
777773
}
778774

779775
return nil

0 commit comments

Comments
 (0)