Skip to content

Enhance cloudstack_disk_offering resource and datasource - #301

Open
bddvlpr wants to merge 2 commits into
apache:mainfrom
bddvlpr:feat/disk-offering
Open

Enhance cloudstack_disk_offering resource and datasource#301
bddvlpr wants to merge 2 commits into
apache:mainfrom
bddvlpr:feat/disk-offering

Conversation

@bddvlpr

@bddvlpr bddvlpr commented Jul 9, 2026

Copy link
Copy Markdown

Adds a bunch of missing parameters to the disk offering resource. Initialized the data source for it while I was at it.

Tested on simulator.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances the cloudstack_disk_offering Terraform resource to support additional CloudStack disk-offering parameters and completes the CRUD implementation, while also introducing a new cloudstack_disk_offering data source (plus docs and acceptance tests) so disk offerings can be discovered and referenced by other resources.

Changes:

  • Expanded cloudstack_disk_offering resource schema (custom sizing, storage/provisioning type, tags, display flag) and implemented Read/Update/Delete + Importer.
  • Added cloudstack_disk_offering data source with filter-based selection and acceptance tests.
  • Updated/added website documentation for the resource and data source.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
website/docs/r/disk_offering.html.markdown Documents the expanded disk offering resource arguments and attributes.
website/docs/d/disk_offering.html.markdown Adds documentation for the new disk offering data source.
cloudstack/resource_cloudstack_disk_offering.go Implements full disk offering resource CRUD/import and adds missing schema parameters.
cloudstack/resource_cloudstack_disk_offering_test.go Adds acceptance tests for disk offering resource scenarios (basic/customized/update).
cloudstack/provider.go Registers the new disk offering data source with the provider.
cloudstack/data_source_cloudstack_disk_offering.go Implements the disk offering data source and filter logic.
cloudstack/data_source_cloudstack_disk_offering_test.go Adds an acceptance test validating the disk offering data source against a created resource.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cloudstack/resource_cloudstack_disk_offering.go
Comment thread website/docs/r/disk_offering.html.markdown Outdated
Comment thread cloudstack/data_source_cloudstack_disk_offering.go
Comment thread cloudstack/resource_cloudstack_disk_offering_test.go
Copilot AI review requested due to automatic review settings July 31, 2026 09:09
@bddvlpr
bddvlpr force-pushed the feat/disk-offering branch from 19e1531 to 0b8428c Compare July 31, 2026 09:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.

Suppressed comments (3)

cloudstack/resource_cloudstack_disk_offering.go:64

  • customized has Default: false but Create() forces it to true whenever disk_size is omitted. This means a config that omits both fields will plan with customized=false and then read back customized=true, causing perpetual diffs / forced recreation. The service offering resource avoids this by making customized Computed: true instead of defaulting it.
			"customized": {
				Description:   "Whether the disk offering allows a custom disk size at deployment time",
				Type:          schema.TypeBool,
				Optional:      true,
				ForceNew:      true,
				Default:       false,
				ConflictsWith: []string{"disk_size"},
			},

website/docs/r/disk_offering.html.markdown:36

  • The customized argument docs currently say it "Defaults to false" but also say it's "implied when disk_size is omitted" (and the implementation sets it to true when disk_size is omitted). Please update the wording so the default/implicit behavior is not contradictory and matches provider behavior.
* `customized` - (Optional) Whether the disk offering allows a custom disk size
    to be specified at deployment time. Conflicts with `disk_size`, and is
    implied when `disk_size` is omitted. Defaults to `false`. Changing this
    forces a new resource to be created.

cloudstack/resource_cloudstack_disk_offering_test.go:95

  • The acceptance tests cover customized = true explicitly, but not the documented/implemented behavior where omitting both disk_size and customized should create a customized offering. Adding coverage for that case would prevent regressions (and would have caught the schema default drift issue).
const testAccCloudStackDiskOffering_customized = `
resource "cloudstack_disk_offering" "custom" {
  name              = "custom_disk_offering"
  display_text      = "Custom Test"
  customized        = true
  storage_type      = "local"
  provisioning_type = "thin"
  tags              = "ssd"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants