From 677cb1764dfdab8c8a5e708753be9743a1b0fbd9 Mon Sep 17 00:00:00 2001 From: michaelkad Date: Wed, 24 Sep 2025 13:24:52 -0500 Subject: [PATCH 1/2] Add NetworkID Add network name Update doc sync master --- go.sum | 2 -- .../power/data_source_ibm_pi_network.go | 31 ++++++++++++++----- .../power/data_source_ibm_pi_network_port.go | 28 +++++++++++++---- .../data_source_ibm_pi_network_port_test.go | 6 ++-- .../power/data_source_ibm_pi_network_test.go | 6 ++-- website/docs/d/pi_network.html.markdown | 6 ++-- website/docs/d/pi_network_port.html.markdown | 5 +-- 7 files changed, 58 insertions(+), 26 deletions(-) diff --git a/go.sum b/go.sum index 8157e04ed6..ae50835cc2 100644 --- a/go.sum +++ b/go.sum @@ -125,8 +125,6 @@ github.com/IBM/go-sdk-core/v5 v5.6.3/go.mod h1:tt/B9rxLkRtglE7pvqLuYikgCXaZFL3bt github.com/IBM/go-sdk-core/v5 v5.9.5/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE= github.com/IBM/go-sdk-core/v5 v5.10.2/go.mod h1:WZPFasUzsKab/2mzt29xPcfruSk5js2ywAPwW4VJjdI= github.com/IBM/go-sdk-core/v5 v5.17.4/go.mod h1:KsAAI7eStAWwQa4F96MLy+whYSh39JzNjklZRbN/8ns= -github.com/IBM/go-sdk-core/v5 v5.20.1 h1:dzeyifh1kfRLw8VfAIIS5okZYuqLTqplPZP/Kcsgdlo= -github.com/IBM/go-sdk-core/v5 v5.20.1/go.mod h1:Q3BYO6iDA2zweQPDGbNTtqft5tDcEpm6RTuqMlPcvbw= github.com/IBM/go-sdk-core/v5 v5.21.0 h1:DUnYhvC4SoC8T84rx5omnhY3+xcQg/Whyoa3mDPIMkk= github.com/IBM/go-sdk-core/v5 v5.21.0/go.mod h1:Q3BYO6iDA2zweQPDGbNTtqft5tDcEpm6RTuqMlPcvbw= github.com/IBM/ibm-backup-recovery-sdk-go v1.0.3 h1:9TZHocmCfgmF8TGVrpP1kFyQbjcqLNW7+bM07lefpKQ= diff --git a/ibm/service/power/data_source_ibm_pi_network.go b/ibm/service/power/data_source_ibm_pi_network.go index 5b32b6dc01..8dd779762b 100644 --- a/ibm/service/power/data_source_ibm_pi_network.go +++ b/ibm/service/power/data_source_ibm_pi_network.go @@ -8,7 +8,6 @@ import ( "log" "github.com/IBM-Cloud/power-go-client/clients/instance" - "github.com/IBM-Cloud/power-go-client/helpers" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" @@ -27,11 +26,22 @@ func DataSourceIBMPINetwork() *schema.Resource { Type: schema.TypeString, ValidateFunc: validation.NoZeroValues, }, + Arg_NetworkID: { + AtLeastOneOf: []string{Arg_NetworkID, Arg_NetworkName}, + ConflictsWith: []string{Arg_NetworkName}, + Description: "The network ID.", + Optional: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, + }, Arg_NetworkName: { - Description: "The unique identifier or name of a network.", - Required: true, - Type: schema.TypeString, - ValidateFunc: validation.NoZeroValues, + AtLeastOneOf: []string{Arg_NetworkID, Arg_NetworkName}, + ConflictsWith: []string{Arg_NetworkID}, + Deprecated: "The pi_network_name field is deprecated. Please use pi_network_id instead", + Description: "The unique identifier or name of a network.", + Optional: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, }, // Attributes @@ -78,8 +88,7 @@ func DataSourceIBMPINetwork() *schema.Resource { }, Attr_Name: { Computed: true, - Deprecated: "This field is deprecated, use pi_network_name instead.", - Description: "The unique identifier or name of a network.", + Description: "The name of the network.", Type: schema.TypeString, }, Attr_NetworkAddressTranslation: { @@ -140,9 +149,15 @@ func dataSourceIBMPINetworkRead(ctx context.Context, d *schema.ResourceData, met } cloudInstanceID := d.Get(Arg_CloudInstanceID).(string) + var networkID string + if v, ok := d.GetOk(Arg_NetworkID); ok { + networkID = v.(string) + } else if v, ok := d.GetOk(Arg_NetworkName); ok { + networkID = v.(string) + } networkC := instance.NewIBMPINetworkClient(ctx, sess, cloudInstanceID) - networkdata, err := networkC.Get(d.Get(helpers.PINetworkName).(string)) + networkdata, err := networkC.Get(networkID) if err != nil || networkdata == nil { return diag.FromErr(err) } diff --git a/ibm/service/power/data_source_ibm_pi_network_port.go b/ibm/service/power/data_source_ibm_pi_network_port.go index 82e3e47a88..f147f07b45 100644 --- a/ibm/service/power/data_source_ibm_pi_network_port.go +++ b/ibm/service/power/data_source_ibm_pi_network_port.go @@ -8,7 +8,6 @@ import ( "log" "github.com/IBM-Cloud/power-go-client/clients/instance" - "github.com/IBM-Cloud/power-go-client/helpers" "github.com/IBM-Cloud/power-go-client/power/models" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" "github.com/hashicorp/go-uuid" @@ -28,11 +27,22 @@ func DataSourceIBMPINetworkPort() *schema.Resource { Type: schema.TypeString, ValidateFunc: validation.NoZeroValues, }, + Arg_NetworkID: { + AtLeastOneOf: []string{Arg_NetworkID, Arg_NetworkName}, + ConflictsWith: []string{Arg_NetworkName}, + Description: "The network ID.", + Optional: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, + }, Arg_NetworkName: { - Description: "The unique identifier or name of a network.", - Required: true, - Type: schema.TypeString, - ValidateFunc: validation.NoZeroValues, + AtLeastOneOf: []string{Arg_NetworkID, Arg_NetworkName}, + ConflictsWith: []string{Arg_NetworkID}, + Deprecated: "The pi_network_name field is deprecated. Please use pi_network_id instead", + Description: "The unique identifier or name of a network.", + Optional: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, }, // Attributes @@ -97,9 +107,15 @@ func dataSourceIBMPINetworkPortsRead(ctx context.Context, d *schema.ResourceData } cloudInstanceID := d.Get(Arg_CloudInstanceID).(string) + var networkID string + if v, ok := d.GetOk(Arg_NetworkID); ok { + networkID = v.(string) + } else if v, ok := d.GetOk(Arg_NetworkName); ok { + networkID = v.(string) + } networkportC := instance.NewIBMPINetworkClient(ctx, sess, cloudInstanceID) - networkportdata, err := networkportC.GetAllPorts(d.Get(helpers.PINetworkName).(string)) + networkportdata, err := networkportC.GetAllPorts(networkID) if err != nil { return diag.FromErr(err) } diff --git a/ibm/service/power/data_source_ibm_pi_network_port_test.go b/ibm/service/power/data_source_ibm_pi_network_port_test.go index 24a386af2d..96c7b08e06 100644 --- a/ibm/service/power/data_source_ibm_pi_network_port_test.go +++ b/ibm/service/power/data_source_ibm_pi_network_port_test.go @@ -30,7 +30,7 @@ func TestAccIBMPINetworkPortDataSource_basic(t *testing.T) { func testAccCheckIBMPINetworkPortDataSourceConfig() string { return fmt.Sprintf(` data "ibm_pi_network_port" "testacc_ds_network_port" { - pi_network_name = "%s" - pi_cloud_instance_id = "%s" - }`, acc.Pi_network_name, acc.Pi_cloud_instance_id) + pi_cloud_instance_id = "%[2]s" + pi_network_id = "%[1]s" + }`, acc.Pi_network_id, acc.Pi_cloud_instance_id) } diff --git a/ibm/service/power/data_source_ibm_pi_network_test.go b/ibm/service/power/data_source_ibm_pi_network_test.go index 9cb5fa3c72..bc2e941c5a 100644 --- a/ibm/service/power/data_source_ibm_pi_network_test.go +++ b/ibm/service/power/data_source_ibm_pi_network_test.go @@ -31,7 +31,7 @@ func TestAccIBMPINetworkDataSource_basic(t *testing.T) { func testAccCheckIBMPINetworkDataSourceConfig() string { return fmt.Sprintf(` data "ibm_pi_network" "testacc_ds_network" { - pi_network_name = "%s" - pi_cloud_instance_id = "%s" - }`, acc.Pi_network_name, acc.Pi_cloud_instance_id) + pi_cloud_instance_id = "%[2]s" + pi_network_id = "%[1]s" + }`, acc.Pi_network_id, acc.Pi_cloud_instance_id) } diff --git a/website/docs/d/pi_network.html.markdown b/website/docs/d/pi_network.html.markdown index 6076f9aea1..333963ff39 100644 --- a/website/docs/d/pi_network.html.markdown +++ b/website/docs/d/pi_network.html.markdown @@ -14,8 +14,8 @@ Retrieve information about the network that your Power Systems Virtual Server in ```terraform data "ibm_pi_network" "ds_network" { - pi_network_name = "APP" pi_cloud_instance_id = "49fba6c9-23f8-40bc-9899-aca322ee7d5b" + pi_network_id = "7f8e2a9d-3b4c-4e4f-8e8d-f7e7e1e23456" } ``` @@ -40,7 +40,8 @@ Example usage: Review the argument references that you can specify for your data source. - `pi_cloud_instance_id` - (Required, String) The GUID of the service instance associated with an account. -- `pi_network_name` - (Required, String) The name of the network. +- `pi_network_id` - (Optional, String) The network ID. +- `pi_network_name` - (Deprecated, Optional, String) The unique identifier or name of the network. Passing the name of the instance could fail or fetch stale data. Please pass an id and use `pi_network_id` instead. ## Attribute Reference @@ -54,6 +55,7 @@ In addition to all argument reference list, you can access the following attribu - `dns`- (Set) The DNS Servers for the network. - `gateway` - (String) The network gateway that is attached to your network. - `id` - (String) The ID of the network. +- `name` - (String) The name of the network. - `mtu` - (Boolean) Maximum Transmission Unit option of the network. - `network_address_translation` - (Deprecated, List) Contains the network address translation details (for on-prem locations only). diff --git a/website/docs/d/pi_network_port.html.markdown b/website/docs/d/pi_network_port.html.markdown index bcf54701b5..41037a2ee9 100644 --- a/website/docs/d/pi_network_port.html.markdown +++ b/website/docs/d/pi_network_port.html.markdown @@ -16,8 +16,8 @@ Retrieve information about a network port in the Power Virtual Server Cloud. For ```terraform data "ibm_pi_network_port" "test-network-port" { - pi_network_name = "Zone1-CFN" pi_cloud_instance_id = "51e1879c-bcbe-4ee1-a008-49cdba0eaf60" + pi_network_id = "7e1c3b2a-9f0d-4e5f-a1bc-def012345678" } ``` @@ -42,7 +42,8 @@ Example usage: Review the argument references that you can specify for your data source. - `pi_cloud_instance_id` - (Required, String) The GUID of the service instance associated with an account. -- `pi_network_name` - (Required, String) The unique identifier or name of a network. +- `pi_network_id` - (Optional, String) The network ID. +- `pi_network_name` - (Deprecated, Optional, String) The unique identifier or name of a network. Please use `pi_network_id` instead. ## Attribute Reference From 37dfdfc56a53282fc0ca42875a83e29db7ee609a Mon Sep 17 00:00:00 2001 From: michaelkad Date: Fri, 10 Oct 2025 11:21:48 -0500 Subject: [PATCH 2/2] remove non zero --- ibm/service/power/data_source_ibm_pi_network.go | 2 -- ibm/service/power/data_source_ibm_pi_network_port.go | 2 -- 2 files changed, 4 deletions(-) diff --git a/ibm/service/power/data_source_ibm_pi_network.go b/ibm/service/power/data_source_ibm_pi_network.go index 8dd779762b..3c4b6db518 100644 --- a/ibm/service/power/data_source_ibm_pi_network.go +++ b/ibm/service/power/data_source_ibm_pi_network.go @@ -32,7 +32,6 @@ func DataSourceIBMPINetwork() *schema.Resource { Description: "The network ID.", Optional: true, Type: schema.TypeString, - ValidateFunc: validation.NoZeroValues, }, Arg_NetworkName: { AtLeastOneOf: []string{Arg_NetworkID, Arg_NetworkName}, @@ -41,7 +40,6 @@ func DataSourceIBMPINetwork() *schema.Resource { Description: "The unique identifier or name of a network.", Optional: true, Type: schema.TypeString, - ValidateFunc: validation.NoZeroValues, }, // Attributes diff --git a/ibm/service/power/data_source_ibm_pi_network_port.go b/ibm/service/power/data_source_ibm_pi_network_port.go index f147f07b45..b8ff1762eb 100644 --- a/ibm/service/power/data_source_ibm_pi_network_port.go +++ b/ibm/service/power/data_source_ibm_pi_network_port.go @@ -33,7 +33,6 @@ func DataSourceIBMPINetworkPort() *schema.Resource { Description: "The network ID.", Optional: true, Type: schema.TypeString, - ValidateFunc: validation.NoZeroValues, }, Arg_NetworkName: { AtLeastOneOf: []string{Arg_NetworkID, Arg_NetworkName}, @@ -42,7 +41,6 @@ func DataSourceIBMPINetworkPort() *schema.Resource { Description: "The unique identifier or name of a network.", Optional: true, Type: schema.TypeString, - ValidateFunc: validation.NoZeroValues, }, // Attributes