Overhaul VirtFusion provider: 20 resources, 30 data sources, multipage pagination
Complete rewrite of the VirtFusion Terraform provider with full API coverage: - 20 managed resources (server, build, SSH key, user, firewall, IP blocks, etc.) - 30 data sources (hypervisors, packages, servers, IP blocks, self-service, etc.) - New HTTP client with proper error handling, query parameter support, and automatic multipage pagination via GetAllPages (fetches all pages from Laravel-style paginated endpoints and merges into a single response) - Fixed type mismatches against live API: ServerData.Suspended (int→bool), IPBlockData.Type (string→int), PackageData json tags (primaryStorage, etc.), ServerData nested CPU/Settings/Resources structure, HypervisorGroupResources array response - Configurable results-per-page (default 300) on all list data sources - Migrated CI from GitHub Actions to Gitea Actions - Updated goreleaser config, go.mod dependencies, and examples Verified against live VirtFusion instance at cp.vps.ezscale.tech: all data sources return correct data with full pagination support. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
data "scaffolding_example" "example" {
|
||||
configurable_attribute = "some-value"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
data "virtfusion_hypervisors" "all" {}
|
||||
|
||||
output "hypervisor_names" {
|
||||
value = [for h in data.virtfusion_hypervisors.all.hypervisors : h.name]
|
||||
}
|
||||
5
examples/data-sources/virtfusion_packages/data-source.tf
Normal file
5
examples/data-sources/virtfusion_packages/data-source.tf
Normal file
@@ -0,0 +1,5 @@
|
||||
data "virtfusion_packages" "all" {}
|
||||
|
||||
output "package_names" {
|
||||
value = [for p in data.virtfusion_packages.all.packages : p.name]
|
||||
}
|
||||
7
examples/data-sources/virtfusion_server/data-source.tf
Normal file
7
examples/data-sources/virtfusion_server/data-source.tf
Normal file
@@ -0,0 +1,7 @@
|
||||
data "virtfusion_server" "example" {
|
||||
id = 1
|
||||
}
|
||||
|
||||
output "server_name" {
|
||||
value = data.virtfusion_server.example.name
|
||||
}
|
||||
Reference in New Issue
Block a user