Skip to content

Commit

Permalink
refactor registry mod delete method (#1267)
Browse files Browse the repository at this point in the history
  • Loading branch information
laurenolivia committed Mar 12, 2024
1 parent 441656a commit fa124c5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 8 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ BUG FIXES:
* `r/tfe_workspace`: Change the error message returned when a workspace cannot be safe-deleted to reflect that the error can happen when the latest state is still being processed @uturunku1 [1274](https://github.com/hashicorp/terraform-provider-tfe/pull/1274)


ENHANCEMENTS:
* `r/tfe_registry_module`: Update `Delete` method to call `DeleteByName` when `module_provider` is not present, and `DeleteProvider` when `module_provider` exists @laurenolivia[1267](https://github.com/hashicorp/terraform-provider-tfe/pull/1267)

## v0.52.0

FEATURES:
Expand Down
32 changes: 24 additions & 8 deletions internal/provider/resource_tfe_registry_module.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ package provider

import (
"context"
"errors"
"fmt"
"log"
"strings"
Expand Down Expand Up @@ -414,15 +415,30 @@ func resourceTFERegistryModuleRead(d *schema.ResourceData, meta interface{}) err
func resourceTFERegistryModuleDelete(d *schema.ResourceData, meta interface{}) error {
config := meta.(ConfiguredClient)

log.Printf("[DEBUG] Delete registry module: %s", d.Id())
organization := d.Get("organization").(string)
name := d.Get("name").(string)
err := config.Client.RegistryModules.Delete(ctx, organization, name)
if err != nil {
if err == tfe.ErrResourceNotFound {
return nil
// Fields required to delete registry module by provider
// To delete by name, Provider field is not required
rModID := tfe.RegistryModuleID{
Organization: d.Get("organization").(string),
Name: d.Get("name").(string),
Provider: d.Get("module_provider").(string),
Namespace: d.Get("namespace").(string),
RegistryName: tfe.RegistryName(d.Get("registry_name").(string)),
}

if v, ok := d.GetOk("module_provider"); ok && v.(string) != "" {
log.Printf("[DEBUG] Delete registry module by provider: %s", d.Id())

err := config.Client.RegistryModules.DeleteProvider(ctx, rModID)
if err != nil && !errors.Is(err, tfe.ErrResourceNotFound) {
return fmt.Errorf("error deleting registry module provider: %w", err)
}
} else {
log.Printf("[DEBUG] Delete registry module by name: %s", d.Id())

err := config.Client.RegistryModules.DeleteByName(ctx, rModID)
if err != nil && !errors.Is(err, tfe.ErrResourceNotFound) {
return fmt.Errorf("Error deleting registry module %s: %w", d.Id(), err)
}
return fmt.Errorf("Error deleting registry module %s: %w", d.Id(), err)
}

return nil
Expand Down
1 change: 1 addition & 0 deletions internal/provider/resource_tfe_registry_module_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -803,6 +803,7 @@ func TestAccTFERegistryModule_invalidWithRegistryNameAndNoModuleProvider(t *test
},
})
}

func testAccCheckTFERegistryModuleExists(n string, rmID tfe.RegistryModuleID, registryModule *tfe.RegistryModule) resource.TestCheckFunc {
return func(s *terraform.State) error {
config := testAccProvider.Meta().(ConfiguredClient)
Expand Down

0 comments on commit fa124c5

Please sign in to comment.