feat: add import support and unit tests for provider resources
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-framework/diag"
|
||||
"github.com/hashicorp/terraform-plugin-framework/path"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
|
||||
"github.com/hashicorp/terraform-plugin-framework/types"
|
||||
@@ -17,6 +18,7 @@ import (
|
||||
)
|
||||
|
||||
var _ resource.Resource = &PackageResource{}
|
||||
var _ resource.ResourceWithImportState = &PackageResource{}
|
||||
|
||||
// Изменено: 2026-04-14 19:45 UTC.
|
||||
// Resource для управления Fission Package через Kubernetes CRD API.
|
||||
@@ -227,6 +229,19 @@ func (r *PackageResource) Delete(ctx context.Context, req resource.DeleteRequest
|
||||
}
|
||||
}
|
||||
|
||||
// ImportState поддерживает импорт ресурса в формате namespace/name.
|
||||
func (r *PackageResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) {
|
||||
namespace, name, err := parseImportID(req.ID)
|
||||
if err != nil {
|
||||
resp.Diagnostics.AddError("Некорректный формат import ID", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("id"), req.ID)...)
|
||||
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("namespace"), namespace)...)
|
||||
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("name"), name)...)
|
||||
}
|
||||
|
||||
// validatePackageSource проверяет, что задан ровно один источник кода: source_dir или code_path.
|
||||
func validatePackageSource(sourceDir, codePath types.String, diagnostics *diag.Diagnostics) bool {
|
||||
hasSourceDir := !sourceDir.IsNull() && !sourceDir.IsUnknown() && sourceDir.ValueString() != ""
|
||||
|
||||
Reference in New Issue
Block a user