mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-01 02:52:58 +00:00
fix(access): fix user
and role
import (#1346)
* fix(access): fix `user` and `role` import Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
This commit is contained in:
parent
9bbbf8db39
commit
bdd9225041
@ -9,6 +9,7 @@ package resource
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
|
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
|
||||||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
||||||
@ -46,13 +47,23 @@ func Role() *schema.Resource {
|
|||||||
UpdateContext: roleUpdate,
|
UpdateContext: roleUpdate,
|
||||||
DeleteContext: roleDelete,
|
DeleteContext: roleDelete,
|
||||||
Importer: &schema.ResourceImporter{
|
Importer: &schema.ResourceImporter{
|
||||||
StateContext: schema.ImportStatePassthroughContext,
|
StateContext: func(_ context.Context, d *schema.ResourceData, _ interface{}) ([]*schema.ResourceData, error) {
|
||||||
|
roleID := d.Id()
|
||||||
|
|
||||||
|
err := d.Set(mkResourceVirtualEnvironmentRoleRoleID, roleID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed setting state during import: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return []*schema.ResourceData{d}, nil
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func roleCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
func roleCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
||||||
config := m.(proxmoxtf.ProviderConfiguration)
|
config := m.(proxmoxtf.ProviderConfiguration)
|
||||||
|
|
||||||
client, err := config.GetClient()
|
client, err := config.GetClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
@ -83,12 +94,14 @@ func roleCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag
|
|||||||
|
|
||||||
func roleRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
func roleRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
||||||
config := m.(proxmoxtf.ProviderConfiguration)
|
config := m.(proxmoxtf.ProviderConfiguration)
|
||||||
|
|
||||||
client, err := config.GetClient()
|
client, err := config.GetClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
roleID := d.Id()
|
roleID := d.Id()
|
||||||
|
|
||||||
role, err := client.Access().GetRole(ctx, roleID)
|
role, err := client.Access().GetRole(ctx, roleID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, api.ErrResourceDoesNotExist) {
|
if errors.Is(err, api.ErrResourceDoesNotExist) {
|
||||||
@ -96,6 +109,7 @@ func roleRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.D
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,11 +122,13 @@ func roleRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.D
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = d.Set(mkResourceVirtualEnvironmentRolePrivileges, privileges)
|
err = d.Set(mkResourceVirtualEnvironmentRolePrivileges, privileges)
|
||||||
|
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func roleUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
func roleUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
||||||
config := m.(proxmoxtf.ProviderConfiguration)
|
config := m.(proxmoxtf.ProviderConfiguration)
|
||||||
|
|
||||||
client, err := config.GetClient()
|
client, err := config.GetClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
@ -140,6 +156,7 @@ func roleUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag
|
|||||||
|
|
||||||
func roleDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
func roleDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
|
||||||
config := m.(proxmoxtf.ProviderConfiguration)
|
config := m.(proxmoxtf.ProviderConfiguration)
|
||||||
|
|
||||||
client, err := config.GetClient()
|
client, err := config.GetClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
|
@ -9,6 +9,7 @@ package resource
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
|
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
|
||||||
@ -147,7 +148,16 @@ func User() *schema.Resource {
|
|||||||
UpdateContext: userUpdate,
|
UpdateContext: userUpdate,
|
||||||
DeleteContext: userDelete,
|
DeleteContext: userDelete,
|
||||||
Importer: &schema.ResourceImporter{
|
Importer: &schema.ResourceImporter{
|
||||||
StateContext: schema.ImportStatePassthroughContext,
|
StateContext: func(_ context.Context, d *schema.ResourceData, _ interface{}) ([]*schema.ResourceData, error) {
|
||||||
|
roleID := d.Id()
|
||||||
|
|
||||||
|
err := d.Set(mkResourceVirtualEnvironmentUserUserID, roleID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed setting state during import: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return []*schema.ResourceData{d}, nil
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user