Skip to content

Commit

Permalink
Handle server id mismatch
Browse files Browse the repository at this point in the history
Handle the corner case where a returned server id
may not match the id in the current terraform state.
This should never happen because id's are immutable.

If it does ever occur we will not overwrite any state
and will instead raise this error:

```
Error: error reading server

  with hpegl_pc_server.test,
  on terraform_plugin_test.tf line 21, in resource "hpegl_pc_server" "test":
  21:   resource "hpegl_pc_server" "test" {

'id' mismatch: 697e8cbf-df7e-570c-a3c7-912d4ce8375a !=
697e8cbf-df7e-570c-a3c7-912d4ce8375a
```
  • Loading branch information
stuart-mclaren-hpe committed Aug 27, 2024
1 parent 85f2849 commit 9472d7f
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions internal/resources/server/resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package server

import (
"context"
"fmt"

"github.com/HewlettPackard/hpegl-pcbe-terraform-resources/internal/client"
"github.com/HewlettPackard/hpegl-pcbe-terraform-resources/internal/sdk/systems/privatecloudbusiness"
Expand Down Expand Up @@ -101,6 +102,17 @@ func doRead(
return
}

if *(server.GetId()) != serverID {
(*diagsP).AddError(
"error reading server",
fmt.Sprintf("'id' mismatch: %s != %s",
*(server.GetId()), serverID,
),
)

return
}

if server.GetName() == nil {
(*diagsP).AddError(
"error reading server",
Expand Down

0 comments on commit 9472d7f

Please sign in to comment.