Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

volumes: fix capacity parsing to allow optional values #363

Merged
merged 2 commits into from
Jul 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ BUG FIXES:
* resources/nomad_acl_binding_rule: fix a bug where `bind_name` was required even when `bind_type` was `management`. ([#330](https://github.com/hashicorp/terraform-provider-nomad/pull/330))
* resources/nomad_job: fix a bug that prevented deployments for jobs in namespaces other than `default` from being monitored. ([#347](https://github.com/hashicorp/terraform-provider-nomad/pull/347))
* resource/nomad_job: fix a bug that could result in unnecessary plan diffs from irrelevant changes. ([#356](https://github.com/hashicorp/terraform-provider-nomad/pull/356))
* resource/nomad_volume: fix a bug that caused `capacity_min` and `capacity_max` to be mandatory. ([#363](https://github.com/hashicorp/terraform-provider-nomad/pull/363))
* resource/nomad_volume and resource/nomad_external_volume: fix a bug where `topology_request` was not persisted to state. ([#342](https://github.com/hashicorp/terraform-provider-nomad/pull/342)

## 1.4.20 (April 20, 2023)
Expand Down
20 changes: 14 additions & 6 deletions nomad/resource_csi_volume.go
Original file line number Diff line number Diff line change
Expand Up @@ -328,14 +328,22 @@ func resourceCSIVolumeCreate(d *schema.ResourceData, meta interface{}) error {
client := providerConfig.client

// Parse capacities from human-friendly string to number.
capacityMin, err := humanize.ParseBytes(d.Get("capacity_min").(string))
if err != nil {
return fmt.Errorf("invalid value 'capacity_min': %v", err)
var capacityMin uint64
if capacityMinStr := d.Get("capacity_min").(string); capacityMinStr != "" {
var err error
capacityMin, err = humanize.ParseBytes(capacityMinStr)
if err != nil {
return fmt.Errorf("invalid value 'capacity_min': %v", err)
}
}

capacityMax, err := humanize.ParseBytes(d.Get("capacity_max").(string))
if err != nil {
return fmt.Errorf("invalid value 'capacity_max': %v", err)
var capacityMax uint64
if capacityMaxStr := d.Get("capacity_max").(string); capacityMaxStr != "" {
var err error
capacityMax, err = humanize.ParseBytes(capacityMaxStr)
if err != nil {
return fmt.Errorf("invalid value 'capacity_max': %v", err)
}
}

// Parse capabilities set.
Expand Down
20 changes: 14 additions & 6 deletions nomad/resource_external_volume.go
Original file line number Diff line number Diff line change
Expand Up @@ -337,14 +337,22 @@ func resourceExternalVolumeCreate(d *schema.ResourceData, meta interface{}) erro
client := providerConfig.client

// Parse capacities from human-friendly string to number.
capacityMin, err := humanize.ParseBytes(d.Get("capacity_min").(string))
if err != nil {
return fmt.Errorf("invalid value 'capacity_min': %v", err)
var capacityMin uint64
if capacityMinStr := d.Get("capacity_min").(string); capacityMinStr != "" {
var err error
capacityMin, err = humanize.ParseBytes(capacityMinStr)
if err != nil {
return fmt.Errorf("invalid value 'capacity_min': %v", err)
}
}

capacityMax, err := humanize.ParseBytes(d.Get("capacity_max").(string))
if err != nil {
return fmt.Errorf("invalid value 'capacity_max': %v", err)
var capacityMax uint64
if capacityMaxStr := d.Get("capacity_max").(string); capacityMaxStr != "" {
var err error
capacityMax, err = humanize.ParseBytes(capacityMaxStr)
if err != nil {
return fmt.Errorf("invalid value 'capacity_max': %v", err)
}
}

// Parse capabilities set.
Expand Down