Skip to content

Commit

Permalink
feat: migrate from gb units to mb units
Browse files Browse the repository at this point in the history
  • Loading branch information
fbreckle committed Jan 9, 2025
1 parent 9c99f81 commit a5dd662
Show file tree
Hide file tree
Showing 22 changed files with 315 additions and 106 deletions.
2 changes: 1 addition & 1 deletion GNUmakefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
TEST?=netbox/*.go
TEST_FUNC?=TestAccNetboxRack_basic
TEST_FUNC?=TestAccNetboxVirtualMachine*
GOFMT_FILES?=$$(find . -name '*.go' | grep -v vendor)
DOCKER_COMPOSE=docker compose

Expand Down
2 changes: 1 addition & 1 deletion docs/data-sources/virtual_machines.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Read-Only:
- `description` (String)
- `device_id` (Number)
- `device_name` (String)
- `disk_size_gb` (Number)
- `disk_size_mb` (Number)
- `local_context_data` (String)
- `memory_mb` (Number)
- `name` (String)
Expand Down
10 changes: 5 additions & 5 deletions docs/resources/event_rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ resource "netbox_webhook" "test" {
}
resource "netbox_event_rule" "test" {
name = "my-event-rule"
content_types = ["dcim.site", "virtualization.cluster"]
action_type = "webhook"
action_object_id = netbox_webhook.test.id
event_types = [
name = "my-event-rule"
content_types = ["dcim.site", "virtualization.cluster"]
action_type = "webhook"
action_object_id = netbox_webhook.test.id
event_types = [
"object_created",
"object_updated",
"object_deleted",
Expand Down
4 changes: 2 additions & 2 deletions docs/resources/virtual_disk.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ resource "netbox_virtual_machine" "base_vm" {
resource "netbox_virtual_disk" "example" {
name = "disk-01"
description = "Main disk"
size_gb = 50
size_mb = 50
virtual_machine_id = netbox_virtual_machine.base_vm.id
}
```
Expand All @@ -40,7 +40,7 @@ resource "netbox_virtual_disk" "example" {
### Required

- `name` (String)
- `size_gb` (Number)
- `size_mb` (Number)
- `virtual_machine_id` (Number)

### Optional
Expand Down
6 changes: 3 additions & 3 deletions docs/resources/virtual_machine.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ data "netbox_cluster" "vmw_cluster_01" {
resource "netbox_virtual_machine" "basic_vm" {
cluster_id = data.netbox_cluster.vmw_cluster_01.id
name = "myvm-2"
disk_size_gb = 40
disk_size_mb = 40000
memory_mb = 4092
vcpus = "2"
}
Expand All @@ -50,7 +50,7 @@ data "netbox_tenant" "customer_a" {
resource "netbox_virtual_machine" "full_vm" {
cluster_id = data.netbox_cluster.vmw_cluster_01.id
name = "myvm-3"
disk_size_gb = 40
disk_size_mb = 40000
memory_mb = 4092
vcpus = "2"
role_id = 31 // This corresponds to the Netbox ID for a given role
Expand All @@ -76,7 +76,7 @@ resource "netbox_virtual_machine" "full_vm" {
- `custom_fields` (Map of String)
- `description` (String)
- `device_id` (Number)
- `disk_size_gb` (Number)
- `disk_size_mb` (Number)
- `local_context_data` (String) This is best managed through the use of `jsonencode` and a map of settings.
- `memory_mb` (Number)
- `platform_id` (Number)
Expand Down
4 changes: 2 additions & 2 deletions docs/resources/vlan_group.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ description: |-
```terraform
#Basic VLAN Group example
resource "netbox_vlan_group" "example1" {
name = "example1"
slug = "example1"
name = "example1"
slug = "example1"
}
#Full VLAN Group example
Expand Down
2 changes: 1 addition & 1 deletion example/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ resource "netbox_virtual_machine" "testvm" {
comments = "my-test-comment"
memory_mb = 1024
vcpus = 4
disk_size_gb = 512
disk_size_mb = 512
cluster_id = netbox_cluster.testcluster.id
tenant_id = netbox_tenant.testtenant.id
platform_id = netbox_platform.testplatform.id
Expand Down
10 changes: 5 additions & 5 deletions examples/resources/netbox_event_rule/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ resource "netbox_webhook" "test" {
}

resource "netbox_event_rule" "test" {
name = "my-event-rule"
content_types = ["dcim.site", "virtualization.cluster"]
action_type = "webhook"
action_object_id = netbox_webhook.test.id
event_types = [
name = "my-event-rule"
content_types = ["dcim.site", "virtualization.cluster"]
action_type = "webhook"
action_object_id = netbox_webhook.test.id
event_types = [
"object_created",
"object_updated",
"object_deleted",
Expand Down
2 changes: 1 addition & 1 deletion examples/resources/netbox_virtual_disk/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ resource "netbox_virtual_machine" "base_vm" {
resource "netbox_virtual_disk" "example" {
name = "disk-01"
description = "Main disk"
size_gb = 50
size_mb = 50
virtual_machine_id = netbox_virtual_machine.base_vm.id
}
4 changes: 2 additions & 2 deletions examples/resources/netbox_virtual_machine/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ data "netbox_cluster" "vmw_cluster_01" {
resource "netbox_virtual_machine" "basic_vm" {
cluster_id = data.netbox_cluster.vmw_cluster_01.id
name = "myvm-2"
disk_size_gb = 40
disk_size_mb = 40000
memory_mb = 4092
vcpus = "2"
}
Expand All @@ -32,7 +32,7 @@ data "netbox_tenant" "customer_a" {
resource "netbox_virtual_machine" "full_vm" {
cluster_id = data.netbox_cluster.vmw_cluster_01.id
name = "myvm-3"
disk_size_gb = 40
disk_size_mb = 40000
memory_mb = 4092
vcpus = "2"
role_id = 31 // This corresponds to the Netbox ID for a given role
Expand Down
4 changes: 2 additions & 2 deletions examples/resources/netbox_vlan_group/resource.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#Basic VLAN Group example
resource "netbox_vlan_group" "example1" {
name = "example1"
slug = "example1"
name = "example1"
slug = "example1"
}

#Full VLAN Group example
Expand Down
4 changes: 2 additions & 2 deletions netbox/data_source_netbox_virtual_machines.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func dataSourceNetboxVirtualMachine() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
"disk_size_gb": {
"disk_size_mb": {
Type: schema.TypeInt,
Computed: true,
},
Expand Down Expand Up @@ -244,7 +244,7 @@ func dataSourceNetboxVirtualMachineRead(d *schema.ResourceData, m interface{}) e
mapping["custom_fields"] = v.CustomFields
}
if v.Disk != nil {
mapping["disk_size_gb"] = *v.Disk / 1000
mapping["disk_size_mb"] = *v.Disk
}
if v.LocalContextData != nil {
if localContextData, err := json.Marshal(v.LocalContextData); err == nil {
Expand Down
106 changes: 53 additions & 53 deletions netbox/data_source_netbox_virtual_machines_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func TestAccNetboxVirtualMachinesDataSource_basic(t *testing.T) {
resource.TestCheckResourceAttr("data.netbox_virtual_machines.test", "vms.0.name", testName+"_0"),
resource.TestCheckResourceAttr("data.netbox_virtual_machines.test", "vms.0.vcpus", "4"),
resource.TestCheckResourceAttr("data.netbox_virtual_machines.test", "vms.0.memory_mb", "1024"),
resource.TestCheckResourceAttr("data.netbox_virtual_machines.test", "vms.0.disk_size_gb", "256"),
resource.TestCheckResourceAttr("data.netbox_virtual_machines.test", "vms.0.disk_size_mb", "256"),
resource.TestCheckResourceAttr("data.netbox_virtual_machines.test", "vms.0.comments", "thisisacomment"),
resource.TestCheckResourceAttrPair("data.netbox_virtual_machines.test", "vms.0.tenant_id", "netbox_tenant.test", "id"),
resource.TestCheckResourceAttrPair("data.netbox_virtual_machines.test", "vms.0.role_id", "netbox_device_role.test", "id"),
Expand Down Expand Up @@ -126,7 +126,7 @@ resource "netbox_virtual_machine" "test0" {
device_id = netbox_device.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_gb = 256
disk_size_mb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
Expand Down Expand Up @@ -156,11 +156,11 @@ resource "netbox_virtual_machine" "test3" {
func testAccNetboxVirtualMachineDataSourceDependenciesWithTags(testName string) string {
return testAccNetboxVirtualMachineFullDependencies(testName) + fmt.Sprintf(`
resource "netbox_tag" "servicea" {
name = "%[1]s_service-a"
name = "%[1]s_service-a"
}
resource "netbox_tag" "serviceb" {
name = "%[1]s_service-b"
name = "%[1]s_service-b"
}
resource "netbox_virtual_machine" "test0" {
Expand All @@ -169,33 +169,33 @@ resource "netbox_virtual_machine" "test0" {
site_id = netbox_site.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_gb = 256
disk_size_mb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
vcpus = 4
tags = [
netbox_tag.servicea.name,
netbox_tag.serviceb.name,
]
netbox_tag.servicea.name,
netbox_tag.serviceb.name,
]
}
resource "netbox_virtual_machine" "test1" {
name = "%[1]s_1"
cluster_id = netbox_cluster.test.id
site_id = netbox_site.test.id
tags = [
netbox_tag.servicea.name,
]
tags = [
netbox_tag.servicea.name,
]
}
resource "netbox_virtual_machine" "test2" {
name = "%[1]s_2_regex"
cluster_id = netbox_cluster.test.id
site_id = netbox_site.test.id
tags = [
netbox_tag.serviceb.name,
]
tags = [
netbox_tag.serviceb.name,
]
}
`, testName)
}
Expand Down Expand Up @@ -242,12 +242,12 @@ data "netbox_virtual_machines" "test" {

func testAccNetboxVirtualMachineDataSourceTagA(testName string) string {
return fmt.Sprintf(`
data "netbox_virtual_machines" "tag-a" {
filter {
name = "tag"
value = "%[1]s_service-a"
}
}`, testName)
data "netbox_virtual_machines" "tag-a" {
filter {
name = "tag"
value = "%[1]s_service-a"
}
}`, testName)
}

func testAccNetboxVirtualMachineDataSourceTagB(testName string) string {
Expand All @@ -256,21 +256,21 @@ data "netbox_virtual_machines" "tag-b" {
filter {
name = "tag"
value = "%[1]s_service-b"
}
}
}`, testName)
}

func testAccNetboxVirtualMachineDataSourceTagAB(testName string) string {
return fmt.Sprintf(`
data "netbox_virtual_machines" "tag-ab" {
filter {
filter {
name = "tag"
value = "%[1]s_service-a"
}
}
filter {
name = "tag"
value = "%[1]s_service-b"
}
}
}`, testName)
}

Expand All @@ -293,40 +293,40 @@ data "netbox_virtual_machines" "test_decommissioning" {
func testAccNetboxVirtualMachineDataSourceDependenciesWithStatus(testName string) string {
return testAccNetboxVirtualMachineFullDependencies(testName) + fmt.Sprintf(`
resource "netbox_tag" "servicea" {
name = "%[1]s_service-a"
name = "%[1]s_service-a"
}
resource "netbox_virtual_machine" "test0" {
name = "%[1]s_0"
cluster_id = netbox_cluster.test.id
site_id = netbox_site.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_gb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
vcpus = 4
status = "active"
tags = [
netbox_tag.servicea.name,
]
name = "%[1]s_0"
cluster_id = netbox_cluster.test.id
site_id = netbox_site.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_mb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
vcpus = 4
status = "active"
tags = [
netbox_tag.servicea.name,
]
}
resource "netbox_virtual_machine" "test1" {
name = "%[1]s_1"
cluster_id = netbox_cluster.test.id
site_id = netbox_site.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_gb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
vcpus = 4
status = "decommissioning"
tags = [
netbox_tag.servicea.name,
]
name = "%[1]s_1"
cluster_id = netbox_cluster.test.id
site_id = netbox_site.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_mb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
vcpus = 4
status = "decommissioning"
tags = [
netbox_tag.servicea.name,
]
}`, testName)
}
2 changes: 1 addition & 1 deletion netbox/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ func providerConfigure(ctx context.Context, data *schema.ResourceData) (interfac

netboxVersion := res.GetPayload().(map[string]interface{})["netbox-version"].(string)

supportedVersions := []string{"4.1.0", "4.1.1", "4.1.2", "4.1.3"}
supportedVersions := []string{"4.1.0", "4.1.1", "4.1.2", "4.1.3", "4.1.4", "4.1.5", "4.1.6", "4.1.7", "4.1.8", "4.1.10", "4.1.11"}

if !slices.Contains(supportedVersions, netboxVersion) {
// Currently, there is no way to test these warnings. There is an issue to track this: https://github.com/hashicorp/terraform-plugin-sdk/issues/864
Expand Down
6 changes: 3 additions & 3 deletions netbox/resource_netbox_primary_ip_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ resource "netbox_virtual_machine" "test" {
site_id = netbox_site.test.id
comments = "thisisacomment"
memory_mb = 1024
disk_size_gb = 256
disk_size_mb = 256
tenant_id = netbox_tenant.test.id
role_id = netbox_device_role.test.id
platform_id = netbox_platform.test.id
Expand Down Expand Up @@ -115,7 +115,7 @@ resource "netbox_primary_ip" "test_v4" {
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "comments", "thisisacomment"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "memory_mb", "1024"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "vcpus", "4"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "disk_size_gb", "256"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "disk_size_mb", "256"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "tags.#", "1"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "tags.0", testName),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "status", "planned"),
Expand Down Expand Up @@ -159,7 +159,7 @@ resource "netbox_primary_ip" "test_v6" {
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "comments", "thisisacomment"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "memory_mb", "1024"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "vcpus", "4"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "disk_size_gb", "256"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "disk_size_mb", "256"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "tags.#", "1"),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "tags.0", testName),
resource.TestCheckResourceAttr("netbox_virtual_machine.test", "status", "planned"),
Expand Down
Loading

0 comments on commit a5dd662

Please sign in to comment.