diff --git a/docs/index.md b/docs/index.md
index 0dbb758a..421dcd09 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -66,6 +66,7 @@ provider "netbox" {
### Optional
- `allow_insecure_https` (Boolean) Flag to set whether to allow https with invalid certificates. Can be set via the `NETBOX_ALLOW_INSECURE_HTTPS` environment variable. Defaults to `false`.
+- `default_tags` (List of String) Tags to add to every resource managed by this provider.
- `headers` (Map of String) Set these header on all requests to Netbox. Can be set via the `NETBOX_HEADERS` environment variable.
- `request_timeout` (Number) Netbox API HTTP request timeout in seconds. Can be set via the `NETBOX_REQUEST_TIMEOUT` environment variable.
- `skip_version_check` (Boolean) If true, do not try to determine the running Netbox version at provider startup. Disables warnings about possibly unsupported Netbox version. Also useful for local testing on terraform plans. Can be set via the `NETBOX_SKIP_VERSION_CHECK` environment variable. Defaults to `false`.
diff --git a/docs/resources/aggregate.md b/docs/resources/aggregate.md
index dbb7d1c2..2188e1d9 100644
--- a/docs/resources/aggregate.md
+++ b/docs/resources/aggregate.md
@@ -43,5 +43,6 @@ resource "netbox_aggregate" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/asn.md b/docs/resources/asn.md
index 150581b1..49e1dff6 100644
--- a/docs/resources/asn.md
+++ b/docs/resources/asn.md
@@ -48,5 +48,6 @@ resource "netbox_asn" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/available_ip_address.md b/docs/resources/available_ip_address.md
index e3705cc9..322f82bb 100644
--- a/docs/resources/available_ip_address.md
+++ b/docs/resources/available_ip_address.md
@@ -100,5 +100,6 @@ resource "netbox_available_ip_address" "myvm-ip" {
- `id` (String) The ID of this resource.
- `ip_address` (String)
+- `tags_all` (Set of String)
diff --git a/docs/resources/available_prefix.md b/docs/resources/available_prefix.md
index 094d31a1..febb8b75 100644
--- a/docs/resources/available_prefix.md
+++ b/docs/resources/available_prefix.md
@@ -49,5 +49,6 @@ resource "netbox_available_prefix" "test" {
- `id` (String) The ID of this resource.
- `prefix` (String)
+- `tags_all` (Set of String)
diff --git a/docs/resources/cable.md b/docs/resources/cable.md
index a73dbbf6..7f4f1180 100644
--- a/docs/resources/cable.md
+++ b/docs/resources/cable.md
@@ -70,6 +70,7 @@ resource "netbox_cable" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
### Nested Schema for `a_termination`
diff --git a/docs/resources/circuit_termination.md b/docs/resources/circuit_termination.md
index 6430450d..9c5b4e72 100644
--- a/docs/resources/circuit_termination.md
+++ b/docs/resources/circuit_termination.md
@@ -67,5 +67,6 @@ resource "netbox_circuit_termination" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/cluster.md b/docs/resources/cluster.md
index b15d13b4..fdd00d11 100644
--- a/docs/resources/cluster.md
+++ b/docs/resources/cluster.md
@@ -55,5 +55,6 @@ resource "netbox_cluster" "vmw_cluster_01" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/config_context.md b/docs/resources/config_context.md
index e04f39e1..10bb8066 100644
--- a/docs/resources/config_context.md
+++ b/docs/resources/config_context.md
@@ -51,5 +51,6 @@ resource "netbox_config_context" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/config_template.md b/docs/resources/config_template.md
index b99a23db..ce3ac0ec 100644
--- a/docs/resources/config_template.md
+++ b/docs/resources/config_template.md
@@ -44,5 +44,6 @@ resource "netbox_config_template" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/contact.md b/docs/resources/contact.md
index c8fb934b..05ba9a5a 100644
--- a/docs/resources/contact.md
+++ b/docs/resources/contact.md
@@ -43,5 +43,6 @@ resource "netbox_contact" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device.md b/docs/resources/device.md
index 64f3c029..7f497298 100644
--- a/docs/resources/device.md
+++ b/docs/resources/device.md
@@ -84,5 +84,6 @@ resource "netbox_device" "test" {
- `id` (String) The ID of this resource.
- `primary_ipv4` (Number)
- `primary_ipv6` (Number)
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_console_port.md b/docs/resources/device_console_port.md
index 49fead0b..ee937124 100644
--- a/docs/resources/device_console_port.md
+++ b/docs/resources/device_console_port.md
@@ -56,5 +56,6 @@ resource "netbox_device_console_port" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_console_server_port.md b/docs/resources/device_console_server_port.md
index d162fd0c..02dbba05 100644
--- a/docs/resources/device_console_server_port.md
+++ b/docs/resources/device_console_server_port.md
@@ -56,5 +56,6 @@ resource "netbox_device_console_server_port" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_front_port.md b/docs/resources/device_front_port.md
index 906ef992..ad7424d7 100644
--- a/docs/resources/device_front_port.md
+++ b/docs/resources/device_front_port.md
@@ -66,5 +66,6 @@ resource "netbox_device_front_port" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_interface.md b/docs/resources/device_interface.md
index 7d7d18f1..70f3c5a1 100644
--- a/docs/resources/device_interface.md
+++ b/docs/resources/device_interface.md
@@ -52,5 +52,6 @@ resource "netbox_device_interface" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_module_bay.md b/docs/resources/device_module_bay.md
index e32ff3f3..6c998784 100644
--- a/docs/resources/device_module_bay.md
+++ b/docs/resources/device_module_bay.md
@@ -50,5 +50,6 @@ resource "netbox_device_module_bay" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_power_outlet.md b/docs/resources/device_power_outlet.md
index 536f7495..ee531054 100644
--- a/docs/resources/device_power_outlet.md
+++ b/docs/resources/device_power_outlet.md
@@ -59,5 +59,6 @@ resource "netbox_device_power_outlet" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_power_port.md b/docs/resources/device_power_port.md
index a9cd5507..dad5f32d 100644
--- a/docs/resources/device_power_port.md
+++ b/docs/resources/device_power_port.md
@@ -57,5 +57,6 @@ resource "netbox_device_power_port" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_rear_port.md b/docs/resources/device_rear_port.md
index 964bb4b4..ec07699c 100644
--- a/docs/resources/device_rear_port.md
+++ b/docs/resources/device_rear_port.md
@@ -57,5 +57,6 @@ resource "netbox_device_rear_port" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_role.md b/docs/resources/device_role.md
index 5ec46629..837f8c06 100644
--- a/docs/resources/device_role.md
+++ b/docs/resources/device_role.md
@@ -40,5 +40,6 @@ resource "netbox_device_role" "core_sw" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/device_type.md b/docs/resources/device_type.md
index c2a54b30..1ddca086 100644
--- a/docs/resources/device_type.md
+++ b/docs/resources/device_type.md
@@ -46,5 +46,6 @@ resource "netbox_device_type" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/event_rule.md b/docs/resources/event_rule.md
index 1739b70b..f92a7530 100644
--- a/docs/resources/event_rule.md
+++ b/docs/resources/event_rule.md
@@ -59,5 +59,6 @@ resource "netbox_event_rule" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/interface.md b/docs/resources/interface.md
index 7bca6f36..437c5ee7 100644
--- a/docs/resources/interface.md
+++ b/docs/resources/interface.md
@@ -62,5 +62,6 @@ resource "netbox_interface" "myvm_eth1" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/inventory_item.md b/docs/resources/inventory_item.md
index 15172949..629dcc22 100644
--- a/docs/resources/inventory_item.md
+++ b/docs/resources/inventory_item.md
@@ -76,5 +76,6 @@ resource "netbox_inventory_item" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/inventory_item_role.md b/docs/resources/inventory_item_role.md
index 2f3681ed..a3c3affa 100644
--- a/docs/resources/inventory_item_role.md
+++ b/docs/resources/inventory_item_role.md
@@ -57,5 +57,6 @@ resource "netbox_inventory_item" "parent" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/ip_address.md b/docs/resources/ip_address.md
index 46359dc7..35bafc63 100644
--- a/docs/resources/ip_address.md
+++ b/docs/resources/ip_address.md
@@ -129,6 +129,7 @@ resource "netbox_ip_address" "this" {
- `id` (String) The ID of this resource.
- `nat_outside_addresses` (List of Object) (see [below for nested schema](#nestedatt--nat_outside_addresses))
+- `tags_all` (Set of String)
### Nested Schema for `nat_outside_addresses`
diff --git a/docs/resources/ip_range.md b/docs/resources/ip_range.md
index 45a6b068..23835ca2 100644
--- a/docs/resources/ip_range.md
+++ b/docs/resources/ip_range.md
@@ -43,5 +43,6 @@ resource "netbox_ip_range" "cust_a_prod" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/location.md b/docs/resources/location.md
index 971895a5..8f0ff117 100644
--- a/docs/resources/location.md
+++ b/docs/resources/location.md
@@ -55,5 +55,6 @@ resource "netbox_location" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/module.md b/docs/resources/module.md
index 1223cff3..132097dc 100644
--- a/docs/resources/module.md
+++ b/docs/resources/module.md
@@ -74,5 +74,6 @@ resource "netbox_module" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/module_type.md b/docs/resources/module_type.md
index ae62c1ba..eb718e96 100644
--- a/docs/resources/module_type.md
+++ b/docs/resources/module_type.md
@@ -47,5 +47,6 @@ resource "netbox_module_type" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/power_feed.md b/docs/resources/power_feed.md
index 9ecacedd..3a0ae804 100644
--- a/docs/resources/power_feed.md
+++ b/docs/resources/power_feed.md
@@ -72,5 +72,6 @@ resource "netbox_power_feed" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/power_panel.md b/docs/resources/power_panel.md
index 405383d0..c5735bb3 100644
--- a/docs/resources/power_panel.md
+++ b/docs/resources/power_panel.md
@@ -52,5 +52,6 @@ resource "netbox_power_panel" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/prefix.md b/docs/resources/prefix.md
index 4877b3f3..a57f645d 100644
--- a/docs/resources/prefix.md
+++ b/docs/resources/prefix.md
@@ -50,5 +50,6 @@ resource "netbox_prefix" "my_prefix" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/rack.md b/docs/resources/rack.md
index 2b541ba6..83da10ea 100644
--- a/docs/resources/rack.md
+++ b/docs/resources/rack.md
@@ -72,5 +72,6 @@ resource "netbox_rack" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/rack_reservation.md b/docs/resources/rack_reservation.md
index 97fd4b1c..3dc7a613 100644
--- a/docs/resources/rack_reservation.md
+++ b/docs/resources/rack_reservation.md
@@ -55,5 +55,6 @@ resource "netbox_rack_reservation" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/rack_role.md b/docs/resources/rack_role.md
index 75704d8b..6d2c7f77 100644
--- a/docs/resources/rack_role.md
+++ b/docs/resources/rack_role.md
@@ -39,5 +39,6 @@ resource "netbox_rack_role" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/rack_type.md b/docs/resources/rack_type.md
index 863d07d1..d3d0fa50 100644
--- a/docs/resources/rack_type.md
+++ b/docs/resources/rack_type.md
@@ -68,5 +68,6 @@ resource "netbox_rack_type" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/route_target.md b/docs/resources/route_target.md
index 38f82c4b..2ab733be 100644
--- a/docs/resources/route_target.md
+++ b/docs/resources/route_target.md
@@ -42,5 +42,6 @@ resource "netbox_route_target" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/service.md b/docs/resources/service.md
index ca52fc8a..d9edc204 100644
--- a/docs/resources/service.md
+++ b/docs/resources/service.md
@@ -53,5 +53,6 @@ resource "netbox_service" "ssh" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/site.md b/docs/resources/site.md
index e6c0c0e9..f9384f21 100644
--- a/docs/resources/site.md
+++ b/docs/resources/site.md
@@ -58,5 +58,6 @@ resource "netbox_site" "example1" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/tag.md b/docs/resources/tag.md
index 8b34174a..bf616f9e 100644
--- a/docs/resources/tag.md
+++ b/docs/resources/tag.md
@@ -42,5 +42,6 @@ resource "netbox_tag" "dmz" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/tenant.md b/docs/resources/tenant.md
index 80c63104..9afdffbb 100644
--- a/docs/resources/tenant.md
+++ b/docs/resources/tenant.md
@@ -41,5 +41,6 @@ resource "netbox_tenant" "customer_a" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/virtual_chassis.md b/docs/resources/virtual_chassis.md
index 7add77b1..8498eca5 100644
--- a/docs/resources/virtual_chassis.md
+++ b/docs/resources/virtual_chassis.md
@@ -41,5 +41,6 @@ resource "netbox_virtual_chassis" "example" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/virtual_disk.md b/docs/resources/virtual_disk.md
index 89245554..5d6dfcf6 100644
--- a/docs/resources/virtual_disk.md
+++ b/docs/resources/virtual_disk.md
@@ -52,5 +52,6 @@ resource "netbox_virtual_disk" "example" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/virtual_machine.md b/docs/resources/virtual_machine.md
index 8d0591a7..734843fa 100644
--- a/docs/resources/virtual_machine.md
+++ b/docs/resources/virtual_machine.md
@@ -92,5 +92,6 @@ resource "netbox_virtual_machine" "full_vm" {
- `id` (String) The ID of this resource.
- `primary_ipv4` (Number)
- `primary_ipv6` (Number)
+- `tags_all` (Set of String)
diff --git a/docs/resources/vlan.md b/docs/resources/vlan.md
index 38d299a8..845654a4 100644
--- a/docs/resources/vlan.md
+++ b/docs/resources/vlan.md
@@ -56,5 +56,6 @@ resource "netbox_vlan" "example2" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/vlan_group.md b/docs/resources/vlan_group.md
index cbddf85f..1b92fbe3 100644
--- a/docs/resources/vlan_group.md
+++ b/docs/resources/vlan_group.md
@@ -50,5 +50,6 @@ resource "netbox_vlan_group" "example2" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/vpn_tunnel.md b/docs/resources/vpn_tunnel.md
index b6c4cd23..990762b9 100644
--- a/docs/resources/vpn_tunnel.md
+++ b/docs/resources/vpn_tunnel.md
@@ -52,5 +52,6 @@ resource "netbox_vpn_tunnel" "test" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/vpn_tunnel_termination.md b/docs/resources/vpn_tunnel_termination.md
index d9452033..7d343a5e 100644
--- a/docs/resources/vpn_tunnel_termination.md
+++ b/docs/resources/vpn_tunnel_termination.md
@@ -59,5 +59,6 @@ resource "netbox_vpn_tunnel_termination" "vm" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/docs/resources/vrf.md b/docs/resources/vrf.md
index fdbee03c..f4faef00 100644
--- a/docs/resources/vrf.md
+++ b/docs/resources/vrf.md
@@ -40,5 +40,6 @@ resource "netbox_vrf" "cust_a_prod" {
### Read-Only
- `id` (String) The ID of this resource.
+- `tags_all` (Set of String)
diff --git a/netbox/data_source_netbox_asn.go b/netbox/data_source_netbox_asn.go
index bfa38e81..f09eb4cf 100644
--- a/netbox/data_source_netbox_asn.go
+++ b/netbox/data_source_netbox_asn.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -46,7 +45,7 @@ for more information on available lookup expressions.`,
}
func dataSourceNetboxAsnRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamAsnsListParams()
diff --git a/netbox/data_source_netbox_asns.go b/netbox/data_source_netbox_asns.go
index 51a7fd96..60bd7a88 100644
--- a/netbox/data_source_netbox_asns.go
+++ b/netbox/data_source_netbox_asns.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -64,7 +63,7 @@ func dataSourceNetboxAsns() *schema.Resource {
}
func dataSourceNetboxAsnsRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamAsnsListParams()
diff --git a/netbox/data_source_netbox_available_prefix.go b/netbox/data_source_netbox_available_prefix.go
index e3aba81b..395cbe5f 100644
--- a/netbox/data_source_netbox_available_prefix.go
+++ b/netbox/data_source_netbox_available_prefix.go
@@ -1,7 +1,6 @@
package netbox
import (
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -41,7 +40,7 @@ func dataSourceNetboxAvailablePrefix() *schema.Resource {
}
func dataSourceNetboxAvailablePrefixRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamPrefixesAvailablePrefixesListParams()
diff --git a/netbox/data_source_netbox_cluster.go b/netbox/data_source_netbox_cluster.go
index 1752787c..ece4817c 100644
--- a/netbox/data_source_netbox_cluster.go
+++ b/netbox/data_source_netbox_cluster.go
@@ -5,7 +5,6 @@ import (
"fmt"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -63,7 +62,7 @@ func dataSourceNetboxCluster() *schema.Resource {
}
func dataSourceNetboxClusterRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationClustersListParams()
diff --git a/netbox/data_source_netbox_cluster_group.go b/netbox/data_source_netbox_cluster_group.go
index d23886b6..fff4fe65 100644
--- a/netbox/data_source_netbox_cluster_group.go
+++ b/netbox/data_source_netbox_cluster_group.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -27,7 +26,7 @@ func dataSourceNetboxClusterGroup() *schema.Resource {
}
func dataSourceNetboxClusterGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := virtualization.NewVirtualizationClusterGroupsListParams()
diff --git a/netbox/data_source_netbox_cluster_type.go b/netbox/data_source_netbox_cluster_type.go
index 2cd6dc65..6f7e5046 100644
--- a/netbox/data_source_netbox_cluster_type.go
+++ b/netbox/data_source_netbox_cluster_type.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -27,7 +26,7 @@ func dataSourceNetboxClusterType() *schema.Resource {
}
func dataSourceNetboxClusterTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := virtualization.NewVirtualizationClusterTypesListParams()
diff --git a/netbox/data_source_netbox_config_context.go b/netbox/data_source_netbox_config_context.go
index 9a6b33fe..074a6f70 100644
--- a/netbox/data_source_netbox_config_context.go
+++ b/netbox/data_source_netbox_config_context.go
@@ -5,7 +5,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -140,7 +139,7 @@ func dataSourceNetboxConfigContext() *schema.Resource {
}
func dataSourceNetboxConfigContextRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := extras.NewExtrasConfigContextsListParams()
diff --git a/netbox/data_source_netbox_contact.go b/netbox/data_source_netbox_contact.go
index 1eeb5f9e..1d56adf7 100644
--- a/netbox/data_source_netbox_contact.go
+++ b/netbox/data_source_netbox_contact.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -39,7 +38,7 @@ func dataSourceNetboxContact() *schema.Resource {
}
func dataSourceNetboxContactRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyContactsListParams()
if name, ok := d.Get("name").(string); ok && name != "" {
diff --git a/netbox/data_source_netbox_contact_group.go b/netbox/data_source_netbox_contact_group.go
index a979be92..962ecacb 100644
--- a/netbox/data_source_netbox_contact_group.go
+++ b/netbox/data_source_netbox_contact_group.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -35,7 +34,7 @@ func dataSourceNetboxContactGroup() *schema.Resource {
}
func dataSourceNetboxContactGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := tenancy.NewTenancyContactGroupsListParams()
diff --git a/netbox/data_source_netbox_contact_role.go b/netbox/data_source_netbox_contact_role.go
index b73de5c2..acacb072 100644
--- a/netbox/data_source_netbox_contact_role.go
+++ b/netbox/data_source_netbox_contact_role.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -31,7 +30,7 @@ func dataSourceNetboxContactRole() *schema.Resource {
}
func dataSourceNetboxContactRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyContactRolesListParams()
if name, ok := d.Get("name").(string); ok && name != "" {
diff --git a/netbox/data_source_netbox_device_interfaces.go b/netbox/data_source_netbox_device_interfaces.go
index 054fc1be..e3b80e58 100644
--- a/netbox/data_source_netbox_device_interfaces.go
+++ b/netbox/data_source_netbox_device_interfaces.go
@@ -5,7 +5,6 @@ import (
"fmt"
"regexp"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
@@ -140,7 +139,7 @@ func dataSourceNetboxDeviceInterfaces() *schema.Resource {
}
func dataSourceNetboxDeviceInterfaceRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimInterfacesListParams()
diff --git a/netbox/data_source_netbox_device_role.go b/netbox/data_source_netbox_device_role.go
index 3efdc232..07930e50 100644
--- a/netbox/data_source_netbox_device_role.go
+++ b/netbox/data_source_netbox_device_role.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -32,7 +31,7 @@ func dataSourceNetboxDeviceRole() *schema.Resource {
}
func dataSourceNetboxDeviceRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := dcim.NewDcimDeviceRolesListParams()
diff --git a/netbox/data_source_netbox_device_type.go b/netbox/data_source_netbox_device_type.go
index 9f2e3a92..d8151857 100644
--- a/netbox/data_source_netbox_device_type.go
+++ b/netbox/data_source_netbox_device_type.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -47,7 +46,7 @@ func dataSourceNetboxDeviceType() *schema.Resource {
}
func dataSourceNetboxDeviceTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimDeviceTypesListParams()
params.Limit = int64ToPtr(2)
diff --git a/netbox/data_source_netbox_devices.go b/netbox/data_source_netbox_devices.go
index ee1ae35d..1c4e2a1f 100644
--- a/netbox/data_source_netbox_devices.go
+++ b/netbox/data_source_netbox_devices.go
@@ -6,16 +6,15 @@ package netbox
import (
"encoding/json"
"fmt"
+ "net"
+ "regexp"
+ "strings"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
- "net"
- "regexp"
- "strings"
)
func dataSourceNetboxDevices() *schema.Resource {
@@ -158,7 +157,7 @@ func dataSourceNetboxDevices() *schema.Resource {
}
func dataSourceNetboxDevicesRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimDevicesListParams()
diff --git a/netbox/data_source_netbox_interfaces.go b/netbox/data_source_netbox_interfaces.go
index b2e0e6c0..2913005a 100644
--- a/netbox/data_source_netbox_interfaces.go
+++ b/netbox/data_source_netbox_interfaces.go
@@ -5,7 +5,6 @@ import (
"fmt"
"regexp"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
@@ -143,7 +142,7 @@ func dataSourceNetboxInterfaces() *schema.Resource {
}
func dataSourceNetboxInterfaceRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationInterfacesListParams()
diff --git a/netbox/data_source_netbox_ip_addresses.go b/netbox/data_source_netbox_ip_addresses.go
index f4472434..afb5c50b 100644
--- a/netbox/data_source_netbox_ip_addresses.go
+++ b/netbox/data_source_netbox_ip_addresses.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
@@ -137,7 +136,7 @@ func dataSourceNetboxIPAddresses() *schema.Resource {
}
func dataSourceNetboxIPAddressesRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamIPAddressesListParams()
diff --git a/netbox/data_source_netbox_ip_range.go b/netbox/data_source_netbox_ip_range.go
index 1938c4d6..eb47a689 100644
--- a/netbox/data_source_netbox_ip_range.go
+++ b/netbox/data_source_netbox_ip_range.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -29,7 +28,7 @@ func dataSourceNetboxIPRange() *schema.Resource {
}
func dataSourceNetboxIPRangeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
contains := d.Get("contains").(string)
diff --git a/netbox/data_source_netbox_ipam_role.go b/netbox/data_source_netbox_ipam_role.go
index 5ef200e8..3f5297d7 100644
--- a/netbox/data_source_netbox_ipam_role.go
+++ b/netbox/data_source_netbox_ipam_role.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -35,7 +34,7 @@ func dataSourceNetboxIPAMRole() *schema.Resource {
}
func dataSourceNetboxIPAMRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
diff --git a/netbox/data_source_netbox_location.go b/netbox/data_source_netbox_location.go
index a79392b1..150d550e 100644
--- a/netbox/data_source_netbox_location.go
+++ b/netbox/data_source_netbox_location.go
@@ -5,7 +5,6 @@ import (
"fmt"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -56,7 +55,7 @@ func dataSourceNetboxLocation() *schema.Resource {
}
func dataSourceNetboxLocationRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimLocationsListParams()
params.Limit = int64ToPtr(2)
diff --git a/netbox/data_source_netbox_locations.go b/netbox/data_source_netbox_locations.go
index 6fe1d9ff..ff596a13 100644
--- a/netbox/data_source_netbox_locations.go
+++ b/netbox/data_source_netbox_locations.go
@@ -4,7 +4,6 @@ import (
"fmt"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -95,7 +94,7 @@ func dataSourceNetboxLocations() *schema.Resource {
}
func dataSourceNetboxLocationsRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimLocationsListParams()
if limitValue, ok := d.GetOk("limit"); ok {
diff --git a/netbox/data_source_netbox_platform.go b/netbox/data_source_netbox_platform.go
index 3490d88d..e4c42200 100644
--- a/netbox/data_source_netbox_platform.go
+++ b/netbox/data_source_netbox_platform.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -31,7 +30,7 @@ func dataSourceNetboxPlatform() *schema.Resource {
}
func dataSourceNetboxPlatformRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := dcim.NewDcimPlatformsListParams()
diff --git a/netbox/data_source_netbox_prefix.go b/netbox/data_source_netbox_prefix.go
index 0f956591..3d3da33c 100644
--- a/netbox/data_source_netbox_prefix.go
+++ b/netbox/data_source_netbox_prefix.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -106,7 +105,7 @@ for more information on available lookup expressions.`,
}
func dataSourceNetboxPrefixRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamPrefixesListParams()
diff --git a/netbox/data_source_netbox_prefixes.go b/netbox/data_source_netbox_prefixes.go
index 1311ea26..122e38fb 100644
--- a/netbox/data_source_netbox_prefixes.go
+++ b/netbox/data_source_netbox_prefixes.go
@@ -4,7 +4,6 @@ import (
"fmt"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -92,7 +91,7 @@ func dataSourceNetboxPrefixes() *schema.Resource {
}
func dataSourceNetboxPrefixesRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamPrefixesListParams()
diff --git a/netbox/data_source_netbox_rack_role.go b/netbox/data_source_netbox_rack_role.go
index 5f0ff322..62321d5f 100644
--- a/netbox/data_source_netbox_rack_role.go
+++ b/netbox/data_source_netbox_rack_role.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -36,7 +35,7 @@ func dataSourceNetboxRackRole() *schema.Resource {
}
func dataSourceNetboxRackRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := dcim.NewDcimRackRolesListParams()
diff --git a/netbox/data_source_netbox_racks.go b/netbox/data_source_netbox_racks.go
index 59f39cf9..5078e65e 100644
--- a/netbox/data_source_netbox_racks.go
+++ b/netbox/data_source_netbox_racks.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -148,7 +147,7 @@ func dataSourceNetboxRacks() *schema.Resource {
}
func dataSourceNetboxRacksRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRacksListParams()
diff --git a/netbox/data_source_netbox_region.go b/netbox/data_source_netbox_region.go
index 6369eabc..2dccdd61 100644
--- a/netbox/data_source_netbox_region.go
+++ b/netbox/data_source_netbox_region.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -59,7 +58,7 @@ func dataSourceNetboxRegion() *schema.Resource {
}
func dataSourceNetboxRegionRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRegionsListParams()
diff --git a/netbox/data_source_netbox_route_target.go b/netbox/data_source_netbox_route_target.go
index dbaa7233..a1bd9681 100644
--- a/netbox/data_source_netbox_route_target.go
+++ b/netbox/data_source_netbox_route_target.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -34,7 +33,7 @@ func dataSourceNetboxRouteTarget() *schema.Resource {
}
func dataSourceNetboxRouteTargetRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
diff --git a/netbox/data_source_netbox_site.go b/netbox/data_source_netbox_site.go
index ae14dc28..709edb9c 100644
--- a/netbox/data_source_netbox_site.go
+++ b/netbox/data_source_netbox_site.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -78,7 +77,7 @@ func dataSourceNetboxSite() *schema.Resource {
}
func dataSourceNetboxSiteRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimSitesListParams()
params.Limit = int64ToPtr(2)
diff --git a/netbox/data_source_netbox_site_group.go b/netbox/data_source_netbox_site_group.go
index 8d22f4e8..0a12c9f7 100644
--- a/netbox/data_source_netbox_site_group.go
+++ b/netbox/data_source_netbox_site_group.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -35,7 +34,7 @@ func dataSourceNetboxSiteGroup() *schema.Resource {
}
func dataSourceNetboxSiteGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimSiteGroupsListParams()
if name, ok := d.Get("name").(string); ok && name != "" {
diff --git a/netbox/data_source_netbox_tag.go b/netbox/data_source_netbox_tag.go
index 86428726..40d97bbd 100644
--- a/netbox/data_source_netbox_tag.go
+++ b/netbox/data_source_netbox_tag.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -31,7 +30,7 @@ func dataSourceNetboxTag() *schema.Resource {
}
func dataSourceNetboxTagRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := extras.NewExtrasTagsListParams()
diff --git a/netbox/data_source_netbox_tags.go b/netbox/data_source_netbox_tags.go
index 31d1ea65..f0d8a1ba 100644
--- a/netbox/data_source_netbox_tags.go
+++ b/netbox/data_source_netbox_tags.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -71,7 +70,7 @@ func dataSourceNetboxTags() *schema.Resource {
}
func dataSourceNetboxTagsRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := extras.NewExtrasTagsListParams()
diff --git a/netbox/data_source_netbox_tenant.go b/netbox/data_source_netbox_tenant.go
index c3c933c4..62dd502a 100644
--- a/netbox/data_source_netbox_tenant.go
+++ b/netbox/data_source_netbox_tenant.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -39,7 +38,7 @@ func dataSourceNetboxTenant() *schema.Resource {
}
func dataSourceNetboxTenantRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyTenantsListParams()
if name, ok := d.Get("name").(string); ok && name != "" {
diff --git a/netbox/data_source_netbox_tenant_group.go b/netbox/data_source_netbox_tenant_group.go
index d277563a..dc642f57 100644
--- a/netbox/data_source_netbox_tenant_group.go
+++ b/netbox/data_source_netbox_tenant_group.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -35,7 +34,7 @@ func dataSourceNetboxTenantGroup() *schema.Resource {
}
func dataSourceNetboxTenantGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := tenancy.NewTenancyTenantGroupsListParams()
diff --git a/netbox/data_source_netbox_tenants.go b/netbox/data_source_netbox_tenants.go
index b2c8d859..b9f2b266 100644
--- a/netbox/data_source_netbox_tenants.go
+++ b/netbox/data_source_netbox_tenants.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
@@ -149,7 +148,7 @@ func dataSourceNetboxTenants() *schema.Resource {
}
func dataSourceNetboxTenantsRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyTenantsListParams()
diff --git a/netbox/data_source_netbox_virtual_machines.go b/netbox/data_source_netbox_virtual_machines.go
index c1694d0e..61c9e326 100644
--- a/netbox/data_source_netbox_virtual_machines.go
+++ b/netbox/data_source_netbox_virtual_machines.go
@@ -6,7 +6,6 @@ import (
"fmt"
"regexp"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
@@ -152,7 +151,7 @@ func dataSourceNetboxVirtualMachine() *schema.Resource {
}
func dataSourceNetboxVirtualMachineRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationVirtualMachinesListParams()
diff --git a/netbox/data_source_netbox_vlan.go b/netbox/data_source_netbox_vlan.go
index 8478e87f..53821ece 100644
--- a/netbox/data_source_netbox_vlan.go
+++ b/netbox/data_source_netbox_vlan.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -56,7 +55,7 @@ func dataSourceNetboxVlan() *schema.Resource {
}
func dataSourceNetboxVlanRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVlansListParams()
params.Limit = int64ToPtr(2)
diff --git a/netbox/data_source_netbox_vlan_group.go b/netbox/data_source_netbox_vlan_group.go
index d3b5a588..8b494424 100644
--- a/netbox/data_source_netbox_vlan_group.go
+++ b/netbox/data_source_netbox_vlan_group.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -52,7 +51,7 @@ func dataSourceNetboxVlanGroup() *schema.Resource {
}
func dataSourceNetboxVlanGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVlanGroupsListParams()
params.Limit = int64ToPtr(2)
diff --git a/netbox/data_source_netbox_vlans.go b/netbox/data_source_netbox_vlans.go
index 873917f0..b0d8a423 100644
--- a/netbox/data_source_netbox_vlans.go
+++ b/netbox/data_source_netbox_vlans.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -90,7 +89,7 @@ func dataSourceNetboxVlans() *schema.Resource {
}
func dataSourceNetboxVlansRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVlansListParams()
diff --git a/netbox/data_source_netbox_vrf.go b/netbox/data_source_netbox_vrf.go
index b6b152ba..76a1ba92 100644
--- a/netbox/data_source_netbox_vrf.go
+++ b/netbox/data_source_netbox_vrf.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
@@ -27,7 +26,7 @@ func dataSourceNetboxVrf() *schema.Resource {
}
func dataSourceNetboxVrfRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
params := ipam.NewIpamVrfsListParams()
diff --git a/netbox/data_source_netbox_vrfs.go b/netbox/data_source_netbox_vrfs.go
index 4d0aa3cc..4a6ef341 100644
--- a/netbox/data_source_netbox_vrfs.go
+++ b/netbox/data_source_netbox_vrfs.go
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -71,7 +70,7 @@ func dataSourceNetboxVrfs() *schema.Resource {
}
func dataSourceNetboxVrfsRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVrfsListParams()
diff --git a/netbox/provider.go b/netbox/provider.go
index 0f5da73f..14be24e7 100644
--- a/netbox/provider.go
+++ b/netbox/provider.go
@@ -6,12 +6,23 @@ import (
"fmt"
"strings"
+ "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/status"
+ "github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"golang.org/x/exp/slices"
)
+type providerState struct {
+ *client.NetBoxAPI
+ defaultTags *schema.Set
+
+ // concurrent access ok, only populated on provider start
+ tagCache map[string]*models.NestedTag
+}
+
// This makes the description contain the default value, particularly useful for the docs
// From https://github.com/hashicorp/terraform-plugin-docs/issues/65#issuecomment-1152842370
func init() {
@@ -235,9 +246,30 @@ func Provider() *schema.Provider {
DefaultFunc: schema.EnvDefaultFunc("NETBOX_REQUEST_TIMEOUT", 10),
Description: "Netbox API HTTP request timeout in seconds. Can be set via the `NETBOX_REQUEST_TIMEOUT` environment variable.",
},
+ "default_tags": {
+ Type: schema.TypeSet,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ Optional: true,
+ Description: "Tags to add to every resource managed by this provider",
+ },
},
ConfigureContextFunc: providerConfigure,
}
+
+ // all resources that have tags get a custom diff function
+ for _, def := range provider.ResourcesMap {
+ if _, ok := def.Schema[tagsKey]; ok {
+ def.Schema[tagsAllKey] = tagsAllSchema // add computed key for all tags
+ if existingDiff := def.CustomizeDiff; existingDiff != nil {
+ def.CustomizeDiff = customdiff.Sequence(existingDiff, tagsCustomDiff)
+ } else {
+ def.CustomizeDiff = tagsCustomDiff
+ }
+ }
+ }
+
return provider
}
@@ -308,5 +340,43 @@ func providerConfigure(ctx context.Context, data *schema.ResourceData) (interfac
}
}
- return netboxClient, diags
+ tags, ok := data.Get("default_tags").(*schema.Set)
+ tagCache := make(map[string]*models.NestedTag, tags.Len())
+ if ok {
+ for _, tag := range tags.List() {
+ if tagName, ok := tag.(string); ok {
+ nbTag, err := findTag(netboxClient, tagName)
+ if err != nil {
+ d := diag.FromErr(fmt.Errorf("default tag not found: %w", err))
+ d[0].Severity = diag.Warning
+ diags = append(diags, d...)
+ } else {
+ tagCache[tagName] = nbTag
+ }
+ } else {
+ diags = append(diags, diag.Errorf("invalid type for default tag: %T", tag)...)
+ }
+ }
+ }
+
+ state := &providerState{
+ NetBoxAPI: netboxClient,
+ defaultTags: schema.CopySet(tags),
+ tagCache: tagCache,
+ }
+ return state, diags
+}
+
+func tagsCustomDiff(ctx context.Context, diff *schema.ResourceDiff, m interface{}) error {
+ state := m.(*providerState)
+
+ tagSet := diff.Get(tagsKey).(*schema.Set)
+ allTags := tagSet.Union(state.defaultTags)
+
+ // check if tags are already up-to-date
+ if diff.Get(tagsAllKey).(*schema.Set).Equal(allTags) {
+ return nil // nothing to do, same set
+ }
+
+ return diff.SetNew(tagsAllKey, allTags.List())
}
diff --git a/netbox/provider_test.go b/netbox/provider_test.go
index d372918d..11c5a6b6 100644
--- a/netbox/provider_test.go
+++ b/netbox/provider_test.go
@@ -64,7 +64,7 @@ func providerInvalidConfigure() schema.ConfigureContextFunc {
return nil, diag.FromErr(clientError)
}
- return netboxClient, diags
+ return &providerState{NetBoxAPI: netboxClient}, diags
}
}
@@ -87,3 +87,42 @@ func TestAccNetboxProviderConfigure_failure(t *testing.T) {
},
})
}
+
+func TestAccNetboxProviderDefaultTags(t *testing.T) {
+ defaultTag := fmt.Sprintf("managed-%s", acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum))
+
+ resource.Test(t, resource.TestCase{
+ ProviderFactories: map[string]func() (*schema.Provider, error){
+ "netbox": func() (*schema.Provider, error) {
+ p := Provider()
+ p.ConfigureContextFunc = func(ctx context.Context, rd *schema.ResourceData) (interface{}, diag.Diagnostics) {
+ rd.Set("default_tags", []string{defaultTag})
+ return providerConfigure(ctx, rd)
+ }
+ return p, nil
+ },
+ },
+ Steps: []resource.TestStep{
+ {
+ Config: fmt.Sprintf(`
+ resource "netbox_tag" "managed" {
+ name = "%s"
+ }
+
+ resource "netbox_site" "testsite" {
+ name = "%s"
+
+ depends_on = [
+ netbox_tag.managed
+ ]
+ }
+ `, defaultTag, acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum),
+ ),
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttr("netbox_site.testsite", "tags_all.#", "1"),
+ resource.TestCheckResourceAttr("netbox_site.testsite", "tags_all.0", defaultTag),
+ ),
+ },
+ },
+ })
+}
diff --git a/netbox/resource_netbox_aggregate.go b/netbox/resource_netbox_aggregate.go
index 40c22953..99d56260 100644
--- a/netbox/resource_netbox_aggregate.go
+++ b/netbox/resource_netbox_aggregate.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -47,7 +46,7 @@ func resourceNetboxAggregate() *schema.Resource {
}
}
func resourceNetboxAggregateCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableAggregate{}
prefix := d.Get("prefix").(string)
@@ -64,7 +63,11 @@ func resourceNetboxAggregateCreate(d *schema.ResourceData, m interface{}) error
data.Rir = int64ToPtr(int64(rirID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamAggregatesCreateParams().WithData(&data)
res, err := api.Ipam.IpamAggregatesCreate(params, nil)
@@ -77,7 +80,7 @@ func resourceNetboxAggregateCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxAggregateRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamAggregatesReadParams().WithID(id)
@@ -111,13 +114,13 @@ func resourceNetboxAggregateRead(d *schema.ResourceData, m interface{}) error {
d.Set("rir_id", nil)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxAggregateUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableAggregate{}
prefix := d.Get("prefix").(string)
@@ -134,10 +137,14 @@ func resourceNetboxAggregateUpdate(d *schema.ResourceData, m interface{}) error
data.Rir = int64ToPtr(int64(rirID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamAggregatesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamAggregatesUpdate(params, nil)
+ _, err = api.Ipam.IpamAggregatesUpdate(params, nil)
if err != nil {
return err
}
@@ -145,7 +152,7 @@ func resourceNetboxAggregateUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxAggregateDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamAggregatesDeleteParams().WithID(id)
_, err := api.Ipam.IpamAggregatesDelete(params, nil)
diff --git a/netbox/resource_netbox_aggregate_test.go b/netbox/resource_netbox_aggregate_test.go
index 68db28c2..a1ee8511 100644
--- a/netbox/resource_netbox_aggregate_test.go
+++ b/netbox/resource_netbox_aggregate_test.go
@@ -5,7 +5,6 @@ import (
"log"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -55,7 +54,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamAggregatesListParams()
res, err := api.Ipam.IpamAggregatesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_asn.go b/netbox/resource_netbox_asn.go
index 90559db6..19d9bd8c 100644
--- a/netbox/resource_netbox_asn.go
+++ b/netbox/resource_netbox_asn.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -51,7 +50,7 @@ func resourceNetboxAsn() *schema.Resource {
}
func resourceNetboxAsnCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableASN{}
@@ -63,7 +62,11 @@ func resourceNetboxAsnCreate(d *schema.ResourceData, m interface{}) error {
data.Description = d.Get("description").(string)
data.Comments = d.Get("comments").(string)
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamAsnsCreateParams().WithData(&data)
@@ -78,7 +81,7 @@ func resourceNetboxAsnCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxAsnRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamAsnsReadParams().WithID(id)
@@ -101,13 +104,13 @@ func resourceNetboxAsnRead(d *schema.ResourceData, m interface{}) error {
d.Set("rir_id", asn.Rir.ID)
d.Set("description", asn.Description)
d.Set("comments", asn.Comments)
- d.Set(tagsKey, getTagListFromNestedTagList(asn.Tags))
+ api.readTags(d, asn.Tags)
return nil
}
func resourceNetboxAsnUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableASN{}
@@ -120,11 +123,15 @@ func resourceNetboxAsnUpdate(d *schema.ResourceData, m interface{}) error {
data.Description = d.Get("description").(string)
data.Comments = d.Get("comments").(string)
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamAsnsUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamAsnsUpdate(params, nil)
+ _, err = api.Ipam.IpamAsnsUpdate(params, nil)
if err != nil {
return err
}
@@ -133,7 +140,7 @@ func resourceNetboxAsnUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxAsnDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamAsnsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_asn_test.go b/netbox/resource_netbox_asn_test.go
index 09b26192..970d9e7f 100644
--- a/netbox/resource_netbox_asn_test.go
+++ b/netbox/resource_netbox_asn_test.go
@@ -5,7 +5,6 @@ import (
"log"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -96,7 +95,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamAsnsListParams()
res, err := api.Ipam.IpamAsnsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_available_ip_address.go b/netbox/resource_netbox_available_ip_address.go
index 5e2a1869..7c12c0da 100644
--- a/netbox/resource_netbox_available_ip_address.go
+++ b/netbox/resource_netbox_available_ip_address.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -106,7 +105,7 @@ This resource will retrieve the next available IP address from a given prefix or
}
func resourceNetboxAvailableIPAddressCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
prefixID := int64(d.Get("prefix_id").(int))
vrfID := int64(int64(d.Get("vrf_id").(int)))
rangeID := int64(d.Get("ip_range_id").(int))
@@ -134,7 +133,7 @@ func resourceNetboxAvailableIPAddressCreate(d *schema.ResourceData, m interface{
}
func resourceNetboxAvailableIPAddressRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamIPAddressesReadParams().WithID(id)
@@ -191,12 +190,12 @@ func resourceNetboxAvailableIPAddressRead(d *schema.ResourceData, m interface{})
d.Set("ip_address", ipAddress.Address)
d.Set("description", ipAddress.Description)
d.Set("status", ipAddress.Status.Value)
- d.Set(tagsKey, getTagListFromNestedTagList(ipAddress.Tags))
+ api.readTags(d, ipAddress.Tags)
return nil
}
func resourceNetboxAvailableIPAddressUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableIPAddress{}
@@ -237,11 +236,15 @@ func resourceNetboxAvailableIPAddressUpdate(d *schema.ResourceData, m interface{
data.AssignedObjectID = nil
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamIPAddressesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamIPAddressesUpdate(params, nil)
+ _, err = api.Ipam.IpamIPAddressesUpdate(params, nil)
if err != nil {
return err
}
@@ -249,7 +252,7 @@ func resourceNetboxAvailableIPAddressUpdate(d *schema.ResourceData, m interface{
}
func resourceNetboxAvailableIPAddressDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamIPAddressesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_available_ip_address_test.go b/netbox/resource_netbox_available_ip_address_test.go
index de5a9f7f..303ea62a 100644
--- a/netbox/resource_netbox_available_ip_address_test.go
+++ b/netbox/resource_netbox_available_ip_address_test.go
@@ -6,7 +6,6 @@ import (
"regexp"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -294,7 +293,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamIPAddressesListParams()
res, err := api.Ipam.IpamIPAddressesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_available_prefix.go b/netbox/resource_netbox_available_prefix.go
index fc8baa08..ac05951f 100644
--- a/netbox/resource_netbox_available_prefix.go
+++ b/netbox/resource_netbox_available_prefix.go
@@ -6,7 +6,6 @@ import (
"strconv"
"strings"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -115,7 +114,7 @@ func resourceNetboxAvailablePrefixParseImport(importStr string) (int, string, in
}
func resourceNetboxAvailablePrefixCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
parentPrefixID := int64(d.Get("parent_prefix_id").(int))
prefixLength := int64(d.Get("prefix_length").(int))
diff --git a/netbox/resource_netbox_available_prefix_test.go b/netbox/resource_netbox_available_prefix_test.go
index fc673747..4e1c9305 100644
--- a/netbox/resource_netbox_available_prefix_test.go
+++ b/netbox/resource_netbox_available_prefix_test.go
@@ -5,7 +5,6 @@ import (
"regexp"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -175,7 +174,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamPrefixesListParams()
res, err := api.Ipam.IpamPrefixesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_cable.go b/netbox/resource_netbox_cable.go
index 1b787624..23be7555 100644
--- a/netbox/resource_netbox_cable.go
+++ b/netbox/resource_netbox_cable.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -90,7 +89,7 @@ func resourceNetboxCable() *schema.Resource {
}
func resourceNetboxCableCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableCable{
Status: d.Get("status").(string),
@@ -110,7 +109,11 @@ func resourceNetboxCableCreate(d *schema.ResourceData, m interface{}) error {
bTerminations := d.Get("b_termination").(*schema.Set)
data.BTerminations = getGenericObjectsFromSchemaSet(bTerminations)
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -130,7 +133,7 @@ func resourceNetboxCableCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxCableRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimCablesReadParams().WithID(id)
@@ -182,13 +185,13 @@ func resourceNetboxCableRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxCableUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -210,7 +213,11 @@ func resourceNetboxCableUpdate(d *schema.ResourceData, m interface{}) error {
bTerminations := d.Get("b_termination").(*schema.Set)
data.BTerminations = getGenericObjectsFromSchemaSet(bTerminations)
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -219,7 +226,7 @@ func resourceNetboxCableUpdate(d *schema.ResourceData, m interface{}) error {
params := dcim.NewDcimCablesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimCablesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimCablesPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -228,7 +235,7 @@ func resourceNetboxCableUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxCableDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimCablesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_cable_test.go b/netbox/resource_netbox_cable_test.go
index b025ca2e..c36c42e4 100644
--- a/netbox/resource_netbox_cable_test.go
+++ b/netbox/resource_netbox_cable_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -204,7 +203,7 @@ resource "netbox_cable" "test" {
func testAccCheckCableDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each cable
// is destroyed
@@ -244,7 +243,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimCablesListParams()
res, err := api.Dcim.DcimCablesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_circuit.go b/netbox/resource_netbox_circuit.go
index b54feeca..db82da30 100644
--- a/netbox/resource_netbox_circuit.go
+++ b/netbox/resource_netbox_circuit.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -56,7 +55,7 @@ func resourceNetboxCircuit() *schema.Resource {
}
func resourceNetboxCircuitCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableCircuit{}
@@ -95,7 +94,7 @@ func resourceNetboxCircuitCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxCircuitRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsCircuitsReadParams().WithID(id)
@@ -138,7 +137,7 @@ func resourceNetboxCircuitRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxCircuitUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableCircuit{}
@@ -176,7 +175,7 @@ func resourceNetboxCircuitUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxCircuitDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsCircuitsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_circuit_provider.go b/netbox/resource_netbox_circuit_provider.go
index 75a210b8..afa12bea 100644
--- a/netbox/resource_netbox_circuit_provider.go
+++ b/netbox/resource_netbox_circuit_provider.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -42,7 +41,7 @@ func resourceNetboxCircuitProvider() *schema.Resource {
}
func resourceNetboxCircuitProviderCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableProvider{}
@@ -73,7 +72,7 @@ func resourceNetboxCircuitProviderCreate(d *schema.ResourceData, m interface{})
}
func resourceNetboxCircuitProviderRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsProvidersReadParams().WithID(id)
@@ -98,7 +97,7 @@ func resourceNetboxCircuitProviderRead(d *schema.ResourceData, m interface{}) er
}
func resourceNetboxCircuitProviderUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableProvider{}
@@ -128,7 +127,7 @@ func resourceNetboxCircuitProviderUpdate(d *schema.ResourceData, m interface{})
}
func resourceNetboxCircuitProviderDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsProvidersDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_circuit_provider_test.go b/netbox/resource_netbox_circuit_provider_test.go
index 360b321c..8fe9b8ee 100644
--- a/netbox/resource_netbox_circuit_provider_test.go
+++ b/netbox/resource_netbox_circuit_provider_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -59,7 +58,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := circuits.NewCircuitsProvidersListParams()
res, err := api.Circuits.CircuitsProvidersList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_circuit_termination.go b/netbox/resource_netbox_circuit_termination.go
index 01454edb..14eb002d 100644
--- a/netbox/resource_netbox_circuit_termination.go
+++ b/netbox/resource_netbox_circuit_termination.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -58,7 +57,7 @@ func resourceNetboxCircuitTermination() *schema.Resource {
}
func resourceNetboxCircuitTerminationCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableCircuitTermination{}
@@ -85,7 +84,11 @@ func resourceNetboxCircuitTerminationCreate(d *schema.ResourceData, m interface{
data.UpstreamSpeed = int64ToPtr(int64(upstreamspeedValue.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -105,7 +108,7 @@ func resourceNetboxCircuitTerminationCreate(d *schema.ResourceData, m interface{
}
func resourceNetboxCircuitTerminationRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsCircuitTerminationsReadParams().WithID(id)
@@ -151,7 +154,7 @@ func resourceNetboxCircuitTerminationRead(d *schema.ResourceData, m interface{})
d.Set("upstream_speed", nil)
}
- d.Set(tagsKey, getTagListFromNestedTagList(term.Tags))
+ api.readTags(d, term.Tags)
cf := getCustomFields(term.CustomFields)
if cf != nil {
@@ -162,7 +165,7 @@ func resourceNetboxCircuitTerminationRead(d *schema.ResourceData, m interface{})
}
func resourceNetboxCircuitTerminationUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableCircuitTermination{}
@@ -190,7 +193,11 @@ func resourceNetboxCircuitTerminationUpdate(d *schema.ResourceData, m interface{
data.UpstreamSpeed = int64ToPtr(int64(upstreamspeedValue.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
cf, ok := d.GetOk(customFieldsKey)
if ok {
@@ -199,7 +206,7 @@ func resourceNetboxCircuitTerminationUpdate(d *schema.ResourceData, m interface{
params := circuits.NewCircuitsCircuitTerminationsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Circuits.CircuitsCircuitTerminationsPartialUpdate(params, nil)
+ _, err = api.Circuits.CircuitsCircuitTerminationsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -208,7 +215,7 @@ func resourceNetboxCircuitTerminationUpdate(d *schema.ResourceData, m interface{
}
func resourceNetboxCircuitTerminationDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsCircuitTerminationsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_circuit_termination_test.go b/netbox/resource_netbox_circuit_termination_test.go
index d7fb9559..2753f14f 100644
--- a/netbox/resource_netbox_circuit_termination_test.go
+++ b/netbox/resource_netbox_circuit_termination_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -72,7 +71,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := circuits.NewCircuitsCircuitsListParams()
res, err := api.Circuits.CircuitsCircuitsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_circuit_test.go b/netbox/resource_netbox_circuit_test.go
index b907776b..c0fb80be 100644
--- a/netbox/resource_netbox_circuit_test.go
+++ b/netbox/resource_netbox_circuit_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -83,7 +82,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := circuits.NewCircuitsCircuitsListParams()
res, err := api.Circuits.CircuitsCircuitsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_circuit_type.go b/netbox/resource_netbox_circuit_type.go
index 063fbb35..dc6d3531 100644
--- a/netbox/resource_netbox_circuit_type.go
+++ b/netbox/resource_netbox_circuit_type.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -40,7 +39,7 @@ func resourceNetboxCircuitType() *schema.Resource {
}
func resourceNetboxCircuitTypeCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.CircuitType{}
@@ -70,7 +69,7 @@ func resourceNetboxCircuitTypeCreate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxCircuitTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsCircuitTypesReadParams().WithID(id)
@@ -95,7 +94,7 @@ func resourceNetboxCircuitTypeRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxCircuitTypeUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.CircuitType{}
@@ -124,7 +123,7 @@ func resourceNetboxCircuitTypeUpdate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxCircuitTypeDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := circuits.NewCircuitsCircuitTypesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_circuit_type_test.go b/netbox/resource_netbox_circuit_type_test.go
index 631ed95e..14c500bd 100644
--- a/netbox/resource_netbox_circuit_type_test.go
+++ b/netbox/resource_netbox_circuit_type_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/circuits"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -48,7 +47,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := circuits.NewCircuitsCircuitTypesListParams()
res, err := api.Circuits.CircuitsCircuitTypesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_cluster.go b/netbox/resource_netbox_cluster.go
index b9bdc2e4..ba778662 100644
--- a/netbox/resource_netbox_cluster.go
+++ b/netbox/resource_netbox_cluster.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -60,7 +59,7 @@ func resourceNetboxCluster() *schema.Resource {
}
func resourceNetboxClusterCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableCluster{}
@@ -88,7 +87,7 @@ func resourceNetboxClusterCreate(d *schema.ResourceData, m interface{}) error {
data.Tenant = &tenantID
}
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := virtualization.NewVirtualizationClustersCreateParams().WithData(&data)
@@ -105,7 +104,7 @@ func resourceNetboxClusterCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxClusterRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationClustersReadParams().WithID(id)
@@ -146,12 +145,12 @@ func resourceNetboxClusterRead(d *schema.ResourceData, m interface{}) error {
d.Set("tenant_id", nil)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxClusterUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableCluster{}
@@ -180,7 +179,7 @@ func resourceNetboxClusterUpdate(d *schema.ResourceData, m interface{}) error {
data.Tenant = &tenantID
}
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := virtualization.NewVirtualizationClustersPartialUpdateParams().WithID(id).WithData(&data)
@@ -194,7 +193,7 @@ func resourceNetboxClusterUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxClusterDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationClustersDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_cluster_group.go b/netbox/resource_netbox_cluster_group.go
index 4464de5d..5faf8ab1 100644
--- a/netbox/resource_netbox_cluster_group.go
+++ b/netbox/resource_netbox_cluster_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -44,7 +43,7 @@ func resourceNetboxClusterGroup() *schema.Resource {
}
func resourceNetboxClusterGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.ClusterGroup{}
@@ -80,7 +79,7 @@ func resourceNetboxClusterGroupCreate(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxClusterGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationClusterGroupsReadParams().WithID(id)
@@ -104,7 +103,7 @@ func resourceNetboxClusterGroupRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxClusterGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.ClusterGroup{}
@@ -144,7 +143,7 @@ func resourceNetboxClusterGroupUpdate(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxClusterGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationClusterGroupsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_cluster_group_test.go b/netbox/resource_netbox_cluster_group_test.go
index e6341ba1..0b5c6efe 100644
--- a/netbox/resource_netbox_cluster_group_test.go
+++ b/netbox/resource_netbox_cluster_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -72,7 +71,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationClusterGroupsListParams()
res, err := api.Virtualization.VirtualizationClusterGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_cluster_test.go b/netbox/resource_netbox_cluster_test.go
index 882f0d2b..a8409c74 100644
--- a/netbox/resource_netbox_cluster_test.go
+++ b/netbox/resource_netbox_cluster_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -119,7 +118,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationClustersListParams()
res, err := api.Virtualization.VirtualizationClustersList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_cluster_type.go b/netbox/resource_netbox_cluster_type.go
index 81bfce51..64946055 100644
--- a/netbox/resource_netbox_cluster_type.go
+++ b/netbox/resource_netbox_cluster_type.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -40,7 +39,7 @@ func resourceNetboxClusterType() *schema.Resource {
}
func resourceNetboxClusterTypeCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
slugValue, slugOk := d.GetOk("slug")
@@ -73,7 +72,7 @@ func resourceNetboxClusterTypeCreate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxClusterTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationClusterTypesReadParams().WithID(id)
@@ -96,7 +95,7 @@ func resourceNetboxClusterTypeRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxClusterTypeUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.ClusterType{}
@@ -127,7 +126,7 @@ func resourceNetboxClusterTypeUpdate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxClusterTypeDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationClusterTypesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_cluster_type_test.go b/netbox/resource_netbox_cluster_type_test.go
index 1a42c350..fbd765d1 100644
--- a/netbox/resource_netbox_cluster_type_test.go
+++ b/netbox/resource_netbox_cluster_type_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -68,7 +67,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationClusterTypesListParams()
res, err := api.Virtualization.VirtualizationClusterTypesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_config_context.go b/netbox/resource_netbox_config_context.go
index 0098806d..f281d89a 100644
--- a/netbox/resource_netbox_config_context.go
+++ b/netbox/resource_netbox_config_context.go
@@ -4,7 +4,6 @@ import (
"encoding/json"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -153,7 +152,7 @@ func resourceNetboxConfigContext() *schema.Resource {
}
func resourceNetboxConfigContextCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableConfigContext{}
data.Name = strToPtr(d.Get("name").(string))
@@ -178,7 +177,7 @@ func resourceNetboxConfigContextCreate(d *schema.ResourceData, m interface{}) er
data.Sites = toInt64List(d.Get("sites"))
data.TenantGroups = toInt64List(d.Get("tenant_groups"))
data.Tenants = toInt64List(d.Get("tenants"))
- data.Tags = toStringList(d.Get("tags"))
+ data.Tags = toStringList(d.Get(tagsAllKey))
data.Weight = int64ToPtr(int64(d.Get("weight").(int)))
params := extras.NewExtrasConfigContextsCreateParams().WithData(&data)
@@ -195,7 +194,7 @@ func resourceNetboxConfigContextCreate(d *schema.ResourceData, m interface{}) er
}
func resourceNetboxConfigContextRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasConfigContextsReadParams().WithID(id)
@@ -293,12 +292,14 @@ func resourceNetboxConfigContextRead(d *schema.ResourceData, m interface{}) erro
}
d.Set("sites", sitesSlice)
- tags := res.GetPayload().Tags
- tagsSlice := make([]string, len(tags))
- for i, v := range tags {
- tagsSlice[i] = string(v)
+ // hack since `readTags` mostly deals with nested tags
+ tags := make([]*models.NestedTag, 0, len(res.GetPayload().Tags))
+ for _, tagName := range res.GetPayload().Tags {
+ tags = append(tags, &models.NestedTag{
+ Name: &tagName,
+ })
}
- d.Set("tags", tagsSlice)
+ api.readTags(d, tags)
tenantGroups := res.GetPayload().TenantGroups
tenantGroupsSlice := make([]int64, len(tenantGroups))
@@ -318,7 +319,7 @@ func resourceNetboxConfigContextRead(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxConfigContextUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -348,7 +349,7 @@ func resourceNetboxConfigContextUpdate(d *schema.ResourceData, m interface{}) er
data.Sites = toInt64List(d.Get("sites"))
data.TenantGroups = toInt64List(d.Get("tenant_groups"))
data.Tenants = toInt64List(d.Get("tenants"))
- data.Tags = toStringList(d.Get("tags"))
+ data.Tags = toStringList(d.Get(tagsAllKey))
data.Weight = int64ToPtr(int64(d.Get("weight").(int)))
params := extras.NewExtrasConfigContextsPartialUpdateParams().WithID(id).WithData(&data)
@@ -362,7 +363,7 @@ func resourceNetboxConfigContextUpdate(d *schema.ResourceData, m interface{}) er
}
func resourceNetboxConfigContextDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasConfigContextsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_config_context_test.go b/netbox/resource_netbox_config_context_test.go
index 052a542b..74d0a832 100644
--- a/netbox/resource_netbox_config_context_test.go
+++ b/netbox/resource_netbox_config_context_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -183,7 +182,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := extras.NewExtrasConfigContextsListParams()
res, err := api.Extras.ExtrasConfigContextsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_config_template.go b/netbox/resource_netbox_config_template.go
index e1afd9e8..f07cffee 100644
--- a/netbox/resource_netbox_config_template.go
+++ b/netbox/resource_netbox_config_template.go
@@ -5,7 +5,6 @@ import (
"encoding/json"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -54,7 +53,7 @@ func resourceNetboxConfigTemplate() *schema.Resource {
}
func resourceNetboxConfigTemplateCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -62,7 +61,7 @@ func resourceNetboxConfigTemplateCreate(ctx context.Context, d *schema.ResourceD
description := d.Get("description").(string)
templateCode := d.Get("template_code").(string)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data := models.WritableConfigTemplate{
Name: &name,
@@ -97,7 +96,7 @@ func resourceNetboxConfigTemplateCreate(ctx context.Context, d *schema.ResourceD
}
func resourceNetboxConfigTemplateRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
var diags diag.Diagnostics
@@ -138,7 +137,7 @@ func resourceNetboxConfigTemplateRead(ctx context.Context, d *schema.ResourceDat
}
func resourceNetboxConfigTemplateUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -148,7 +147,7 @@ func resourceNetboxConfigTemplateUpdate(ctx context.Context, d *schema.ResourceD
description := d.Get("description").(string)
templateCode := d.Get("template_code").(string)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data := models.WritableConfigTemplate{
Name: &name,
@@ -180,7 +179,7 @@ func resourceNetboxConfigTemplateUpdate(ctx context.Context, d *schema.ResourceD
}
func resourceNetboxConfigTemplateDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasConfigTemplatesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_config_template_test.go b/netbox/resource_netbox_config_template_test.go
index 247087c7..d057452c 100644
--- a/netbox/resource_netbox_config_template_test.go
+++ b/netbox/resource_netbox_config_template_test.go
@@ -5,7 +5,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
log "github.com/sirupsen/logrus"
@@ -111,7 +110,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := extras.NewExtrasConfigTemplatesListParams()
res, err := api.Extras.ExtrasConfigTemplatesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_contact.go b/netbox/resource_netbox_contact.go
index af025c9c..166bd5d7 100644
--- a/netbox/resource_netbox_contact.go
+++ b/netbox/resource_netbox_contact.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/go-openapi/strfmt"
@@ -49,14 +48,14 @@ func resourceNetboxContact() *schema.Resource {
}
func resourceNetboxContactCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
phone := d.Get("phone").(string)
email := d.Get("email").(string)
groupID := int64(d.Get("group_id").(int))
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data := &models.WritableContact{}
@@ -82,7 +81,7 @@ func resourceNetboxContactCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxContactRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactsReadParams().WithID(id)
@@ -110,7 +109,7 @@ func resourceNetboxContactRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxContactUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableContact{}
@@ -120,7 +119,7 @@ func resourceNetboxContactUpdate(d *schema.ResourceData, m interface{}) error {
email := d.Get("email").(string)
groupID := int64(d.Get("group_id").(int))
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Name = &name
data.Tags = tags
@@ -141,7 +140,7 @@ func resourceNetboxContactUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxContactDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_contact_assignment.go b/netbox/resource_netbox_contact_assignment.go
index 0e7ab341..0d9968da 100644
--- a/netbox/resource_netbox_contact_assignment.go
+++ b/netbox/resource_netbox_contact_assignment.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -54,7 +53,7 @@ func resourceNetboxContactAssignment() *schema.Resource {
}
func resourceNetboxContactAssignmentCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
contentType := d.Get("content_type").(string)
objectID := int64(d.Get("object_id").(int))
@@ -83,7 +82,7 @@ func resourceNetboxContactAssignmentCreate(d *schema.ResourceData, m interface{}
}
func resourceNetboxContactAssignmentRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactAssignmentsReadParams().WithID(id)
@@ -119,7 +118,7 @@ func resourceNetboxContactAssignmentRead(d *schema.ResourceData, m interface{})
}
func resourceNetboxContactAssignmentUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableContactAssignment{}
@@ -153,7 +152,7 @@ func resourceNetboxContactAssignmentUpdate(d *schema.ResourceData, m interface{}
}
func resourceNetboxContactAssignmentDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactAssignmentsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_contact_assignment_test.go b/netbox/resource_netbox_contact_assignment_test.go
index 0c16096a..7d3f5225 100644
--- a/netbox/resource_netbox_contact_assignment_test.go
+++ b/netbox/resource_netbox_contact_assignment_test.go
@@ -5,7 +5,6 @@ import (
"log"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -80,7 +79,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyContactAssignmentsListParams()
res, err := api.Tenancy.TenancyContactAssignmentsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_contact_group.go b/netbox/resource_netbox_contact_group.go
index 182a1f6b..80ac4c2a 100644
--- a/netbox/resource_netbox_contact_group.go
+++ b/netbox/resource_netbox_contact_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -48,7 +47,7 @@ func resourceNetboxContactGroup() *schema.Resource {
}
func resourceNetboxContactGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
parentID := int64(d.Get("parent_id").(int))
@@ -86,7 +85,7 @@ func resourceNetboxContactGroupCreate(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxContactGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactGroupsReadParams().WithID(id)
@@ -114,7 +113,7 @@ func resourceNetboxContactGroupRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxContactGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableContactGroup{}
@@ -151,7 +150,7 @@ func resourceNetboxContactGroupUpdate(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxContactGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactGroupsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_contact_group_test.go b/netbox/resource_netbox_contact_group_test.go
index e1e0513a..2f557204 100644
--- a/netbox/resource_netbox_contact_group_test.go
+++ b/netbox/resource_netbox_contact_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -65,7 +64,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyContactGroupsListParams()
res, err := api.Tenancy.TenancyContactGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_contact_role.go b/netbox/resource_netbox_contact_role.go
index 5aafc410..0dea171b 100644
--- a/netbox/resource_netbox_contact_role.go
+++ b/netbox/resource_netbox_contact_role.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -40,7 +39,7 @@ func resourceNetboxContactRole() *schema.Resource {
}
func resourceNetboxContactRoleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -70,7 +69,7 @@ func resourceNetboxContactRoleCreate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxContactRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactRolesReadParams().WithID(id)
@@ -96,7 +95,7 @@ func resourceNetboxContactRoleRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxContactRoleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.ContactRole{}
@@ -124,7 +123,7 @@ func resourceNetboxContactRoleUpdate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxContactRoleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyContactRolesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_contact_role_test.go b/netbox/resource_netbox_contact_role_test.go
index 811a8727..338d92cc 100644
--- a/netbox/resource_netbox_contact_role_test.go
+++ b/netbox/resource_netbox_contact_role_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -48,7 +47,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyContactRolesListParams()
res, err := api.Tenancy.TenancyContactRolesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_contact_test.go b/netbox/resource_netbox_contact_test.go
index 487e1b75..fd6c8d46 100644
--- a/netbox/resource_netbox_contact_test.go
+++ b/netbox/resource_netbox_contact_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -114,7 +113,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyContactsListParams()
res, err := api.Tenancy.TenancyContactsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_custom_field.go b/netbox/resource_netbox_custom_field.go
index a3507e64..c5315ac0 100644
--- a/netbox/resource_netbox_custom_field.go
+++ b/netbox/resource_netbox_custom_field.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -101,7 +100,7 @@ func resourceCustomField() *schema.Resource {
}
func resourceNetboxCustomFieldUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -153,7 +152,7 @@ func resourceNetboxCustomFieldUpdate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxCustomFieldCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := &models.WritableCustomField{
Name: strToPtr(d.Get("name").(string)),
@@ -205,7 +204,7 @@ func resourceNetboxCustomFieldCreate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxCustomFieldRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasCustomFieldsReadParams().WithID(id)
res, err := api.Extras.ExtrasCustomFieldsRead(params, nil)
@@ -251,7 +250,7 @@ func resourceNetboxCustomFieldRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxCustomFieldDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasCustomFieldsDeleteParams().WithID(id)
_, err := api.Extras.ExtrasCustomFieldsDelete(params, nil)
diff --git a/netbox/resource_netbox_custom_field_choice_set.go b/netbox/resource_netbox_custom_field_choice_set.go
index 27d4dc4b..dff24c88 100644
--- a/netbox/resource_netbox_custom_field_choice_set.go
+++ b/netbox/resource_netbox_custom_field_choice_set.go
@@ -4,7 +4,6 @@ import (
"errors"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -85,7 +84,7 @@ A choice set must define a base choice set and/or a set of arbitrary extra choic
}
func resourceNetboxCustomFieldChoiceSetCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -122,7 +121,7 @@ func resourceNetboxCustomFieldChoiceSetCreate(d *schema.ResourceData, m interfac
}
func resourceNetboxCustomFieldChoiceSetRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasCustomFieldChoiceSetsReadParams().WithID(id)
@@ -154,7 +153,7 @@ func resourceNetboxCustomFieldChoiceSetRead(d *schema.ResourceData, m interface{
}
func resourceNetboxCustomFieldChoiceSetUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -191,7 +190,7 @@ func resourceNetboxCustomFieldChoiceSetUpdate(d *schema.ResourceData, m interfac
}
func resourceNetboxCustomFieldChoiceSetDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasCustomFieldChoiceSetsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device.go b/netbox/resource_netbox_device.go
index bf0a47f4..f3cb48ee 100644
--- a/netbox/resource_netbox_device.go
+++ b/netbox/resource_netbox_device.go
@@ -5,7 +5,6 @@ import (
"encoding/json"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -143,7 +142,7 @@ func resourceNetboxDevice() *schema.Resource {
}
func resourceNetboxDeviceCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -240,7 +239,11 @@ func resourceNetboxDeviceCreate(ctx context.Context, d *schema.ResourceData, m i
data.CustomFields = ct
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
params := dcim.NewDcimDevicesCreateParams().WithData(&data)
@@ -267,7 +270,7 @@ func resourceNetboxDeviceCreate(ctx context.Context, d *schema.ResourceData, m i
}
func resourceNetboxDeviceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -400,12 +403,12 @@ func resourceNetboxDeviceRead(ctx context.Context, d *schema.ResourceData, m int
d.Set("local_context_data", nil)
}
- d.Set(tagsKey, getTagListFromNestedTagList(device.Tags))
+ api.readTags(d, device.Tags)
return diags
}
func resourceNetboxDeviceUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableDeviceWithConfigContext{}
@@ -486,7 +489,11 @@ func resourceNetboxDeviceUpdate(ctx context.Context, d *schema.ResourceData, m i
data.CustomFields = cf
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
if d.HasChanges("asset_tag") {
if assetTagValue, ok := d.GetOk("asset_tag"); ok {
@@ -530,7 +537,7 @@ func resourceNetboxDeviceUpdate(ctx context.Context, d *schema.ResourceData, m i
params := dcim.NewDcimDevicesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimDevicesUpdate(params, nil)
+ _, err = api.Dcim.DcimDevicesUpdate(params, nil)
if err != nil {
return diag.FromErr(err)
}
@@ -556,7 +563,7 @@ func resourceNetboxDeviceUpdate(ctx context.Context, d *schema.ResourceData, m i
}
func resourceNetboxDeviceDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
diff --git a/netbox/resource_netbox_device_console_port.go b/netbox/resource_netbox_device_console_port.go
index 4336dbbf..e5467e82 100644
--- a/netbox/resource_netbox_device_console_port.go
+++ b/netbox/resource_netbox_device_console_port.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -66,7 +65,7 @@ func resourceNetboxDeviceConsolePort() *schema.Resource {
}
func resourceNetboxDeviceConsolePortCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableConsolePort{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -79,7 +78,11 @@ func resourceNetboxDeviceConsolePortCreate(d *schema.ResourceData, m interface{}
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -99,7 +102,7 @@ func resourceNetboxDeviceConsolePortCreate(d *schema.ResourceData, m interface{}
}
func resourceNetboxDeviceConsolePortRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimConsolePortsReadParams().WithID(id)
@@ -151,13 +154,13 @@ func resourceNetboxDeviceConsolePortRead(d *schema.ResourceData, m interface{})
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDeviceConsolePortUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -172,7 +175,11 @@ func resourceNetboxDeviceConsolePortUpdate(d *schema.ResourceData, m interface{}
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -181,7 +188,7 @@ func resourceNetboxDeviceConsolePortUpdate(d *schema.ResourceData, m interface{}
params := dcim.NewDcimConsolePortsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimConsolePortsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimConsolePortsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -190,7 +197,7 @@ func resourceNetboxDeviceConsolePortUpdate(d *schema.ResourceData, m interface{}
}
func resourceNetboxDeviceConsolePortDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimConsolePortsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_console_port_test.go b/netbox/resource_netbox_device_console_port_test.go
index f89afaae..bac8e30e 100644
--- a/netbox/resource_netbox_device_console_port_test.go
+++ b/netbox/resource_netbox_device_console_port_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -135,7 +134,7 @@ resource "netbox_device_console_port" "test" {
func testAccCheckDeviceConsolePortDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each console port
// is destroyed
@@ -175,7 +174,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimConsolePortsListParams()
res, err := api.Dcim.DcimConsolePortsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_console_server_port.go b/netbox/resource_netbox_device_console_server_port.go
index c7439468..4082ca5e 100644
--- a/netbox/resource_netbox_device_console_server_port.go
+++ b/netbox/resource_netbox_device_console_server_port.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -66,7 +65,7 @@ func resourceNetboxDeviceConsoleServerPort() *schema.Resource {
}
func resourceNetboxDeviceConsoleServerPortCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableConsoleServerPort{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -79,7 +78,11 @@ func resourceNetboxDeviceConsoleServerPortCreate(d *schema.ResourceData, m inter
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -99,7 +102,7 @@ func resourceNetboxDeviceConsoleServerPortCreate(d *schema.ResourceData, m inter
}
func resourceNetboxDeviceConsoleServerPortRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimConsoleServerPortsReadParams().WithID(id)
@@ -151,13 +154,13 @@ func resourceNetboxDeviceConsoleServerPortRead(d *schema.ResourceData, m interfa
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDeviceConsoleServerPortUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -172,7 +175,11 @@ func resourceNetboxDeviceConsoleServerPortUpdate(d *schema.ResourceData, m inter
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -181,7 +188,7 @@ func resourceNetboxDeviceConsoleServerPortUpdate(d *schema.ResourceData, m inter
params := dcim.NewDcimConsoleServerPortsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimConsoleServerPortsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimConsoleServerPortsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -190,7 +197,7 @@ func resourceNetboxDeviceConsoleServerPortUpdate(d *schema.ResourceData, m inter
}
func resourceNetboxDeviceConsoleServerPortDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimConsoleServerPortsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_console_server_port_test.go b/netbox/resource_netbox_device_console_server_port_test.go
index 97f3fb6e..d20dba84 100644
--- a/netbox/resource_netbox_device_console_server_port_test.go
+++ b/netbox/resource_netbox_device_console_server_port_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -135,7 +134,7 @@ resource "netbox_device_console_server_port" "test" {
func testAccCheckDeviceConsoleServerPortDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each console server port
// is destroyed
@@ -175,7 +174,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimConsoleServerPortsListParams()
res, err := api.Dcim.DcimConsoleServerPortsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_front_port.go b/netbox/resource_netbox_device_front_port.go
index 10a3fc33..5b3f02f8 100644
--- a/netbox/resource_netbox_device_front_port.go
+++ b/netbox/resource_netbox_device_front_port.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -73,7 +72,7 @@ func resourceNetboxDeviceFrontPort() *schema.Resource {
}
func resourceNetboxDeviceFrontPortCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableFrontPort{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -88,7 +87,11 @@ func resourceNetboxDeviceFrontPortCreate(d *schema.ResourceData, m interface{})
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -108,7 +111,7 @@ func resourceNetboxDeviceFrontPortCreate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDeviceFrontPortRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimFrontPortsReadParams().WithID(id)
@@ -163,13 +166,13 @@ func resourceNetboxDeviceFrontPortRead(d *schema.ResourceData, m interface{}) er
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDeviceFrontPortUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -186,7 +189,11 @@ func resourceNetboxDeviceFrontPortUpdate(d *schema.ResourceData, m interface{})
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -195,7 +202,7 @@ func resourceNetboxDeviceFrontPortUpdate(d *schema.ResourceData, m interface{})
params := dcim.NewDcimFrontPortsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimFrontPortsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimFrontPortsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -204,7 +211,7 @@ func resourceNetboxDeviceFrontPortUpdate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDeviceFrontPortDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimFrontPortsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_front_port_test.go b/netbox/resource_netbox_device_front_port_test.go
index 58de210b..2a1dacdb 100644
--- a/netbox/resource_netbox_device_front_port_test.go
+++ b/netbox/resource_netbox_device_front_port_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -152,7 +151,7 @@ resource "netbox_device_front_port" "test" {
func testAccCheckDeviceFrontPortDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each front port
// is destroyed
@@ -192,7 +191,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimFrontPortsListParams()
res, err := api.Dcim.DcimFrontPortsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_interface.go b/netbox/resource_netbox_device_interface.go
index 0ba06330..4abd6c27 100644
--- a/netbox/resource_netbox_device_interface.go
+++ b/netbox/resource_netbox_device_interface.go
@@ -5,7 +5,6 @@ import (
"strconv"
"strings"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -109,7 +108,7 @@ func resourceNetboxDeviceInterface() *schema.Resource {
}
func resourceNetboxDeviceInterfaceCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -120,9 +119,9 @@ func resourceNetboxDeviceInterfaceCreate(ctx context.Context, d *schema.Resource
enabled := d.Get("enabled").(bool)
mgmtonly := d.Get("mgmtonly").(bool)
mode := d.Get("mode").(string)
- tags, diagnostics := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
- if diagnostics != nil {
- diags = append(diags, diagnostics...)
+ tags, err := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
}
taggedVlans := toInt64List(d.Get("tagged_vlans"))
deviceID := int64(d.Get("device_id").(int))
@@ -173,7 +172,7 @@ func resourceNetboxDeviceInterfaceCreate(ctx context.Context, d *schema.Resource
}
func resourceNetboxDeviceInterfaceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
var diags diag.Diagnostics
@@ -204,7 +203,7 @@ func resourceNetboxDeviceInterfaceRead(ctx context.Context, d *schema.ResourceDa
d.Set("mac_address", iface.MacAddress)
d.Set("mtu", iface.Mtu)
d.Set("speed", iface.Speed)
- d.Set(tagsKey, getTagListFromNestedTagList(iface.Tags))
+ api.readTags(d, iface.Tags)
d.Set("tagged_vlans", getIDsFromNestedVLANDevice(iface.TaggedVlans))
d.Set("device_id", iface.Device.ID)
@@ -225,7 +224,7 @@ func resourceNetboxDeviceInterfaceRead(ctx context.Context, d *schema.ResourceDa
}
func resourceNetboxDeviceInterfaceUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -238,9 +237,9 @@ func resourceNetboxDeviceInterfaceUpdate(ctx context.Context, d *schema.Resource
enabled := d.Get("enabled").(bool)
mgmtonly := d.Get("mgmtonly").(bool)
mode := d.Get("mode").(string)
- tags, diagnostics := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
- if diagnostics != nil {
- diags = append(diags, diagnostics...)
+ tags, err := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
}
taggedVlans := toInt64List(d.Get("tagged_vlans"))
deviceID := int64(d.Get("device_id").(int))
@@ -286,7 +285,7 @@ func resourceNetboxDeviceInterfaceUpdate(ctx context.Context, d *schema.Resource
}
params := dcim.NewDcimInterfacesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimInterfacesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimInterfacesPartialUpdate(params, nil)
if err != nil {
return diag.FromErr(err)
}
@@ -295,7 +294,7 @@ func resourceNetboxDeviceInterfaceUpdate(ctx context.Context, d *schema.Resource
}
func resourceNetboxDeviceInterfaceDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimInterfacesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_interface_test.go b/netbox/resource_netbox_device_interface_test.go
index 68903a7f..d730e12b 100644
--- a/netbox/resource_netbox_device_interface_test.go
+++ b/netbox/resource_netbox_device_interface_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -307,7 +306,7 @@ func TestAccNetboxDeviceInterface_vlans(t *testing.T) {
func testAccCheckDeviceInterfaceDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each interface
// is destroyed
@@ -347,7 +346,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimInterfacesListParams()
res, err := api.Dcim.DcimInterfacesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_module_bay.go b/netbox/resource_netbox_device_module_bay.go
index 6f5998a7..f4741bfb 100644
--- a/netbox/resource_netbox_device_module_bay.go
+++ b/netbox/resource_netbox_device_module_bay.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -53,7 +52,7 @@ func resourceNetboxDeviceModuleBay() *schema.Resource {
}
func resourceNetboxDeviceModuleBayCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableModuleBay{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -63,7 +62,11 @@ func resourceNetboxDeviceModuleBayCreate(d *schema.ResourceData, m interface{})
Description: getOptionalStr(d, "description", false),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -83,7 +86,7 @@ func resourceNetboxDeviceModuleBayCreate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDeviceModuleBayRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimModuleBaysReadParams().WithID(id)
@@ -116,13 +119,13 @@ func resourceNetboxDeviceModuleBayRead(d *schema.ResourceData, m interface{}) er
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDeviceModuleBayUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -134,7 +137,11 @@ func resourceNetboxDeviceModuleBayUpdate(d *schema.ResourceData, m interface{})
Description: getOptionalStr(d, "description", true),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -143,7 +150,7 @@ func resourceNetboxDeviceModuleBayUpdate(d *schema.ResourceData, m interface{})
params := dcim.NewDcimModuleBaysPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimModuleBaysPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimModuleBaysPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -152,7 +159,7 @@ func resourceNetboxDeviceModuleBayUpdate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDeviceModuleBayDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimModuleBaysDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_module_bay_test.go b/netbox/resource_netbox_device_module_bay_test.go
index e587680b..e18d503c 100644
--- a/netbox/resource_netbox_device_module_bay_test.go
+++ b/netbox/resource_netbox_device_module_bay_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -108,7 +107,7 @@ resource "netbox_device_module_bay" "test" {
func testAccCheckDeviceModuleBayDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each module bay
// is destroyed
@@ -148,7 +147,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimModuleBaysListParams()
res, err := api.Dcim.DcimModuleBaysList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_power_feed.go b/netbox/resource_netbox_device_power_feed.go
index 39cb5361..f9537045 100644
--- a/netbox/resource_netbox_device_power_feed.go
+++ b/netbox/resource_netbox_device_power_feed.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -94,7 +93,7 @@ func resourceNetboxPowerFeed() *schema.Resource {
}
func resourceNetboxPowerFeedCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritablePowerFeed{
PowerPanel: int64ToPtr(int64(d.Get("power_panel_id").(int))),
@@ -112,7 +111,11 @@ func resourceNetboxPowerFeedCreate(d *schema.ResourceData, m interface{}) error
Comments: getOptionalStr(d, "comments", false),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -132,7 +135,7 @@ func resourceNetboxPowerFeedCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPowerFeedRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerFeedsReadParams().WithID(id)
@@ -200,13 +203,13 @@ func resourceNetboxPowerFeedRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxPowerFeedUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -226,7 +229,11 @@ func resourceNetboxPowerFeedUpdate(d *schema.ResourceData, m interface{}) error
Comments: getOptionalStr(d, "comments", true),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -235,7 +242,7 @@ func resourceNetboxPowerFeedUpdate(d *schema.ResourceData, m interface{}) error
params := dcim.NewDcimPowerFeedsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimPowerFeedsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimPowerFeedsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -244,7 +251,7 @@ func resourceNetboxPowerFeedUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPowerFeedDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerFeedsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_power_feed_test.go b/netbox/resource_netbox_device_power_feed_test.go
index 494c6606..17919861 100644
--- a/netbox/resource_netbox_device_power_feed_test.go
+++ b/netbox/resource_netbox_device_power_feed_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -139,7 +138,7 @@ resource "netbox_power_feed" "test" {
func testAccCheckDevicePowerFeedDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each power feed
// is destroyed
@@ -179,7 +178,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimPowerFeedsListParams()
res, err := api.Dcim.DcimPowerFeedsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_power_outlet.go b/netbox/resource_netbox_device_power_outlet.go
index 6f79a3f0..4b57a2c1 100644
--- a/netbox/resource_netbox_device_power_outlet.go
+++ b/netbox/resource_netbox_device_power_outlet.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -74,7 +73,7 @@ For example, imagine a PDU with one power port which draws from a three-phase fe
}
func resourceNetboxDevicePowerOutletCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritablePowerOutlet{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -88,7 +87,11 @@ func resourceNetboxDevicePowerOutletCreate(d *schema.ResourceData, m interface{}
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -108,7 +111,7 @@ func resourceNetboxDevicePowerOutletCreate(d *schema.ResourceData, m interface{}
}
func resourceNetboxDevicePowerOutletRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerOutletsReadParams().WithID(id)
@@ -167,13 +170,13 @@ func resourceNetboxDevicePowerOutletRead(d *schema.ResourceData, m interface{})
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDevicePowerOutletUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -189,7 +192,11 @@ func resourceNetboxDevicePowerOutletUpdate(d *schema.ResourceData, m interface{}
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -198,7 +205,7 @@ func resourceNetboxDevicePowerOutletUpdate(d *schema.ResourceData, m interface{}
params := dcim.NewDcimPowerOutletsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimPowerOutletsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimPowerOutletsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -207,7 +214,7 @@ func resourceNetboxDevicePowerOutletUpdate(d *schema.ResourceData, m interface{}
}
func resourceNetboxDevicePowerOutletDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerOutletsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_power_outlet_test.go b/netbox/resource_netbox_device_power_outlet_test.go
index 19ecf456..f065f196 100644
--- a/netbox/resource_netbox_device_power_outlet_test.go
+++ b/netbox/resource_netbox_device_power_outlet_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -143,7 +142,7 @@ resource "netbox_device_power_outlet" "test" {
func testAccCheckDevicePowerOutletDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each power outlet
// is destroyed
@@ -183,7 +182,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimPowerOutletsListParams()
res, err := api.Dcim.DcimPowerOutletsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_power_port.go b/netbox/resource_netbox_device_power_port.go
index d0ae078f..7345444a 100644
--- a/netbox/resource_netbox_device_power_port.go
+++ b/netbox/resource_netbox_device_power_port.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -69,7 +68,7 @@ func resourceNetboxDevicePowerPort() *schema.Resource {
}
func resourceNetboxDevicePowerPortCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritablePowerPort{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -83,7 +82,11 @@ func resourceNetboxDevicePowerPortCreate(d *schema.ResourceData, m interface{})
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -103,7 +106,7 @@ func resourceNetboxDevicePowerPortCreate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDevicePowerPortRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerPortsReadParams().WithID(id)
@@ -153,13 +156,13 @@ func resourceNetboxDevicePowerPortRead(d *schema.ResourceData, m interface{}) er
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDevicePowerPortUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -175,7 +178,11 @@ func resourceNetboxDevicePowerPortUpdate(d *schema.ResourceData, m interface{})
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -184,7 +191,7 @@ func resourceNetboxDevicePowerPortUpdate(d *schema.ResourceData, m interface{})
params := dcim.NewDcimPowerPortsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimPowerPortsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimPowerPortsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -193,7 +200,7 @@ func resourceNetboxDevicePowerPortUpdate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDevicePowerPortDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerPortsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_power_port_test.go b/netbox/resource_netbox_device_power_port_test.go
index 077530a9..3beb6fd5 100644
--- a/netbox/resource_netbox_device_power_port_test.go
+++ b/netbox/resource_netbox_device_power_port_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -135,7 +134,7 @@ resource "netbox_device_power_port" "test" {
func testAccCheckDevicePowerPortDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each power port
// is destroyed
@@ -175,7 +174,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimPowerPortsListParams()
res, err := api.Dcim.DcimPowerPortsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_primary_ip.go b/netbox/resource_netbox_device_primary_ip.go
index 5f2ebb14..6fc358b4 100644
--- a/netbox/resource_netbox_device_primary_ip.go
+++ b/netbox/resource_netbox_device_primary_ip.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -48,7 +47,7 @@ func resourceNetboxDevicePrimaryIPCreate(d *schema.ResourceData, m interface{})
}
func resourceNetboxDevicePrimaryIPRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimDevicesReadParams().WithID(id)
@@ -82,7 +81,7 @@ func resourceNetboxDevicePrimaryIPRead(d *schema.ResourceData, m interface{}) er
}
func resourceNetboxDevicePrimaryIPUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
deviceID := int64(d.Get("device_id").(int))
IPAddressID := int64(d.Get("ip_address_id").(int))
diff --git a/netbox/resource_netbox_device_rear_port.go b/netbox/resource_netbox_device_rear_port.go
index 5a9aff65..42d50ebd 100644
--- a/netbox/resource_netbox_device_rear_port.go
+++ b/netbox/resource_netbox_device_rear_port.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -69,7 +68,7 @@ func resourceNetboxDeviceRearPort() *schema.Resource {
}
func resourceNetboxDeviceRearPortCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableRearPort{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -83,7 +82,11 @@ func resourceNetboxDeviceRearPortCreate(d *schema.ResourceData, m interface{}) e
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -103,7 +106,7 @@ func resourceNetboxDeviceRearPortCreate(d *schema.ResourceData, m interface{}) e
}
func resourceNetboxDeviceRearPortRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRearPortsReadParams().WithID(id)
@@ -152,13 +155,13 @@ func resourceNetboxDeviceRearPortRead(d *schema.ResourceData, m interface{}) err
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDeviceRearPortUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -174,7 +177,11 @@ func resourceNetboxDeviceRearPortUpdate(d *schema.ResourceData, m interface{}) e
MarkConnected: d.Get("mark_connected").(bool),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -183,7 +190,7 @@ func resourceNetboxDeviceRearPortUpdate(d *schema.ResourceData, m interface{}) e
params := dcim.NewDcimRearPortsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimRearPortsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimRearPortsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -192,7 +199,7 @@ func resourceNetboxDeviceRearPortUpdate(d *schema.ResourceData, m interface{}) e
}
func resourceNetboxDeviceRearPortDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRearPortsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_rear_port_test.go b/netbox/resource_netbox_device_rear_port_test.go
index cd411852..eb98fa7f 100644
--- a/netbox/resource_netbox_device_rear_port_test.go
+++ b/netbox/resource_netbox_device_rear_port_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -140,7 +139,7 @@ resource "netbox_device_rear_port" "test" {
func testAccCheckDeviceRearPortDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each rear port
// is destroyed
@@ -180,7 +179,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRearPortsListParams()
res, err := api.Dcim.DcimRearPortsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_role.go b/netbox/resource_netbox_device_role.go
index 8eb1108e..ef3226c2 100644
--- a/netbox/resource_netbox_device_role.go
+++ b/netbox/resource_netbox_device_role.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -54,7 +53,7 @@ func resourceNetboxDeviceRole() *schema.Resource {
}
func resourceNetboxDeviceRoleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
slugValue, slugOk := d.GetOk("slug")
@@ -71,7 +70,7 @@ func resourceNetboxDeviceRoleCreate(d *schema.ResourceData, m interface{}) error
vmRole := d.Get("vm_role").(bool)
description := d.Get("description").(string)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
params := dcim.NewDcimDeviceRolesCreateParams().WithData(
&models.DeviceRole{
@@ -96,7 +95,7 @@ func resourceNetboxDeviceRoleCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxDeviceRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimDeviceRolesReadParams().WithID(id)
@@ -118,12 +117,12 @@ func resourceNetboxDeviceRoleRead(d *schema.ResourceData, m interface{}) error {
d.Set("vm_role", res.GetPayload().VMRole)
d.Set("color_hex", res.GetPayload().Color)
d.Set("description", res.GetPayload().Description)
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxDeviceRoleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.DeviceRole{}
@@ -149,7 +148,7 @@ func resourceNetboxDeviceRoleUpdate(d *schema.ResourceData, m interface{}) error
data.Color = color
data.Description = description
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := dcim.NewDcimDeviceRolesPartialUpdateParams().WithID(id).WithData(&data)
@@ -163,7 +162,7 @@ func resourceNetboxDeviceRoleUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxDeviceRoleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimDeviceRolesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_role_test.go b/netbox/resource_netbox_device_role_test.go
index f73aa29e..11e32e87 100644
--- a/netbox/resource_netbox_device_role_test.go
+++ b/netbox/resource_netbox_device_role_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -74,7 +73,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimDeviceRolesListParams()
res, err := api.Dcim.DcimDeviceRolesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_test.go b/netbox/resource_netbox_device_test.go
index 1a6d203b..1e928d13 100644
--- a/netbox/resource_netbox_device_test.go
+++ b/netbox/resource_netbox_device_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -359,7 +358,7 @@ resource "netbox_device" "test" {
func testAccCheckDeviceDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each device
// is destroyed
@@ -399,7 +398,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimDevicesListParams()
res, err := api.Dcim.DcimDevicesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_device_type.go b/netbox/resource_netbox_device_type.go
index 6c7fffe1..1ac00d2c 100644
--- a/netbox/resource_netbox_device_type.go
+++ b/netbox/resource_netbox_device_type.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -58,7 +57,7 @@ func resourceNetboxDeviceType() *schema.Resource {
}
func resourceNetboxDeviceTypeCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableDeviceType{}
@@ -90,7 +89,11 @@ func resourceNetboxDeviceTypeCreate(d *schema.ResourceData, m interface{}) error
data.IsFullDepth = isFullDepthValue.(bool)
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := dcim.NewDcimDeviceTypesCreateParams().WithData(&data)
@@ -105,7 +108,7 @@ func resourceNetboxDeviceTypeCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxDeviceTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimDeviceTypesReadParams().WithID(id)
@@ -130,13 +133,13 @@ func resourceNetboxDeviceTypeRead(d *schema.ResourceData, m interface{}) error {
d.Set("part_number", deviceType.PartNumber)
d.Set("u_height", deviceType.UHeight)
d.Set("is_full_depth", deviceType.IsFullDepth)
- d.Set(tagsKey, getTagListFromNestedTagList(deviceType.Tags))
+ api.readTags(d, deviceType.Tags)
return nil
}
func resourceNetboxDeviceTypeUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableDeviceType{}
@@ -169,11 +172,15 @@ func resourceNetboxDeviceTypeUpdate(d *schema.ResourceData, m interface{}) error
data.IsFullDepth = isFullDepthValue.(bool)
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := dcim.NewDcimDeviceTypesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimDeviceTypesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimDeviceTypesPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -182,7 +189,7 @@ func resourceNetboxDeviceTypeUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxDeviceTypeDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimDeviceTypesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_device_type_test.go b/netbox/resource_netbox_device_type_test.go
index baa13381..57a8c109 100644
--- a/netbox/resource_netbox_device_type_test.go
+++ b/netbox/resource_netbox_device_type_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -83,7 +82,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimDeviceTypesListParams()
res, err := api.Dcim.DcimDeviceTypesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_event_rule.go b/netbox/resource_netbox_event_rule.go
index a53a61b7..3d9ecb33 100644
--- a/netbox/resource_netbox_event_rule.go
+++ b/netbox/resource_netbox_event_rule.go
@@ -4,7 +4,6 @@ import (
"encoding/json"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -80,7 +79,7 @@ func resourceNetboxEventRule() *schema.Resource {
}
func resourceNetboxEventRuleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := &models.WritableEventRule{}
@@ -103,7 +102,7 @@ func resourceNetboxEventRuleCreate(d *schema.ResourceData, m interface{}) error
data.Enabled = enabled
data.ActionObjectID = getOptionalInt(d, "action_object_id")
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
ctypes := d.Get("content_types").(*schema.Set).List()
@@ -135,7 +134,7 @@ func resourceNetboxEventRuleCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxEventRuleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasEventRulesReadParams().WithID(id)
@@ -169,13 +168,13 @@ func resourceNetboxEventRuleRead(d *schema.ResourceData, m interface{}) error {
d.Set("conditions", string(conditions))
}
- d.Set(tagsKey, getTagListFromNestedTagList(eventRule.Tags))
+ api.readTags(d, eventRule.Tags)
return nil
}
func resourceNetboxEventRuleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableEventRule{}
@@ -208,7 +207,7 @@ func resourceNetboxEventRuleUpdate(d *schema.ResourceData, m interface{}) error
data.Conditions = conditions
}
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
ctypes := d.Get("content_types").(*schema.Set).List()
@@ -229,7 +228,7 @@ func resourceNetboxEventRuleUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxEventRuleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasEventRulesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_event_rule_test.go b/netbox/resource_netbox_event_rule_test.go
index 289742fb..1d98a73e 100644
--- a/netbox/resource_netbox_event_rule_test.go
+++ b/netbox/resource_netbox_event_rule_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -76,7 +75,7 @@ resource "netbox_event_rule" "test" {
}
func testAccCheckNetBoxEventRuleDestroy(s *terraform.State) error {
- client := testAccProvider.Meta().(*client.NetBoxAPI)
+ client := testAccProvider.Meta().(*providerState)
for _, rs := range s.RootModule().Resources {
if rs.Type != "netbox_event_rule" {
@@ -104,7 +103,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := extras.NewExtrasEventRulesListParams()
res, err := api.Extras.ExtrasEventRulesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_group.go b/netbox/resource_netbox_group.go
index e3df2ff3..59916b6b 100644
--- a/netbox/resource_netbox_group.go
+++ b/netbox/resource_netbox_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -35,7 +34,7 @@ func resourceNetboxGroup() *schema.Resource {
}
}
func resourceNetboxGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.Group{}
name := d.Get("name").(string)
@@ -55,7 +54,7 @@ func resourceNetboxGroupCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersGroupsReadParams().WithID(id)
@@ -81,7 +80,7 @@ func resourceNetboxGroupRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.Group{}
@@ -100,7 +99,7 @@ func resourceNetboxGroupUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersGroupsDeleteParams().WithID(id)
_, err := api.Users.UsersGroupsDelete(params, nil)
diff --git a/netbox/resource_netbox_group_test.go b/netbox/resource_netbox_group_test.go
index e6cbd746..1a03c9cd 100644
--- a/netbox/resource_netbox_group_test.go
+++ b/netbox/resource_netbox_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -47,7 +46,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := users.NewUsersGroupsListParams()
res, err := api.Users.UsersGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_interface.go b/netbox/resource_netbox_interface.go
index e7146c74..a26cfe4c 100644
--- a/netbox/resource_netbox_interface.go
+++ b/netbox/resource_netbox_interface.go
@@ -5,7 +5,6 @@ import (
"strconv"
"strings"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -88,7 +87,7 @@ func resourceNetboxInterface() *schema.Resource {
}
func resourceNetboxInterfaceCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -96,9 +95,9 @@ func resourceNetboxInterfaceCreate(ctx context.Context, d *schema.ResourceData,
description := d.Get("description").(string)
enabled := d.Get("enabled").(bool)
mode := d.Get("mode").(string)
- tags, diagnostics := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
- if diagnostics != nil {
- diags = append(diags, diagnostics...)
+ tags, err := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
}
taggedVlans := toInt64List(d.Get("tagged_vlans"))
virtualMachineID := int64(d.Get("virtual_machine_id").(int))
@@ -134,7 +133,7 @@ func resourceNetboxInterfaceCreate(ctx context.Context, d *schema.ResourceData,
}
func resourceNetboxInterfaceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
var diags diag.Diagnostics
@@ -161,7 +160,7 @@ func resourceNetboxInterfaceRead(ctx context.Context, d *schema.ResourceData, m
d.Set("enabled", iface.Enabled)
d.Set("mac_address", iface.MacAddress)
d.Set("mtu", iface.Mtu)
- d.Set(tagsKey, getTagListFromNestedTagList(iface.Tags))
+ api.readTags(d, iface.Tags)
d.Set("tagged_vlans", getIDsFromNestedVLAN(iface.TaggedVlans))
d.Set("virtual_machine_id", iface.VirtualMachine.ID)
@@ -176,7 +175,7 @@ func resourceNetboxInterfaceRead(ctx context.Context, d *schema.ResourceData, m
}
func resourceNetboxInterfaceUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -186,9 +185,9 @@ func resourceNetboxInterfaceUpdate(ctx context.Context, d *schema.ResourceData,
description := d.Get("description").(string)
enabled := d.Get("enabled").(bool)
mode := d.Get("mode").(string)
- tags, diagnostics := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
- if diagnostics != nil {
- diags = append(diags, diagnostics...)
+ tags, err := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
}
taggedVlans := toInt64List(d.Get("tagged_vlans"))
virtualMachineID := int64(d.Get("virtual_machine_id").(int))
@@ -217,7 +216,7 @@ func resourceNetboxInterfaceUpdate(ctx context.Context, d *schema.ResourceData,
}
params := virtualization.NewVirtualizationInterfacesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Virtualization.VirtualizationInterfacesPartialUpdate(params, nil)
+ _, err = api.Virtualization.VirtualizationInterfacesPartialUpdate(params, nil)
if err != nil {
return diag.FromErr(err)
}
@@ -226,7 +225,7 @@ func resourceNetboxInterfaceUpdate(ctx context.Context, d *schema.ResourceData,
}
func resourceNetboxInterfaceDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationInterfacesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_interface_template.go b/netbox/resource_netbox_interface_template.go
index 2b32dd21..0c3f4207 100644
--- a/netbox/resource_netbox_interface_template.go
+++ b/netbox/resource_netbox_interface_template.go
@@ -4,7 +4,6 @@ import (
"context"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -64,7 +63,7 @@ func resourceNetboxInterfaceTemplate() *schema.Resource {
}
func resourceNetboxInterfaceTemplateCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -101,7 +100,7 @@ func resourceNetboxInterfaceTemplateCreate(ctx context.Context, d *schema.Resour
}
func resourceNetboxInterfaceTemplateRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
var diags diag.Diagnostics
@@ -140,7 +139,7 @@ func resourceNetboxInterfaceTemplateRead(ctx context.Context, d *schema.Resource
}
func resourceNetboxInterfaceTemplateUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -180,7 +179,7 @@ func resourceNetboxInterfaceTemplateUpdate(ctx context.Context, d *schema.Resour
}
func resourceNetboxInterfaceTemplateDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimInterfaceTemplatesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_interface_template_test.go b/netbox/resource_netbox_interface_template_test.go
index ca1f5f78..74c9699a 100644
--- a/netbox/resource_netbox_interface_template_test.go
+++ b/netbox/resource_netbox_interface_template_test.go
@@ -5,7 +5,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
log "github.com/sirupsen/logrus"
@@ -131,7 +130,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimInterfaceTemplatesListParams()
res, err := api.Dcim.DcimInterfaceTemplatesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_interface_test.go b/netbox/resource_netbox_interface_test.go
index b575356e..2e38729a 100644
--- a/netbox/resource_netbox_interface_test.go
+++ b/netbox/resource_netbox_interface_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -203,7 +202,7 @@ func TestAccNetboxInterface_vlans(t *testing.T) {
func testAccCheckInterfaceDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each interface
// is destroyed
@@ -243,7 +242,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationInterfacesListParams()
res, err := api.Virtualization.VirtualizationInterfacesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_inventory_item.go b/netbox/resource_netbox_inventory_item.go
index 824064c4..ce0a590d 100644
--- a/netbox/resource_netbox_inventory_item.go
+++ b/netbox/resource_netbox_inventory_item.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -95,7 +94,7 @@ func resourceNetboxInventoryItem() *schema.Resource {
}
func resourceNetboxInventoryItemCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableInventoryItem{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
Name: strToPtr(d.Get("name").(string)),
@@ -118,7 +117,11 @@ func resourceNetboxInventoryItemCreate(d *schema.ResourceData, m interface{}) er
data.ComponentID = getOptionalInt(d, "component_id")
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -138,7 +141,7 @@ func resourceNetboxInventoryItemCreate(d *schema.ResourceData, m interface{}) er
}
func resourceNetboxInventoryItemRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimInventoryItemsReadParams().WithID(id)
@@ -192,13 +195,13 @@ func resourceNetboxInventoryItemRead(d *schema.ResourceData, m interface{}) erro
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxInventoryItemUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -224,7 +227,11 @@ func resourceNetboxInventoryItemUpdate(d *schema.ResourceData, m interface{}) er
data.ComponentID = getOptionalInt(d, "component_id")
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -233,7 +240,7 @@ func resourceNetboxInventoryItemUpdate(d *schema.ResourceData, m interface{}) er
params := dcim.NewDcimInventoryItemsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimInventoryItemsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimInventoryItemsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -242,7 +249,7 @@ func resourceNetboxInventoryItemUpdate(d *schema.ResourceData, m interface{}) er
}
func resourceNetboxInventoryItemDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimInventoryItemsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_inventory_item_role.go b/netbox/resource_netbox_inventory_item_role.go
index cb57d95f..60a99391 100644
--- a/netbox/resource_netbox_inventory_item_role.go
+++ b/netbox/resource_netbox_inventory_item_role.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -49,7 +48,7 @@ func resourceNetboxInventoryItemRole() *schema.Resource {
}
func resourceNetboxInventoryItemRoleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.InventoryItemRole{
Name: strToPtr(d.Get("name").(string)),
Slug: strToPtr(d.Get("slug").(string)),
@@ -57,7 +56,11 @@ func resourceNetboxInventoryItemRoleCreate(d *schema.ResourceData, m interface{}
Color: getOptionalStr(d, "color_hex", false),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -77,7 +80,7 @@ func resourceNetboxInventoryItemRoleCreate(d *schema.ResourceData, m interface{}
}
func resourceNetboxInventoryItemRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimInventoryItemRolesReadParams().WithID(id)
@@ -103,13 +106,13 @@ func resourceNetboxInventoryItemRoleRead(d *schema.ResourceData, m interface{})
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxInventoryItemRoleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -120,7 +123,11 @@ func resourceNetboxInventoryItemRoleUpdate(d *schema.ResourceData, m interface{}
Color: getOptionalStr(d, "color_hex", false),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -129,7 +136,7 @@ func resourceNetboxInventoryItemRoleUpdate(d *schema.ResourceData, m interface{}
params := dcim.NewDcimInventoryItemRolesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimInventoryItemRolesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimInventoryItemRolesPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -138,7 +145,7 @@ func resourceNetboxInventoryItemRoleUpdate(d *schema.ResourceData, m interface{}
}
func resourceNetboxInventoryItemRoleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimInventoryItemRolesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_inventory_item_role_test.go b/netbox/resource_netbox_inventory_item_role_test.go
index 11344ec3..736585ac 100644
--- a/netbox/resource_netbox_inventory_item_role_test.go
+++ b/netbox/resource_netbox_inventory_item_role_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -74,7 +73,7 @@ resource "netbox_inventory_item_role" "test" {
func testAccCheckInventoryItemRoleDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each inventory item role
// is destroyed
@@ -114,7 +113,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimInventoryItemRolesListParams()
res, err := api.Dcim.DcimInventoryItemRolesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_inventory_item_test.go b/netbox/resource_netbox_inventory_item_test.go
index 0376c1f4..c915c59e 100644
--- a/netbox/resource_netbox_inventory_item_test.go
+++ b/netbox/resource_netbox_inventory_item_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -177,7 +176,7 @@ resource "netbox_inventory_item" "test" {
func testAccCheckInventoryItemDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each inventory item
// is destroyed
@@ -217,7 +216,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimInventoryItemsListParams()
res, err := api.Dcim.DcimInventoryItemsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_ip_address.go b/netbox/resource_netbox_ip_address.go
index b36df779..aa7c5720 100644
--- a/netbox/resource_netbox_ip_address.go
+++ b/netbox/resource_netbox_ip_address.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -117,7 +116,7 @@ func resourceNetboxIPAddress() *schema.Resource {
}
func resourceNetboxIPAddressCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableIPAddress{}
@@ -152,7 +151,11 @@ func resourceNetboxIPAddressCreate(d *schema.ResourceData, m interface{}) error
data.AssignedObjectID = nil
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
cf, ok := d.GetOk(customFieldsKey)
if ok {
@@ -172,7 +175,7 @@ func resourceNetboxIPAddressCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxIPAddressRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamIPAddressesReadParams().WithID(id)
@@ -260,7 +263,7 @@ func resourceNetboxIPAddressRead(d *schema.ResourceData, m interface{}) error {
d.Set("ip_address", ipAddress.Address)
d.Set("description", ipAddress.Description)
d.Set("status", ipAddress.Status.Value)
- d.Set(tagsKey, getTagListFromNestedTagList(ipAddress.Tags))
+ api.readTags(d, ipAddress.Tags)
cf := getCustomFields(res.GetPayload().CustomFields)
if cf != nil {
d.Set(customFieldsKey, cf)
@@ -269,7 +272,7 @@ func resourceNetboxIPAddressRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxIPAddressUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableIPAddress{}
@@ -305,7 +308,11 @@ func resourceNetboxIPAddressUpdate(d *schema.ResourceData, m interface{}) error
data.AssignedObjectID = nil
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
if cf, ok := d.GetOk(customFieldsKey); ok {
data.CustomFields = cf
@@ -313,7 +320,7 @@ func resourceNetboxIPAddressUpdate(d *schema.ResourceData, m interface{}) error
params := ipam.NewIpamIPAddressesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamIPAddressesUpdate(params, nil)
+ _, err = api.Ipam.IpamIPAddressesUpdate(params, nil)
if err != nil {
return err
}
@@ -322,7 +329,7 @@ func resourceNetboxIPAddressUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxIPAddressDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamIPAddressesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_ip_address_test.go b/netbox/resource_netbox_ip_address_test.go
index 3b4e66d8..8c79fdb2 100644
--- a/netbox/resource_netbox_ip_address_test.go
+++ b/netbox/resource_netbox_ip_address_test.go
@@ -6,7 +6,6 @@ import (
"regexp"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -528,7 +527,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamIPAddressesListParams()
res, err := api.Ipam.IpamIPAddressesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_ip_range.go b/netbox/resource_netbox_ip_range.go
index 5cce094f..efeae4f7 100644
--- a/netbox/resource_netbox_ip_range.go
+++ b/netbox/resource_netbox_ip_range.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -64,7 +63,7 @@ func resourceNetboxIPRange() *schema.Resource {
}
func resourceNetboxIPRangeCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableIPRange{}
startAddress := d.Get("start_address").(string)
@@ -77,7 +76,11 @@ func resourceNetboxIPRangeCreate(d *schema.ResourceData, m interface{}) error {
data.Status = status
data.Description = description
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamIPRangesCreateParams().WithData(&data)
res, err := api.Ipam.IpamIPRangesCreate(params, nil)
@@ -90,7 +93,7 @@ func resourceNetboxIPRangeCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxIPRangeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamIPRangesReadParams().WithID(id)
@@ -135,13 +138,13 @@ func resourceNetboxIPRangeRead(d *schema.ResourceData, m interface{}) error {
d.Set("role_id", res.GetPayload().Role.ID)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxIPRangeUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableIPRange{}
startAddress := d.Get("start_address").(string)
@@ -167,10 +170,14 @@ func resourceNetboxIPRangeUpdate(d *schema.ResourceData, m interface{}) error {
data.Role = int64ToPtr(int64(roleID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamIPRangesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamIPRangesUpdate(params, nil)
+ _, err = api.Ipam.IpamIPRangesUpdate(params, nil)
if err != nil {
return err
}
@@ -178,7 +185,7 @@ func resourceNetboxIPRangeUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxIPRangeDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamIPRangesDeleteParams().WithID(id)
_, err := api.Ipam.IpamIPRangesDelete(params, nil)
diff --git a/netbox/resource_netbox_ip_range_test.go b/netbox/resource_netbox_ip_range_test.go
index 16fea62a..06b923f1 100644
--- a/netbox/resource_netbox_ip_range_test.go
+++ b/netbox/resource_netbox_ip_range_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -147,7 +146,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamIPRangesListParams()
res, err := api.Ipam.IpamIPRangesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_ipam_role.go b/netbox/resource_netbox_ipam_role.go
index 56419e1b..8bd45ff4 100644
--- a/netbox/resource_netbox_ipam_role.go
+++ b/netbox/resource_netbox_ipam_role.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -48,7 +47,7 @@ func resourceNetboxIpamRole() *schema.Resource {
}
}
func resourceNetboxIpamRoleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.Role{}
name := d.Get("name").(string)
@@ -81,7 +80,7 @@ func resourceNetboxIpamRoleCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxIpamRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamRolesReadParams().WithID(id)
@@ -118,7 +117,7 @@ func resourceNetboxIpamRoleRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxIpamRoleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.Role{}
@@ -150,7 +149,7 @@ func resourceNetboxIpamRoleUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxIpamRoleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamRolesDeleteParams().WithID(id)
_, err := api.Ipam.IpamRolesDelete(params, nil)
diff --git a/netbox/resource_netbox_ipam_role_test.go b/netbox/resource_netbox_ipam_role_test.go
index 5d8d3d5e..d8a5fabf 100644
--- a/netbox/resource_netbox_ipam_role_test.go
+++ b/netbox/resource_netbox_ipam_role_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -83,7 +82,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamRolesListParams()
res, err := api.Ipam.IpamRolesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_location.go b/netbox/resource_netbox_location.go
index 4117b3a4..28ec279d 100644
--- a/netbox/resource_netbox_location.go
+++ b/netbox/resource_netbox_location.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -60,7 +59,7 @@ Each location must have a name that is unique within its parent site and locatio
}
func resourceNetboxLocationCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableLocation{}
@@ -92,7 +91,11 @@ func resourceNetboxLocationCreate(d *schema.ResourceData, m interface{}) error {
data.Tenant = int64ToPtr(int64(tenantIDValue.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -112,7 +115,7 @@ func resourceNetboxLocationCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxLocationRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimLocationsReadParams().WithID(id)
@@ -158,13 +161,13 @@ func resourceNetboxLocationRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxLocationUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableLocation{}
@@ -200,7 +203,11 @@ func resourceNetboxLocationUpdate(d *schema.ResourceData, m interface{}) error {
data.Tenant = int64ToPtr(int64(tenantIDValue.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
cf, ok := d.GetOk(customFieldsKey)
if ok {
@@ -209,7 +216,7 @@ func resourceNetboxLocationUpdate(d *schema.ResourceData, m interface{}) error {
params := dcim.NewDcimLocationsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimLocationsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimLocationsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -218,7 +225,7 @@ func resourceNetboxLocationUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxLocationDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimLocationsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_location_test.go b/netbox/resource_netbox_location_test.go
index bffee866..91b50ed2 100644
--- a/netbox/resource_netbox_location_test.go
+++ b/netbox/resource_netbox_location_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -176,7 +175,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimLocationsListParams()
res, err := api.Dcim.DcimLocationsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_manufacturer.go b/netbox/resource_netbox_manufacturer.go
index 2adfc658..8774ac7e 100644
--- a/netbox/resource_netbox_manufacturer.go
+++ b/netbox/resource_netbox_manufacturer.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -40,7 +39,7 @@ func resourceNetboxManufacturer() *schema.Resource {
}
func resourceNetboxManufacturerCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.Manufacturer{}
@@ -70,7 +69,7 @@ func resourceNetboxManufacturerCreate(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxManufacturerRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimManufacturersReadParams().WithID(id)
@@ -95,7 +94,7 @@ func resourceNetboxManufacturerRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxManufacturerUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.Manufacturer{}
@@ -124,7 +123,7 @@ func resourceNetboxManufacturerUpdate(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxManufacturerDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimManufacturersDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_manufacturer_test.go b/netbox/resource_netbox_manufacturer_test.go
index 0c6a2b81..c56f918c 100644
--- a/netbox/resource_netbox_manufacturer_test.go
+++ b/netbox/resource_netbox_manufacturer_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -48,7 +47,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimManufacturersListParams()
res, err := api.Dcim.DcimManufacturersList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_module.go b/netbox/resource_netbox_module.go
index ccd7c90d..82144781 100644
--- a/netbox/resource_netbox_module.go
+++ b/netbox/resource_netbox_module.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -68,7 +67,7 @@ Similar to devices, modules are instantiated from module types, and any componen
}
func resourceNetboxModuleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableModule{
Device: int64ToPtr(int64(d.Get("device_id").(int))),
@@ -84,7 +83,11 @@ func resourceNetboxModuleCreate(d *schema.ResourceData, m interface{}) error {
data.AssetTag = &assetTag
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -104,7 +107,7 @@ func resourceNetboxModuleCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxModuleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimModulesReadParams().WithID(id)
@@ -155,13 +158,13 @@ func resourceNetboxModuleRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxModuleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -179,7 +182,11 @@ func resourceNetboxModuleUpdate(d *schema.ResourceData, m interface{}) error {
data.AssetTag = &assetTag
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -188,7 +195,7 @@ func resourceNetboxModuleUpdate(d *schema.ResourceData, m interface{}) error {
params := dcim.NewDcimModulesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimModulesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimModulesPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -197,7 +204,7 @@ func resourceNetboxModuleUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxModuleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimModulesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_module_test.go b/netbox/resource_netbox_module_test.go
index d783f3c9..cdab0fba 100644
--- a/netbox/resource_netbox_module_test.go
+++ b/netbox/resource_netbox_module_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -129,7 +128,7 @@ resource "netbox_module" "test" {
func testAccCheckModuleDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each module
// is destroyed
@@ -169,7 +168,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimModulesListParams()
res, err := api.Dcim.DcimModulesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_module_type.go b/netbox/resource_netbox_module_type.go
index fa775072..ab839ed6 100644
--- a/netbox/resource_netbox_module_type.go
+++ b/netbox/resource_netbox_module_type.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -63,7 +62,7 @@ func resourceNetboxModuleType() *schema.Resource {
}
func resourceNetboxModuleTypeCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableModuleType{
Manufacturer: int64ToPtr(int64(d.Get("manufacturer_id").(int))),
@@ -75,7 +74,11 @@ func resourceNetboxModuleTypeCreate(d *schema.ResourceData, m interface{}) error
Comments: getOptionalStr(d, "comments", false),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -95,7 +98,7 @@ func resourceNetboxModuleTypeCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxModuleTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimModuleTypesReadParams().WithID(id)
@@ -136,13 +139,13 @@ func resourceNetboxModuleTypeRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxModuleTypeUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -156,7 +159,11 @@ func resourceNetboxModuleTypeUpdate(d *schema.ResourceData, m interface{}) error
Comments: getOptionalStr(d, "comments", true),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -165,7 +172,7 @@ func resourceNetboxModuleTypeUpdate(d *schema.ResourceData, m interface{}) error
params := dcim.NewDcimModuleTypesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimModuleTypesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimModuleTypesPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -174,7 +181,7 @@ func resourceNetboxModuleTypeUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxModuleTypeDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimModuleTypesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_module_type_test.go b/netbox/resource_netbox_module_type_test.go
index 9cc77ebd..25139de9 100644
--- a/netbox/resource_netbox_module_type_test.go
+++ b/netbox/resource_netbox_module_type_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -88,7 +87,7 @@ resource "netbox_module_type" "test" {
func testAccCheckModuleTypeDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each module type
// is destroyed
@@ -128,7 +127,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimModuleTypesListParams()
res, err := api.Dcim.DcimModuleTypesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_permission.go b/netbox/resource_netbox_permission.go
index 42892687..daa0b4a0 100644
--- a/netbox/resource_netbox_permission.go
+++ b/netbox/resource_netbox_permission.go
@@ -4,7 +4,6 @@ import (
"encoding/json"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -86,7 +85,7 @@ func resourceNetboxPermission() *schema.Resource {
}
}
func resourceNetboxPermissionCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableObjectPermission{}
name := d.Get("name").(string)
@@ -127,7 +126,7 @@ func resourceNetboxPermissionCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPermissionRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersPermissionsReadParams().WithID(id)
@@ -178,7 +177,7 @@ func resourceNetboxPermissionRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPermissionUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableObjectPermission{}
@@ -217,7 +216,7 @@ func resourceNetboxPermissionUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPermissionDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersPermissionsDeleteParams().WithID(id)
_, err := api.Users.UsersPermissionsDelete(params, nil)
diff --git a/netbox/resource_netbox_permission_test.go b/netbox/resource_netbox_permission_test.go
index de2ea77b..a94d3141 100644
--- a/netbox/resource_netbox_permission_test.go
+++ b/netbox/resource_netbox_permission_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -93,7 +92,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := users.NewUsersPermissionsListParams()
res, err := api.Users.UsersPermissionsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_platform.go b/netbox/resource_netbox_platform.go
index ab45d411..ea36e873 100644
--- a/netbox/resource_netbox_platform.go
+++ b/netbox/resource_netbox_platform.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -44,7 +43,7 @@ func resourceNetboxPlatform() *schema.Resource {
}
func resourceNetboxPlatformCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -82,7 +81,7 @@ func resourceNetboxPlatformCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPlatformRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPlatformsReadParams().WithID(id)
@@ -111,7 +110,7 @@ func resourceNetboxPlatformRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPlatformUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritablePlatform{}
@@ -147,7 +146,7 @@ func resourceNetboxPlatformUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPlatformDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPlatformsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_platform_test.go b/netbox/resource_netbox_platform_test.go
index 093c7f9b..2afddf96 100644
--- a/netbox/resource_netbox_platform_test.go
+++ b/netbox/resource_netbox_platform_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -104,7 +103,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimPlatformsListParams()
res, err := api.Dcim.DcimPlatformsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_power_panel.go b/netbox/resource_netbox_power_panel.go
index 75a0ee4b..f0b729b7 100644
--- a/netbox/resource_netbox_power_panel.go
+++ b/netbox/resource_netbox_power_panel.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -51,7 +50,7 @@ func resourceNetboxPowerPanel() *schema.Resource {
}
func resourceNetboxPowerPanelCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritablePowerPanel{
Site: int64ToPtr(int64(d.Get("site_id").(int))),
@@ -61,7 +60,11 @@ func resourceNetboxPowerPanelCreate(d *schema.ResourceData, m interface{}) error
Comments: getOptionalStr(d, "comments", false),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -81,7 +84,7 @@ func resourceNetboxPowerPanelCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPowerPanelRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerPanelsReadParams().WithID(id)
@@ -120,13 +123,13 @@ func resourceNetboxPowerPanelRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxPowerPanelUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -138,7 +141,11 @@ func resourceNetboxPowerPanelUpdate(d *schema.ResourceData, m interface{}) error
Comments: getOptionalStr(d, "comments", true),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -147,7 +154,7 @@ func resourceNetboxPowerPanelUpdate(d *schema.ResourceData, m interface{}) error
params := dcim.NewDcimPowerPanelsPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimPowerPanelsPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimPowerPanelsPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -156,7 +163,7 @@ func resourceNetboxPowerPanelUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPowerPanelDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimPowerPanelsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_power_panel_test.go b/netbox/resource_netbox_power_panel_test.go
index fb52377f..ff257c44 100644
--- a/netbox/resource_netbox_power_panel_test.go
+++ b/netbox/resource_netbox_power_panel_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -87,7 +86,7 @@ resource "netbox_power_panel" "test" {
func testAccCheckPowerPanelDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each power panel
// is destroyed
@@ -127,7 +126,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimPowerPanelsListParams()
res, err := api.Dcim.DcimPowerPanelsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_prefix.go b/netbox/resource_netbox_prefix.go
index b7621f30..49765e94 100644
--- a/netbox/resource_netbox_prefix.go
+++ b/netbox/resource_netbox_prefix.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -78,7 +77,7 @@ func resourceNetboxPrefix() *schema.Resource {
}
}
func resourceNetboxPrefixCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritablePrefix{}
prefix := d.Get("prefix").(string)
@@ -120,7 +119,11 @@ func resourceNetboxPrefixCreate(d *schema.ResourceData, m interface{}) error {
data.CustomFields = cf
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamPrefixesCreateParams().WithData(&data)
res, err := api.Ipam.IpamPrefixesCreate(params, nil)
@@ -133,7 +136,7 @@ func resourceNetboxPrefixCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPrefixRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamPrefixesReadParams().WithID(id)
@@ -195,14 +198,14 @@ func resourceNetboxPrefixRead(d *schema.ResourceData, m interface{}) error {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
// FIGURE OUT NESTED VRF AND NESTED VLAN (from maybe interfaces?)
return nil
}
func resourceNetboxPrefixUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritablePrefix{}
prefix := d.Get("prefix").(string)
@@ -246,10 +249,14 @@ func resourceNetboxPrefixUpdate(d *schema.ResourceData, m interface{}) error {
data.CustomFields = cf
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamPrefixesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamPrefixesUpdate(params, nil)
+ _, err = api.Ipam.IpamPrefixesUpdate(params, nil)
if err != nil {
return err
}
@@ -257,7 +264,7 @@ func resourceNetboxPrefixUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPrefixDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamPrefixesDeleteParams().WithID(id)
_, err := api.Ipam.IpamPrefixesDelete(params, nil)
diff --git a/netbox/resource_netbox_prefix_test.go b/netbox/resource_netbox_prefix_test.go
index ed744098..6b68b774 100644
--- a/netbox/resource_netbox_prefix_test.go
+++ b/netbox/resource_netbox_prefix_test.go
@@ -6,7 +6,6 @@ import (
"regexp"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -285,7 +284,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamPrefixesListParams()
res, err := api.Ipam.IpamPrefixesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_primary_ip.go b/netbox/resource_netbox_primary_ip.go
index 68c8d7f6..f2782bce 100644
--- a/netbox/resource_netbox_primary_ip.go
+++ b/netbox/resource_netbox_primary_ip.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -48,7 +47,7 @@ func resourceNetboxPrimaryIPCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxPrimaryIPRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationVirtualMachinesReadParams().WithID(id)
@@ -82,7 +81,7 @@ func resourceNetboxPrimaryIPRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxPrimaryIPUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
virtualMachineID := int64(d.Get("virtual_machine_id").(int))
IPAddressID := int64(d.Get("ip_address_id").(int))
diff --git a/netbox/resource_netbox_rack.go b/netbox/resource_netbox_rack.go
index 4ae39021..98939752 100644
--- a/netbox/resource_netbox_rack.go
+++ b/netbox/resource_netbox_rack.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -154,7 +153,7 @@ Each rack is assigned a name and (optionally) a separate facility ID. This is he
}
func resourceNetboxRackCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
siteID := int64(d.Get("site_id").(int))
@@ -196,7 +195,11 @@ func resourceNetboxRackCreate(d *schema.ResourceData, m interface{}) error {
data.Comments = getOptionalStr(d, "comments", false)
data.FormFactor = getOptionalStr(d, "form_factor", false)
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -216,7 +219,7 @@ func resourceNetboxRackCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRacksReadParams().WithID(id)
@@ -314,13 +317,13 @@ func resourceNetboxRackRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxRackUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -366,7 +369,11 @@ func resourceNetboxRackUpdate(d *schema.ResourceData, m interface{}) error {
data.Comments = getOptionalStr(d, "comments", true)
data.FormFactor = getOptionalStr(d, "form_factor", false)
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
cf, ok := d.GetOk(customFieldsKey)
if ok {
@@ -375,7 +382,7 @@ func resourceNetboxRackUpdate(d *schema.ResourceData, m interface{}) error {
params := dcim.NewDcimRacksPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimRacksPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimRacksPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -384,7 +391,7 @@ func resourceNetboxRackUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRacksDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_rack_reservation.go b/netbox/resource_netbox_rack_reservation.go
index 6b3af09b..793b6c56 100644
--- a/netbox/resource_netbox_rack_reservation.go
+++ b/netbox/resource_netbox_rack_reservation.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -58,9 +57,9 @@ func resourceNetboxRackReservation() *schema.Resource {
}
func resourceNetboxRackReservationCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
params := dcim.NewDcimRackReservationsCreateParams().WithData(
&models.WritableRackReservation{
@@ -85,7 +84,7 @@ func resourceNetboxRackReservationCreate(d *schema.ResourceData, m interface{})
}
func resourceNetboxRackReservationRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRackReservationsReadParams().WithID(id)
@@ -126,16 +125,16 @@ func resourceNetboxRackReservationRead(d *schema.ResourceData, m interface{}) er
d.Set("comments", rackRes.Comments)
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxRackReservationUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data := models.WritableRackReservation{
Rack: getOptionalInt(d, "rack_id"),
@@ -158,7 +157,7 @@ func resourceNetboxRackReservationUpdate(d *schema.ResourceData, m interface{})
}
func resourceNetboxRackReservationDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRackReservationsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_rack_reservation_test.go b/netbox/resource_netbox_rack_reservation_test.go
index d3a618ab..5a60653f 100644
--- a/netbox/resource_netbox_rack_reservation_test.go
+++ b/netbox/resource_netbox_rack_reservation_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -73,7 +72,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRackReservationsListParams()
res, err := api.Dcim.DcimRackReservationsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_rack_role.go b/netbox/resource_netbox_rack_role.go
index 1621b8ad..c24debc1 100644
--- a/netbox/resource_netbox_rack_role.go
+++ b/netbox/resource_netbox_rack_role.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -49,7 +48,7 @@ func resourceNetboxRackRole() *schema.Resource {
}
func resourceNetboxRackRoleCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
slugValue, slugOk := d.GetOk("slug")
@@ -65,7 +64,7 @@ func resourceNetboxRackRoleCreate(d *schema.ResourceData, m interface{}) error {
color := d.Get("color_hex").(string)
description := getOptionalStr(d, "description", false)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
params := dcim.NewDcimRackRolesCreateParams().WithData(
&models.RackRole{
@@ -88,7 +87,7 @@ func resourceNetboxRackRoleCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackRoleRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRackRolesReadParams().WithID(id)
@@ -111,12 +110,12 @@ func resourceNetboxRackRoleRead(d *schema.ResourceData, m interface{}) error {
d.Set("slug", rackRole.Slug)
d.Set("description", rackRole.Description)
d.Set("color_hex", rackRole.Color)
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxRackRoleUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.RackRole{}
@@ -139,7 +138,7 @@ func resourceNetboxRackRoleUpdate(d *schema.ResourceData, m interface{}) error {
data.Description = getOptionalStr(d, "description", true)
data.Color = color
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := dcim.NewDcimRackRolesPartialUpdateParams().WithID(id).WithData(&data)
@@ -153,7 +152,7 @@ func resourceNetboxRackRoleUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackRoleDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRackRolesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_rack_role_test.go b/netbox/resource_netbox_rack_role_test.go
index 5c7659c5..c9ecc659 100644
--- a/netbox/resource_netbox_rack_role_test.go
+++ b/netbox/resource_netbox_rack_role_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -72,7 +71,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRackRolesListParams()
res, err := api.Dcim.DcimRackRolesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_rack_test.go b/netbox/resource_netbox_rack_test.go
index 5595f157..6810d8dc 100644
--- a/netbox/resource_netbox_rack_test.go
+++ b/netbox/resource_netbox_rack_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -210,7 +209,7 @@ resource "netbox_rack" "test" {
func testAccCheckRackDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each rack
// is destroyed
@@ -250,7 +249,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRacksListParams()
res, err := api.Dcim.DcimRacksList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_rack_type.go b/netbox/resource_netbox_rack_type.go
index 311d5065..d5ccb5e7 100644
--- a/netbox/resource_netbox_rack_type.go
+++ b/netbox/resource_netbox_rack_type.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -188,7 +187,7 @@ func resourceNetboxRackType() *schema.Resource {
}
func resourceNetboxRackTypeCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
model := d.Get("model").(string)
formFactor := d.Get("form_factor").(string)
@@ -223,7 +222,11 @@ func resourceNetboxRackTypeCreate(d *schema.ResourceData, m interface{}) error {
MountingDepth: getOptionalInt(d, "mounting_depth_mm"),
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := dcim.NewDcimRackTypesCreateParams().WithData(&data)
@@ -238,7 +241,7 @@ func resourceNetboxRackTypeCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackTypeRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRackTypesReadParams().WithID(id)
@@ -270,7 +273,7 @@ func resourceNetboxRackTypeRead(d *schema.ResourceData, m interface{}) error {
}
d.Set("u_height", rackType.UHeight)
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
d.Set("description", rackType.Description)
d.Set("comments", rackType.Comments)
@@ -298,7 +301,7 @@ func resourceNetboxRackTypeRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackTypeUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -344,7 +347,7 @@ func resourceNetboxRackTypeUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRackTypeDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRackTypesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_rack_type_test.go b/netbox/resource_netbox_rack_type_test.go
index c4f9c6c8..26580ee4 100644
--- a/netbox/resource_netbox_rack_type_test.go
+++ b/netbox/resource_netbox_rack_type_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -81,7 +80,7 @@ resource "netbox_rack_type" "test" {
func testAccCheckRackTypeDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each rack
// is destroyed
@@ -121,7 +120,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRackTypesListParams()
res, err := api.Dcim.DcimRackTypesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_region.go b/netbox/resource_netbox_region.go
index 56bdc64f..2c310ee1 100644
--- a/netbox/resource_netbox_region.go
+++ b/netbox/resource_netbox_region.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -55,7 +54,7 @@ func resourceNetboxRegion() *schema.Resource {
}
func resourceNetboxRegionCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableRegion{}
@@ -93,7 +92,7 @@ func resourceNetboxRegionCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRegionRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRegionsReadParams().WithID(id)
@@ -123,7 +122,7 @@ func resourceNetboxRegionRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRegionUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableRegion{}
@@ -161,7 +160,7 @@ func resourceNetboxRegionUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRegionDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimRegionsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_region_test.go b/netbox/resource_netbox_region_test.go
index a81c5b11..7a4b52a9 100644
--- a/netbox/resource_netbox_region_test.go
+++ b/netbox/resource_netbox_region_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -72,7 +71,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimRegionsListParams()
res, err := api.Dcim.DcimRegionsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_rir.go b/netbox/resource_netbox_rir.go
index 4d7bc2a9..0842d260 100644
--- a/netbox/resource_netbox_rir.go
+++ b/netbox/resource_netbox_rir.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -49,7 +48,7 @@ func resourceNetboxRir() *schema.Resource {
}
func resourceNetboxRirCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.RIR{}
name := d.Get("name").(string)
@@ -79,7 +78,7 @@ func resourceNetboxRirCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRirRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamRirsReadParams().WithID(id)
@@ -107,7 +106,7 @@ func resourceNetboxRirRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRirUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.RIR{}
@@ -136,7 +135,7 @@ func resourceNetboxRirUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxRirDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamRirsDeleteParams().WithID(id)
_, err := api.Ipam.IpamRirsDelete(params, nil)
diff --git a/netbox/resource_netbox_rir_test.go b/netbox/resource_netbox_rir_test.go
index 10bf1f54..76ae886f 100644
--- a/netbox/resource_netbox_rir_test.go
+++ b/netbox/resource_netbox_rir_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -101,7 +100,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamRirsListParams()
res, err := api.Ipam.IpamRirsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_route_target.go b/netbox/resource_netbox_route_target.go
index 1006b7ee..18c6f08f 100644
--- a/netbox/resource_netbox_route_target.go
+++ b/netbox/resource_netbox_route_target.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -44,7 +43,7 @@ func resourceNetboxRouteTarget() *schema.Resource {
}
}
func resourceNetboxRouteTargetCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableRouteTarget{}
name := d.Get("name").(string)
@@ -63,7 +62,7 @@ func resourceNetboxRouteTargetCreate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxRouteTargetRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamRouteTargetsReadParams().WithID(id)
@@ -93,14 +92,14 @@ func resourceNetboxRouteTargetRead(d *schema.ResourceData, m interface{}) error
}
if res.GetPayload().Tags != nil {
- d.Set(tagsKey, res.GetPayload().Tags)
+ api.readTags(d, res.GetPayload().Tags)
}
return nil
}
func resourceNetboxRouteTargetUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableRouteTarget{}
@@ -122,7 +121,7 @@ func resourceNetboxRouteTargetUpdate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxRouteTargetDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamRouteTargetsDeleteParams().WithID(id)
_, err := api.Ipam.IpamRouteTargetsDelete(params, nil)
diff --git a/netbox/resource_netbox_route_target_test.go b/netbox/resource_netbox_route_target_test.go
index f7fb294b..15d4a5a7 100644
--- a/netbox/resource_netbox_route_target_test.go
+++ b/netbox/resource_netbox_route_target_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
log "github.com/sirupsen/logrus"
@@ -89,7 +88,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamRouteTargetsListParams()
res, err := api.Ipam.IpamRouteTargetsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_service.go b/netbox/resource_netbox_service.go
index 659bde2f..1515383e 100644
--- a/netbox/resource_netbox_service.go
+++ b/netbox/resource_netbox_service.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -80,7 +79,7 @@ func resourceNetboxService() *schema.Resource {
}
}
func resourceNetboxServiceCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableService{}
dataName := d.Get("name").(string)
@@ -116,8 +115,7 @@ func resourceNetboxServiceCreate(d *schema.ResourceData, m interface{}) error {
data.VirtualMachine = &dataVirtualMachineID
}
- v := d.Get("tags")
- tags, _ := getNestedTagListFromResourceDataSet(api, v)
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
if v, ok := d.GetOk("description"); ok {
@@ -142,7 +140,7 @@ func resourceNetboxServiceCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxServiceRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamServicesReadParams().WithID(id)
@@ -177,12 +175,7 @@ func resourceNetboxServiceRead(d *schema.ResourceData, m interface{}) error {
}
if tags := res.GetPayload().Tags; tags != nil {
- var tagList []interface{}
- for _, tag := range tags {
- tagName := tag.Name
- tagList = append(tagList, *tagName)
- }
- d.Set("tags", tagList)
+ api.readTags(d, tags)
}
cf := getCustomFields(res.GetPayload().CustomFields)
@@ -194,7 +187,7 @@ func resourceNetboxServiceRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxServiceUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableService{}
@@ -220,8 +213,7 @@ func resourceNetboxServiceUpdate(d *schema.ResourceData, m interface{}) error {
data.Ipaddresses = []int64{}
- v := d.Get("tags")
- tags, _ := getNestedTagListFromResourceDataSet(api, v)
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
if v, ok := d.GetOk("description"); ok {
@@ -252,7 +244,7 @@ func resourceNetboxServiceUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxServiceDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamServicesDeleteParams().WithID(id)
_, err := api.Ipam.IpamServicesDelete(params, nil)
diff --git a/netbox/resource_netbox_service_test.go b/netbox/resource_netbox_service_test.go
index 634a8b45..5594a673 100644
--- a/netbox/resource_netbox_service_test.go
+++ b/netbox/resource_netbox_service_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -107,7 +106,7 @@ resource "netbox_service" "test_customfield" {
func testAccCheckServiceDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each service
// is destroyed
@@ -260,7 +259,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamServicesListParams()
res, err := api.Ipam.IpamServicesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_site.go b/netbox/resource_netbox_site.go
index 89d43195..8b67ad80 100644
--- a/netbox/resource_netbox_site.go
+++ b/netbox/resource_netbox_site.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -108,7 +107,7 @@ func resourceNetboxSite() *schema.Resource {
}
func resourceNetboxSiteCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableSite{}
@@ -181,7 +180,11 @@ func resourceNetboxSiteCreate(d *schema.ResourceData, m interface{}) error {
data.Asns = toInt64List(asnsValue)
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -201,7 +204,7 @@ func resourceNetboxSiteCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxSiteRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimSitesReadParams().WithID(id)
@@ -256,13 +259,13 @@ func resourceNetboxSiteRead(d *schema.ResourceData, m interface{}) error {
if cf != nil {
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxSiteUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableSite{}
@@ -348,7 +351,11 @@ func resourceNetboxSiteUpdate(d *schema.ResourceData, m interface{}) error {
data.Asns = toInt64List(asnsValue)
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
cf, ok := d.GetOk(customFieldsKey)
if ok {
@@ -357,7 +364,7 @@ func resourceNetboxSiteUpdate(d *schema.ResourceData, m interface{}) error {
params := dcim.NewDcimSitesPartialUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimSitesPartialUpdate(params, nil)
+ _, err = api.Dcim.DcimSitesPartialUpdate(params, nil)
if err != nil {
return err
}
@@ -366,7 +373,7 @@ func resourceNetboxSiteUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxSiteDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimSitesDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_site_group.go b/netbox/resource_netbox_site_group.go
index 1d2e2f31..da91ae80 100644
--- a/netbox/resource_netbox_site_group.go
+++ b/netbox/resource_netbox_site_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -50,7 +49,7 @@ func resourceNetboxSiteGroup() *schema.Resource {
}
func resourceNetboxSiteGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
parentID := int64(d.Get("parent_id").(int))
@@ -88,7 +87,7 @@ func resourceNetboxSiteGroupCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxSiteGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimSiteGroupsReadParams().WithID(id)
@@ -117,7 +116,7 @@ func resourceNetboxSiteGroupRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxSiteGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableSiteGroup{}
@@ -154,7 +153,7 @@ func resourceNetboxSiteGroupUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxSiteGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimSiteGroupsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_site_group_test.go b/netbox/resource_netbox_site_group_test.go
index ede42c12..995be9b4 100644
--- a/netbox/resource_netbox_site_group_test.go
+++ b/netbox/resource_netbox_site_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -81,7 +80,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimSiteGroupsListParams()
res, err := api.Dcim.DcimSiteGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_site_test.go b/netbox/resource_netbox_site_test.go
index 132021d3..4d29494a 100644
--- a/netbox/resource_netbox_site_test.go
+++ b/netbox/resource_netbox_site_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -158,7 +157,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := dcim.NewDcimSitesListParams()
res, err := api.Dcim.DcimSitesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_tag.go b/netbox/resource_netbox_tag.go
index 79435871..5ed48885 100644
--- a/netbox/resource_netbox_tag.go
+++ b/netbox/resource_netbox_tag.go
@@ -4,7 +4,6 @@ import (
"regexp"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -53,7 +52,7 @@ func resourceNetboxTag() *schema.Resource {
}
func resourceNetboxTagCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -89,7 +88,7 @@ func resourceNetboxTagCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTagRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasTagsReadParams().WithID(id)
@@ -114,7 +113,7 @@ func resourceNetboxTagRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTagUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.Tag{}
@@ -148,7 +147,7 @@ func resourceNetboxTagUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTagDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasTagsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_tag_test.go b/netbox/resource_netbox_tag_test.go
index a2d96973..67cc211e 100644
--- a/netbox/resource_netbox_tag_test.go
+++ b/netbox/resource_netbox_tag_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -73,7 +72,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := extras.NewExtrasTagsListParams()
res, err := api.Extras.ExtrasTagsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_tenant.go b/netbox/resource_netbox_tenant.go
index 1ec0139b..a78fc24e 100644
--- a/netbox/resource_netbox_tenant.go
+++ b/netbox/resource_netbox_tenant.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -51,7 +50,7 @@ func resourceNetboxTenant() *schema.Resource {
}
func resourceNetboxTenantCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
groupID := int64(d.Get("group_id").(int))
@@ -66,7 +65,7 @@ func resourceNetboxTenantCreate(d *schema.ResourceData, m interface{}) error {
slug = slugValue.(string)
}
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data := &models.WritableTenant{}
@@ -92,7 +91,7 @@ func resourceNetboxTenantCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTenantRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyTenantsReadParams().WithID(id)
@@ -120,7 +119,7 @@ func resourceNetboxTenantRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTenantUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableTenant{}
@@ -137,7 +136,7 @@ func resourceNetboxTenantUpdate(d *schema.ResourceData, m interface{}) error {
slug = slugValue.(string)
}
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Slug = &slug
data.Name = &name
@@ -158,7 +157,7 @@ func resourceNetboxTenantUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTenantDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyTenantsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_tenant_group.go b/netbox/resource_netbox_tenant_group.go
index 66bcfe7d..bd7b3b01 100644
--- a/netbox/resource_netbox_tenant_group.go
+++ b/netbox/resource_netbox_tenant_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -50,7 +49,7 @@ func resourceNetboxTenantGroup() *schema.Resource {
}
func resourceNetboxTenantGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
parentID := int64(d.Get("parent_id").(int))
@@ -88,7 +87,7 @@ func resourceNetboxTenantGroupCreate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxTenantGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyTenantGroupsReadParams().WithID(id)
@@ -116,7 +115,7 @@ func resourceNetboxTenantGroupRead(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxTenantGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableTenantGroup{}
@@ -153,7 +152,7 @@ func resourceNetboxTenantGroupUpdate(d *schema.ResourceData, m interface{}) erro
}
func resourceNetboxTenantGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := tenancy.NewTenancyTenantGroupsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_tenant_group_test.go b/netbox/resource_netbox_tenant_group_test.go
index f5a0db18..423fb7e7 100644
--- a/netbox/resource_netbox_tenant_group_test.go
+++ b/netbox/resource_netbox_tenant_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -69,7 +68,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyTenantGroupsListParams()
res, err := api.Tenancy.TenancyTenantGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_tenant_test.go b/netbox/resource_netbox_tenant_test.go
index dac59b8a..1614db7f 100644
--- a/netbox/resource_netbox_tenant_test.go
+++ b/netbox/resource_netbox_tenant_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/tenancy"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -128,7 +127,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := tenancy.NewTenancyTenantsListParams()
res, err := api.Tenancy.TenancyTenantsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_token.go b/netbox/resource_netbox_token.go
index 6a640b8b..8fd0860c 100644
--- a/netbox/resource_netbox_token.go
+++ b/netbox/resource_netbox_token.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -64,7 +63,7 @@ func resourceNetboxToken() *schema.Resource {
}
func resourceNetboxTokenCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableToken{}
userid := int64(d.Get("user_id").(int))
@@ -94,7 +93,7 @@ func resourceNetboxTokenCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTokenRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersTokensReadParams().WithID(id)
@@ -127,7 +126,7 @@ func resourceNetboxTokenRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTokenUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableToken{}
@@ -155,7 +154,7 @@ func resourceNetboxTokenUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxTokenDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersTokensDeleteParams().WithID(id)
_, err := api.Users.UsersTokensDelete(params, nil)
diff --git a/netbox/resource_netbox_token_test.go b/netbox/resource_netbox_token_test.go
index 3b2fbf77..2ddf10c2 100644
--- a/netbox/resource_netbox_token_test.go
+++ b/netbox/resource_netbox_token_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -59,7 +58,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := users.NewUsersUsersListParams()
res, err := api.Users.UsersUsersList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_user.go b/netbox/resource_netbox_user.go
index a2b465c1..09a030ad 100644
--- a/netbox/resource_netbox_user.go
+++ b/netbox/resource_netbox_user.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/go-openapi/strfmt"
@@ -68,7 +67,7 @@ func resourceNetboxUser() *schema.Resource {
}
}
func resourceNetboxUserCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableUser{}
username := d.Get("username").(string)
@@ -100,7 +99,7 @@ func resourceNetboxUserCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxUserRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersUsersReadParams().WithID(id)
@@ -135,7 +134,7 @@ func resourceNetboxUserRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxUserUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableUser{}
@@ -166,7 +165,7 @@ func resourceNetboxUserUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxUserDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := users.NewUsersUsersDeleteParams().WithID(id)
_, err := api.Users.UsersUsersDelete(params, nil)
diff --git a/netbox/resource_netbox_user_test.go b/netbox/resource_netbox_user_test.go
index 19ccd00d..e0c69127 100644
--- a/netbox/resource_netbox_user_test.go
+++ b/netbox/resource_netbox_user_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/users"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -106,7 +105,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := users.NewUsersUsersListParams()
res, err := api.Users.UsersUsersList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_virtual_chassis.go b/netbox/resource_netbox_virtual_chassis.go
index bde25eea..eb461b82 100644
--- a/netbox/resource_netbox_virtual_chassis.go
+++ b/netbox/resource_netbox_virtual_chassis.go
@@ -4,7 +4,6 @@ import (
"context"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -48,7 +47,7 @@ func resourceNetboxVirtualChassis() *schema.Resource {
}
func resourceNetboxVirtualChassisCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -79,7 +78,11 @@ func resourceNetboxVirtualChassisCreate(ctx context.Context, d *schema.ResourceD
data.CustomFields = ct
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
params := dcim.NewDcimVirtualChassisCreateParams().WithData(&data)
@@ -94,7 +97,7 @@ func resourceNetboxVirtualChassisCreate(ctx context.Context, d *schema.ResourceD
}
func resourceNetboxVirtualChassisRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -124,12 +127,12 @@ func resourceNetboxVirtualChassisRead(ctx context.Context, d *schema.ResourceDat
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(virtualChassis.Tags))
+ api.readTags(d, virtualChassis.Tags)
return nil
}
func resourceNetboxVirtualChassisUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableVirtualChassis{}
@@ -148,7 +151,11 @@ func resourceNetboxVirtualChassisUpdate(ctx context.Context, d *schema.ResourceD
data.CustomFields = ct
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
if d.HasChanges("comments") {
// check if comment is set
@@ -169,7 +176,7 @@ func resourceNetboxVirtualChassisUpdate(ctx context.Context, d *schema.ResourceD
params := dcim.NewDcimVirtualChassisUpdateParams().WithID(id).WithData(&data)
- _, err := api.Dcim.DcimVirtualChassisUpdate(params, nil)
+ _, err = api.Dcim.DcimVirtualChassisUpdate(params, nil)
if err != nil {
return diag.FromErr(err)
}
@@ -178,7 +185,7 @@ func resourceNetboxVirtualChassisUpdate(ctx context.Context, d *schema.ResourceD
}
func resourceNetboxVirtualChassisDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := dcim.NewDcimVirtualChassisDeleteParams().WithID(id)
@@ -197,7 +204,7 @@ func resourceNetboxVirtualChassisDelete(ctx context.Context, d *schema.ResourceD
return nil
}
-func virtualChassisUpdateMaster(api *client.NetBoxAPI, id int64, master *int64) error {
+func virtualChassisUpdateMaster(api *providerState, id int64, master *int64) error {
// Need to read the virtual chassis because we cannot do a partial update
// because setting `master` to nil would omit it entirely, so we need to
// do a PUT request instead of PATCH
diff --git a/netbox/resource_netbox_virtual_chassis_test.go b/netbox/resource_netbox_virtual_chassis_test.go
index a4d78a9b..e3a255d8 100644
--- a/netbox/resource_netbox_virtual_chassis_test.go
+++ b/netbox/resource_netbox_virtual_chassis_test.go
@@ -5,7 +5,6 @@ import (
"strconv"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/dcim"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -60,7 +59,7 @@ resource "netbox_virtual_chassis" "test" {
}
func testAccCheckVirtualChassisDestroy(s *terraform.State) error {
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each virtual machine
// is destroyed
diff --git a/netbox/resource_netbox_virtual_disk.go b/netbox/resource_netbox_virtual_disk.go
index 4aab3c84..7800a6a1 100644
--- a/netbox/resource_netbox_virtual_disk.go
+++ b/netbox/resource_netbox_virtual_disk.go
@@ -4,7 +4,6 @@ import (
"context"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -56,7 +55,7 @@ func resourceNetboxVirtualDisks() *schema.Resource {
}
func resourceNetboxVirtualDisksCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
size := d.Get("size_mb").(int)
@@ -79,7 +78,11 @@ func resourceNetboxVirtualDisksCreate(ctx context.Context, d *schema.ResourceDat
data.CustomFields = ct
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
params := virtualization.NewVirtualizationVirtualDisksCreateParams().WithData(&data)
@@ -94,7 +97,7 @@ func resourceNetboxVirtualDisksCreate(ctx context.Context, d *schema.ResourceDat
}
func resourceNetboxVirtualDisksRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
@@ -129,12 +132,12 @@ func resourceNetboxVirtualDisksRead(ctx context.Context, d *schema.ResourceData,
d.Set(customFieldsKey, cf)
}
- d.Set(tagsKey, getTagListFromNestedTagList(VirtualDisks.Tags))
+ api.readTags(d, VirtualDisks.Tags)
return nil
}
func resourceNetboxVirtualDisksUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableVirtualDisk{}
@@ -152,7 +155,11 @@ func resourceNetboxVirtualDisksUpdate(ctx context.Context, d *schema.ResourceDat
data.CustomFields = ct
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
if d.HasChanges("description") {
// check if description is set
@@ -165,7 +172,7 @@ func resourceNetboxVirtualDisksUpdate(ctx context.Context, d *schema.ResourceDat
params := virtualization.NewVirtualizationVirtualDisksUpdateParams().WithID(id).WithData(&data)
- _, err := api.Virtualization.VirtualizationVirtualDisksUpdate(params, nil)
+ _, err = api.Virtualization.VirtualizationVirtualDisksUpdate(params, nil)
if err != nil {
return diag.FromErr(err)
}
@@ -174,7 +181,7 @@ func resourceNetboxVirtualDisksUpdate(ctx context.Context, d *schema.ResourceDat
}
func resourceNetboxVirtualDisksDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := virtualization.NewVirtualizationVirtualDisksDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_virtual_disk_test.go b/netbox/resource_netbox_virtual_disk_test.go
index 862a51fb..7874bd18 100644
--- a/netbox/resource_netbox_virtual_disk_test.go
+++ b/netbox/resource_netbox_virtual_disk_test.go
@@ -5,7 +5,6 @@ import (
"strconv"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -76,7 +75,7 @@ resource "netbox_virtual_disk" "test" {
}
func testAccCheckVirtualDiskDestroy(s *terraform.State) error {
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each virtual machine
// is destroyed
diff --git a/netbox/resource_netbox_virtual_machine.go b/netbox/resource_netbox_virtual_machine.go
index 1422373f..76986870 100644
--- a/netbox/resource_netbox_virtual_machine.go
+++ b/netbox/resource_netbox_virtual_machine.go
@@ -5,7 +5,6 @@ import (
"encoding/json"
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -121,7 +120,7 @@ func resourceNetboxVirtualMachine() *schema.Resource {
}
func resourceNetboxVirtualMachineCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
name := d.Get("name").(string)
@@ -197,7 +196,11 @@ func resourceNetboxVirtualMachineCreate(ctx context.Context, d *schema.ResourceD
data.Status = d.Get("status").(string)
- tags, diags := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, err := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
+
data.Tags = tags
ct, ok := d.GetOk(customFieldsKey)
if ok {
@@ -213,11 +216,11 @@ func resourceNetboxVirtualMachineCreate(ctx context.Context, d *schema.ResourceD
d.SetId(strconv.FormatInt(res.GetPayload().ID, 10))
- return append(resourceNetboxVirtualMachineRead(ctx, d, m), diags...)
+ return resourceNetboxVirtualMachineRead(ctx, d, m)
}
func resourceNetboxVirtualMachineRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
@@ -319,7 +322,7 @@ func resourceNetboxVirtualMachineRead(ctx context.Context, d *schema.ResourceDat
} else {
d.Set("status", nil)
}
- d.Set(tagsKey, getTagListFromNestedTagList(vm.Tags))
+ api.readTags(d, vm.Tags)
cf := getCustomFields(vm.CustomFields)
if cf != nil {
@@ -330,7 +333,7 @@ func resourceNetboxVirtualMachineRead(ctx context.Context, d *schema.ResourceDat
}
func resourceNetboxVirtualMachineUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableVirtualMachineWithConfigContext{}
@@ -413,7 +416,11 @@ func resourceNetboxVirtualMachineUpdate(ctx context.Context, d *schema.ResourceD
}
}
- tags, diags := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, err := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return diag.FromErr(err)
+ }
+
data.Tags = tags
cf, ok := d.GetOk(customFieldsKey)
if ok {
@@ -445,16 +452,16 @@ func resourceNetboxVirtualMachineUpdate(ctx context.Context, d *schema.ResourceD
params := virtualization.NewVirtualizationVirtualMachinesUpdateParams().WithID(id).WithData(&data)
- _, err := api.Virtualization.VirtualizationVirtualMachinesUpdate(params, nil)
+ _, err = api.Virtualization.VirtualizationVirtualMachinesUpdate(params, nil)
if err != nil {
return diag.FromErr(err)
}
- return append(resourceNetboxVirtualMachineRead(ctx, d, m), diags...)
+ return resourceNetboxVirtualMachineRead(ctx, d, m)
}
func resourceNetboxVirtualMachineDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
var diags diag.Diagnostics
diff --git a/netbox/resource_netbox_virtual_machine_test.go b/netbox/resource_netbox_virtual_machine_test.go
index 15c24968..81105fd1 100644
--- a/netbox/resource_netbox_virtual_machine_test.go
+++ b/netbox/resource_netbox_virtual_machine_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/virtualization"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -322,7 +321,7 @@ resource "netbox_virtual_machine" "test" {
func testAccCheckVirtualMachineDestroy(s *terraform.State) error {
// retrieve the connection established in Provider configuration
- conn := testAccProvider.Meta().(*client.NetBoxAPI)
+ conn := testAccProvider.Meta().(*providerState)
// loop through the resources in state, verifying each virtual machine
// is destroyed
@@ -545,7 +544,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := virtualization.NewVirtualizationVirtualMachinesListParams()
res, err := api.Virtualization.VirtualizationVirtualMachinesList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_vlan.go b/netbox/resource_netbox_vlan.go
index 55a4d225..9c9afe05 100644
--- a/netbox/resource_netbox_vlan.go
+++ b/netbox/resource_netbox_vlan.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -71,7 +70,7 @@ func resourceNetboxVlan() *schema.Resource {
}
func resourceNetboxVlanCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableVLAN{}
name := d.Get("name").(string)
@@ -100,7 +99,11 @@ func resourceNetboxVlanCreate(d *schema.ResourceData, m interface{}) error {
data.Role = int64ToPtr(int64(roleID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamVlansCreateParams().WithData(&data)
res, err := api.Ipam.IpamVlansCreate(params, nil)
@@ -113,7 +116,7 @@ func resourceNetboxVlanCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVlanRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamVlansReadParams().WithID(id)
@@ -135,7 +138,7 @@ func resourceNetboxVlanRead(d *schema.ResourceData, m interface{}) error {
d.Set("name", vlan.Name)
d.Set("vid", vlan.Vid)
d.Set("description", vlan.Description)
- d.Set(tagsKey, getTagListFromNestedTagList(vlan.Tags))
+ api.readTags(d, vlan.Tags)
if vlan.Status != nil {
d.Set("status", vlan.Status.Value)
@@ -157,7 +160,7 @@ func resourceNetboxVlanRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVlanUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableVLAN{}
name := d.Get("name").(string)
@@ -186,10 +189,14 @@ func resourceNetboxVlanUpdate(d *schema.ResourceData, m interface{}) error {
data.Role = int64ToPtr(int64(roleID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamVlansUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamVlansUpdate(params, nil)
+ _, err = api.Ipam.IpamVlansUpdate(params, nil)
if err != nil {
return err
}
@@ -197,7 +204,7 @@ func resourceNetboxVlanUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVlanDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamVlansDeleteParams().WithID(id)
_, err := api.Ipam.IpamVlansDelete(params, nil)
diff --git a/netbox/resource_netbox_vlan_group.go b/netbox/resource_netbox_vlan_group.go
index 2dac31d2..23d1d090 100644
--- a/netbox/resource_netbox_vlan_group.go
+++ b/netbox/resource_netbox_vlan_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -68,7 +67,7 @@ func resourceNetboxVlanGroup() *schema.Resource {
}
func resourceNetboxVlanGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.VLANGroup{}
name := d.Get("name").(string)
@@ -98,7 +97,11 @@ func resourceNetboxVlanGroupCreate(d *schema.ResourceData, m interface{}) error
data.ScopeID = int64ToPtr(int64(scopeID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamVlanGroupsCreateParams().WithData(&data)
res, err := api.Ipam.IpamVlanGroupsCreate(params, nil)
@@ -111,7 +114,7 @@ func resourceNetboxVlanGroupCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxVlanGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamVlanGroupsReadParams().WithID(id)
@@ -134,7 +137,7 @@ func resourceNetboxVlanGroupRead(d *schema.ResourceData, m interface{}) error {
d.Set("slug", vlanGroup.Slug)
d.Set("description", vlanGroup.Description)
d.Set("vid_ranges", vlanGroup.VidRanges)
- d.Set(tagsKey, getTagListFromNestedTagList(vlanGroup.Tags))
+ api.readTags(d, vlanGroup.Tags)
if vlanGroup.ScopeType != nil {
d.Set("scope_type", vlanGroup.ScopeType)
@@ -148,7 +151,7 @@ func resourceNetboxVlanGroupRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVlanGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.VLANGroup{}
@@ -180,10 +183,14 @@ func resourceNetboxVlanGroupUpdate(d *schema.ResourceData, m interface{}) error
data.ScopeID = int64ToPtr(int64(scopeID.(int)))
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
params := ipam.NewIpamVlanGroupsUpdateParams().WithID(id).WithData(&data)
- _, err := api.Ipam.IpamVlanGroupsUpdate(params, nil)
+ _, err = api.Ipam.IpamVlanGroupsUpdate(params, nil)
if err != nil {
return err
}
@@ -191,7 +198,7 @@ func resourceNetboxVlanGroupUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxVlanGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamVlanGroupsDeleteParams().WithID(id)
_, err := api.Ipam.IpamVlanGroupsDelete(params, nil)
diff --git a/netbox/resource_netbox_vlan_group_test.go b/netbox/resource_netbox_vlan_group_test.go
index 30e36318..d7823d6b 100644
--- a/netbox/resource_netbox_vlan_group_test.go
+++ b/netbox/resource_netbox_vlan_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -105,7 +104,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVlanGroupsListParams()
res, err := api.Ipam.IpamVlanGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_vlan_test.go b/netbox/resource_netbox_vlan_test.go
index c2bbe7d6..728f674b 100644
--- a/netbox/resource_netbox_vlan_test.go
+++ b/netbox/resource_netbox_vlan_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -118,7 +117,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVlansListParams()
res, err := api.Ipam.IpamVlansList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_vpn_tunnel.go b/netbox/resource_netbox_vpn_tunnel.go
index 7cf30acc..1631e554 100644
--- a/netbox/resource_netbox_vpn_tunnel.go
+++ b/netbox/resource_netbox_vpn_tunnel.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/vpn"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -63,7 +62,7 @@ func resourceNetboxVpnTunnel() *schema.Resource {
}
func resourceNetboxVpnTunnelCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableTunnel{}
@@ -76,7 +75,7 @@ func resourceNetboxVpnTunnelCreate(d *schema.ResourceData, m interface{}) error
data.Tenant = getOptionalInt(d, "tenant_id")
data.TunnelID = getOptionalInt(d, "tunnel_id")
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := vpn.NewVpnTunnelsCreateParams().WithData(&data)
@@ -93,7 +92,7 @@ func resourceNetboxVpnTunnelCreate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxVpnTunnelRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := vpn.NewVpnTunnelsReadParams().WithID(id)
@@ -131,12 +130,12 @@ func resourceNetboxVpnTunnelRead(d *schema.ResourceData, m interface{}) error {
d.Set("description", tunnel.Description)
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxVpnTunnelUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableTunnel{}
@@ -150,7 +149,7 @@ func resourceNetboxVpnTunnelUpdate(d *schema.ResourceData, m interface{}) error
data.Tenant = getOptionalInt(d, "tenant_id")
data.TunnelID = getOptionalInt(d, "tunnel_id")
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := vpn.NewVpnTunnelsUpdateParams().WithID(id).WithData(&data)
@@ -164,7 +163,7 @@ func resourceNetboxVpnTunnelUpdate(d *schema.ResourceData, m interface{}) error
}
func resourceNetboxVpnTunnelDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := vpn.NewVpnTunnelsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_vpn_tunnel_group.go b/netbox/resource_netbox_vpn_tunnel_group.go
index 71016838..1e8caf5f 100644
--- a/netbox/resource_netbox_vpn_tunnel_group.go
+++ b/netbox/resource_netbox_vpn_tunnel_group.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/vpn"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -44,7 +43,7 @@ func resourceNetboxVpnTunnelGroup() *schema.Resource {
}
func resourceNetboxVpnTunnelGroupCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.TunnelGroup{}
@@ -80,7 +79,7 @@ func resourceNetboxVpnTunnelGroupCreate(d *schema.ResourceData, m interface{}) e
}
func resourceNetboxVpnTunnelGroupRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := vpn.NewVpnTunnelGroupsReadParams().WithID(id)
@@ -104,7 +103,7 @@ func resourceNetboxVpnTunnelGroupRead(d *schema.ResourceData, m interface{}) err
}
func resourceNetboxVpnTunnelGroupUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.TunnelGroup{}
@@ -144,7 +143,7 @@ func resourceNetboxVpnTunnelGroupUpdate(d *schema.ResourceData, m interface{}) e
}
func resourceNetboxVpnTunnelGroupDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := vpn.NewVpnTunnelGroupsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_vpn_tunnel_group_test.go b/netbox/resource_netbox_vpn_tunnel_group_test.go
index 740ffa9b..257925dd 100644
--- a/netbox/resource_netbox_vpn_tunnel_group_test.go
+++ b/netbox/resource_netbox_vpn_tunnel_group_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/vpn"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -49,7 +48,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := vpn.NewVpnTunnelGroupsListParams()
res, err := api.Vpn.VpnTunnelGroupsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_vpn_tunnel_termination.go b/netbox/resource_netbox_vpn_tunnel_termination.go
index f715dbde..18272bfb 100644
--- a/netbox/resource_netbox_vpn_tunnel_termination.go
+++ b/netbox/resource_netbox_vpn_tunnel_termination.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/vpn"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -55,7 +54,7 @@ func resourceNetboxVpnTunnelTermination() *schema.Resource {
}
func resourceNetboxVpnTunnelTerminationCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableTunnelTermination{}
@@ -78,7 +77,7 @@ func resourceNetboxVpnTunnelTerminationCreate(d *schema.ResourceData, m interfac
data.OutsideIP = getOptionalInt(d, "outside_ip_address_id")
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := vpn.NewVpnTunnelTerminationsCreateParams().WithData(&data)
@@ -95,7 +94,7 @@ func resourceNetboxVpnTunnelTerminationCreate(d *schema.ResourceData, m interfac
}
func resourceNetboxVpnTunnelTerminationRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := vpn.NewVpnTunnelTerminationsReadParams().WithID(id)
@@ -130,12 +129,12 @@ func resourceNetboxVpnTunnelTerminationRead(d *schema.ResourceData, m interface{
d.Set("outside_ip_address_id", tunnelTermination.OutsideIP.ID)
}
- d.Set(tagsKey, getTagListFromNestedTagList(res.GetPayload().Tags))
+ api.readTags(d, res.GetPayload().Tags)
return nil
}
func resourceNetboxVpnTunnelTerminationUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableTunnelTermination{}
@@ -158,7 +157,7 @@ func resourceNetboxVpnTunnelTerminationUpdate(d *schema.ResourceData, m interfac
data.OutsideIP = getOptionalInt(d, "outside_ip_address_id")
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Tags = tags
params := vpn.NewVpnTunnelTerminationsUpdateParams().WithID(id).WithData(&data)
@@ -172,7 +171,7 @@ func resourceNetboxVpnTunnelTerminationUpdate(d *schema.ResourceData, m interfac
}
func resourceNetboxVpnTunnelTerminationDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := vpn.NewVpnTunnelTerminationsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_vpn_tunnel_termination_test.go b/netbox/resource_netbox_vpn_tunnel_termination_test.go
index 8ced5fad..c4cb6e24 100644
--- a/netbox/resource_netbox_vpn_tunnel_termination_test.go
+++ b/netbox/resource_netbox_vpn_tunnel_termination_test.go
@@ -5,7 +5,6 @@ import (
"log"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/vpn"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -159,7 +158,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := vpn.NewVpnTunnelTerminationsListParams()
res, err := api.Vpn.VpnTunnelTerminationsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_vpn_tunnel_test.go b/netbox/resource_netbox_vpn_tunnel_test.go
index 9e5e9de2..49b4541e 100644
--- a/netbox/resource_netbox_vpn_tunnel_test.go
+++ b/netbox/resource_netbox_vpn_tunnel_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/vpn"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -69,7 +68,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := vpn.NewVpnTunnelsListParams()
res, err := api.Vpn.VpnTunnelsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_vrf.go b/netbox/resource_netbox_vrf.go
index a20ee1d9..b21b0f39 100644
--- a/netbox/resource_netbox_vrf.go
+++ b/netbox/resource_netbox_vrf.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -54,7 +53,7 @@ func resourceNetboxVrf() *schema.Resource {
}
func resourceNetboxVrfCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := models.WritableVRF{}
name := d.Get("name").(string)
@@ -73,7 +72,11 @@ func resourceNetboxVrfCreate(d *schema.ResourceData, m interface{}) error {
data.Rd = &rd
}
- data.Tags, _ = getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ var err error
+ data.Tags, err = getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
+ if err != nil {
+ return err
+ }
data.ExportTargets = []int64{}
data.ImportTargets = []int64{}
@@ -91,7 +94,7 @@ func resourceNetboxVrfCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVrfRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamVrfsReadParams().WithID(id)
@@ -126,7 +129,7 @@ func resourceNetboxVrfRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVrfUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.WritableVRF{}
@@ -134,7 +137,7 @@ func resourceNetboxVrfUpdate(d *schema.ResourceData, m interface{}) error {
name := d.Get("name").(string)
enforceUnique := d.Get("enforce_unique").(bool)
- tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsKey))
+ tags, _ := getNestedTagListFromResourceDataSet(api, d.Get(tagsAllKey))
data.Name = &name
data.Tags = tags
@@ -161,7 +164,7 @@ func resourceNetboxVrfUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxVrfDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := ipam.NewIpamVrfsDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_vrf_test.go b/netbox/resource_netbox_vrf_test.go
index b1939464..c83eb584 100644
--- a/netbox/resource_netbox_vrf_test.go
+++ b/netbox/resource_netbox_vrf_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/ipam"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
@@ -73,6 +72,8 @@ func TestAccNetboxVrf_tags(t *testing.T) {
resource "netbox_vrf" "test_tags" {
name = "%[1]s"
tags = ["%[1]sa"]
+
+ depends_on = [netbox_tag.test_a]
}`, testName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr("netbox_vrf.test_tags", "name", testName),
@@ -85,6 +86,8 @@ resource "netbox_vrf" "test_tags" {
resource "netbox_vrf" "test_tags" {
name = "%[1]s"
tags = ["%[1]sa", "%[1]sb"]
+
+ depends_on = [netbox_tag.test_a, netbox_tag.test_b]
}`, testName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr("netbox_vrf.test_tags", "tags.#", "2"),
@@ -207,7 +210,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := ipam.NewIpamVrfsListParams()
res, err := api.Ipam.IpamVrfsList(params, nil)
if err != nil {
diff --git a/netbox/resource_netbox_webhook.go b/netbox/resource_netbox_webhook.go
index 34c2c7d6..b4f5e496 100644
--- a/netbox/resource_netbox_webhook.go
+++ b/netbox/resource_netbox_webhook.go
@@ -3,7 +3,6 @@ package netbox
import (
"strconv"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -66,7 +65,7 @@ func resourceNetboxWebhook() *schema.Resource {
}
func resourceNetboxWebhookCreate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
data := &models.Webhook{}
name := d.Get("name").(string)
@@ -92,7 +91,7 @@ func resourceNetboxWebhookCreate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxWebhookRead(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasWebhooksReadParams().WithID(id)
@@ -120,7 +119,7 @@ func resourceNetboxWebhookRead(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxWebhookUpdate(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
data := models.Webhook{}
@@ -147,7 +146,7 @@ func resourceNetboxWebhookUpdate(d *schema.ResourceData, m interface{}) error {
}
func resourceNetboxWebhookDelete(d *schema.ResourceData, m interface{}) error {
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
id, _ := strconv.ParseInt(d.Id(), 10, 64)
params := extras.NewExtrasWebhooksDeleteParams().WithID(id)
diff --git a/netbox/resource_netbox_webhook_test.go b/netbox/resource_netbox_webhook_test.go
index f380c6e1..7870f280 100644
--- a/netbox/resource_netbox_webhook_test.go
+++ b/netbox/resource_netbox_webhook_test.go
@@ -7,7 +7,6 @@ import (
"strings"
"testing"
- "github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -124,7 +123,7 @@ resource "netbox_webhook" "test" {
}
func testAccCheckNetBoxWebhookDestroy(s *terraform.State) error {
- client := testAccProvider.Meta().(*client.NetBoxAPI)
+ client := testAccProvider.Meta().(*providerState)
for _, rs := range s.RootModule().Resources {
if rs.Type != "netbox_webhook" {
@@ -152,7 +151,7 @@ func init() {
if err != nil {
return fmt.Errorf("Error getting client: %s", err)
}
- api := m.(*client.NetBoxAPI)
+ api := m.(*providerState)
params := extras.NewExtrasWebhooksListParams()
res, err := api.Extras.ExtrasWebhooksList(params, nil)
if err != nil {
diff --git a/netbox/tags.go b/netbox/tags.go
index 984fce9c..f4fe7b69 100644
--- a/netbox/tags.go
+++ b/netbox/tags.go
@@ -2,15 +2,18 @@ package netbox
import (
"fmt"
+ "slices"
"github.com/fbreckle/go-netbox/netbox/client"
"github.com/fbreckle/go-netbox/netbox/client/extras"
"github.com/fbreckle/go-netbox/netbox/models"
- "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
-const tagsKey = "tags"
+const (
+ tagsKey = "tags"
+ tagsAllKey = "tags_all"
+)
var tagsSchema = &schema.Schema{
Type: schema.TypeSet,
@@ -21,7 +24,7 @@ var tagsSchema = &schema.Schema{
Set: schema.HashString,
}
-var tagsSchemaRead = &schema.Schema{
+var tagsAllSchema = &schema.Schema{
Type: schema.TypeSet,
Elem: &schema.Schema{
Type: schema.TypeString,
@@ -30,50 +33,58 @@ var tagsSchemaRead = &schema.Schema{
Set: schema.HashString,
}
-func getNestedTagListFromResourceDataSet(client *client.NetBoxAPI, d interface{}) ([]*models.NestedTag, diag.Diagnostics) {
- var diags diag.Diagnostics
+var tagsSchemaRead = &schema.Schema{
+ Type: schema.TypeSet,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ Computed: true,
+ Set: schema.HashString,
+}
+func getNestedTagListFromResourceDataSet(state *providerState, d interface{}) ([]*models.NestedTag, error) {
tagList := d.(*schema.Set).List()
tags := []*models.NestedTag{}
for _, tag := range tagList {
- tagString := tag.(string)
- params := extras.NewExtrasTagsListParams()
- params.Name = &tagString
- limit := int64(2) // We search for a unique tag. Having two hits suffices to know its not unique.
- params.Limit = &limit
- res, err := client.Extras.ExtrasTagsList(params, nil)
- if err != nil {
- diags = append(diags, diag.Diagnostic{
- Severity: diag.Error,
- Summary: fmt.Sprintf("Error retrieving tag %s from netbox", tag.(string)),
- Detail: fmt.Sprintf("API Error trying to retrieve tag %s from netbox", tag.(string)),
- })
- return tags, diags
- }
- payload := res.GetPayload()
- switch *payload.Count {
- case int64(0):
- diags = append(diags, diag.Diagnostic{
- Severity: diag.Error,
- Summary: fmt.Sprintf("Error retrieving tag %s from netbox", tag.(string)),
- Detail: fmt.Sprintf("Could not locate referenced tag %s in netbox", tag.(string)),
- })
- return tags, diags
- case int64(1):
- tags = append(tags, &models.NestedTag{
- Name: payload.Results[0].Name,
- Slug: payload.Results[0].Slug,
- })
- default:
- diags = append(diags, diag.Diagnostic{
- Severity: diag.Warning,
- Summary: fmt.Sprintf("Error retrieving tag %s from netbox", tag.(string)),
- Detail: fmt.Sprintf("Could not map tag %s to unique tag in netbox", tag.(string)),
- })
+ nbTag, ok := state.tagCache[tag.(string)]
+ if !ok {
+ var err error
+ nbTag, err = findTag(state.NetBoxAPI, tag.(string))
+ if err != nil {
+ return tags, err
+ }
}
+
+ tags = append(tags, nbTag)
+ }
+
+ return tags, nil
+}
+
+func findTag(client *client.NetBoxAPI, name string) (*models.NestedTag, error) {
+ params := extras.NewExtrasTagsListParams()
+ params.Name = &name
+
+ limit := int64(2) // We search for a unique tag. Having two hits suffices to know its not unique.
+ params.Limit = &limit
+
+ res, err := client.Extras.ExtrasTagsList(params, nil)
+ if err != nil {
+ return nil, fmt.Errorf("API Error trying to retrieve tag %q from netbox: %w", name, err)
}
- return tags, diags
+ payload := res.GetPayload()
+ switch *payload.Count {
+ case int64(0):
+ return nil, fmt.Errorf("Could not locate referenced tag %q in netbox, no results", name)
+ case int64(1):
+ return &models.NestedTag{
+ Name: payload.Results[0].Name,
+ Slug: payload.Results[0].Slug,
+ }, nil
+ default:
+ return nil, fmt.Errorf("Could not map tag %q to unique tag in netbox, %d results", name, *payload.Count)
+ }
}
func getTagListFromNestedTagList(nestedTags []*models.NestedTag) []string {
@@ -83,3 +94,35 @@ func getTagListFromNestedTagList(nestedTags []*models.NestedTag) []string {
}
return tags
}
+
+func (s *providerState) readTags(d *schema.ResourceData, apiTags []*models.NestedTag) {
+ allTags := schema.NewSet(schema.HashString, nil)
+ for _, t := range apiTags {
+ allTags.Add(*t.Name)
+ }
+ d.Set(tagsAllKey, allTags.List())
+
+ configTags := make([]string, len(apiTags))
+ cf := d.GetRawConfig()
+ if cf.IsNull() || !cf.IsKnown() {
+ cf = d.GetRawState() // config is missing during refresh
+ }
+ if !cf.IsNull() && cf.IsKnown() { // there is some config
+ c := cf.GetAttr(tagsKey)
+ if !c.IsNull() && c.IsKnown() { // tags are configured
+ for _, t := range c.AsValueSet().Values() {
+ configTags = append(configTags, t.AsString())
+ }
+ }
+ }
+
+ resourceTags := schema.NewSet(schema.HashString, nil)
+ // remove default tags (except when configured on the resource)
+ for _, tag := range apiTags {
+ if !s.defaultTags.Contains(*tag.Name) || slices.Contains(configTags, *tag.Name) {
+ resourceTags.Add(*tag.Name)
+ }
+ }
+
+ d.Set(tagsKey, resourceTags.List())
+}