Skip to content

Commit 2c8264a

Browse files
Fix data sources and documentation
1 parent 58a3926 commit 2c8264a

6 files changed

+37
-47
lines changed

ibm/service/power/data_source_ibm_pi_virtual_serial_number.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/IBM-Cloud/power-go-client/clients/instance"
1010
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
11+
"github.com/hashicorp/go-uuid"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1213
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1314
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -25,7 +26,7 @@ func DataSourceIBMPIVirtualSerialNumber() *schema.Resource {
2526
Type: schema.TypeString,
2627
ValidateFunc: validation.NoZeroValues,
2728
},
28-
Arg_VirtualSerialNumber: {
29+
Arg_Serial: {
2930
Description: "Virtual serial number.",
3031
Required: true,
3132
Type: schema.TypeString,
@@ -43,11 +44,6 @@ func DataSourceIBMPIVirtualSerialNumber() *schema.Resource {
4344
Description: "ID of PVM instance virtual serial number is attached to.",
4445
Type: schema.TypeString,
4546
},
46-
Attr_Serial: {
47-
Computed: true,
48-
Description: "Serial number.",
49-
Type: schema.TypeString,
50-
},
5147
},
5248
}
5349
}
@@ -61,15 +57,18 @@ func dataSourceIBMPIVirtualSerialNumberRead(ctx context.Context, d *schema.Resou
6157
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
6258
client := instance.NewIBMPIVSNClient(ctx, sess, cloudInstanceID)
6359

64-
vsnInput := d.Get(Arg_VirtualSerialNumber).(string)
60+
vsnInput := d.Get(Arg_Serial).(string)
6561
virtualSerialNumberData, err := client.Get(vsnInput)
6662
if err != nil {
6763
return diag.FromErr(err)
6864
}
6965

66+
var clientgenU, _ = uuid.GenerateUUID()
67+
d.SetId(clientgenU)
7068
d.Set(Attr_Description, virtualSerialNumberData.Description)
71-
d.Set(Attr_PVMInstanceID, virtualSerialNumberData.PvmInstanceID)
72-
d.Set(Attr_Serial, virtualSerialNumberData.Serial)
69+
if virtualSerialNumberData.PvmInstanceID != nil {
70+
d.Set(Attr_PVMInstanceID, virtualSerialNumberData.PvmInstanceID)
71+
}
7372

7473
return nil
7574
}

ibm/service/power/data_source_ibm_pi_virtual_serial_numbers.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/IBM-Cloud/power-go-client/clients/instance"
1010
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
11+
"github.com/hashicorp/go-uuid"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1213
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1314
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -88,6 +89,8 @@ func dataSourceIBMPIVirtualSerialNumbersRead(ctx context.Context, d *schema.Reso
8889
vsnMapList = append(vsnMapList, v)
8990
}
9091

92+
var clientgenU, _ = uuid.GenerateUUID()
93+
d.SetId(clientgenU)
9194
d.Set(Attr_VirtualSerialNumbers, vsnMapList)
9295
return nil
9396
}

ibm/service/power/resource_ibm_pi_instance.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,6 @@ func resourceIBMPIInstanceUpdate(ctx context.Context, d *schema.ResourceData, me
976976
}
977977

978978
if d.HasChange(Arg_VirtualSerialNumber) {
979-
pvmInstanceID := d.Get(Attr_InstanceID).(string)
980979
vsnClient := instance.NewIBMPIVSNClient(ctx, sess, cloudInstanceID)
981980

982981
if d.HasChange(Arg_VirtualSerialNumber + ".0." + Attr_Serial) {
@@ -1000,7 +999,7 @@ func resourceIBMPIInstanceUpdate(ctx context.Context, d *schema.ResourceData, me
1000999
deleteBody := &models.DeleteServerVirtualSerialNumber{
10011000
RetainVSN: retainVSN,
10021001
}
1003-
err := vsnClient.PVMInstanceDeleteVSN(pvmInstanceID, deleteBody)
1002+
err := vsnClient.PVMInstanceDeleteVSN(instanceID, deleteBody)
10041003
if err != nil {
10051004
return diag.FromErr(err)
10061005
}
@@ -1014,7 +1013,7 @@ func resourceIBMPIInstanceUpdate(ctx context.Context, d *schema.ResourceData, me
10141013
Description: description,
10151014
Serial: &serial,
10161015
}
1017-
err := vsnClient.PVMInstanceAttachVSN(pvmInstanceID, addBody)
1016+
err := vsnClient.PVMInstanceAttachVSN(instanceID, addBody)
10181017
if err != nil {
10191018
return diag.FromErr(err)
10201019
}
@@ -1026,7 +1025,7 @@ func resourceIBMPIInstanceUpdate(ctx context.Context, d *schema.ResourceData, me
10261025
}
10271026

10281027
if instanceRestart {
1029-
err = startLparAfterResourceChange(ctx, client, pvmInstanceID, d)
1028+
err = startLparAfterResourceChange(ctx, client, instanceID, d)
10301029
if err != nil {
10311030
return diag.FromErr(err)
10321031
}

ibm/service/power/resource_ibm_pi_virtual_serial_number.go

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ import (
1717

1818
func ResourceIBMPIVirtualSerialNumber() *schema.Resource {
1919
return &schema.Resource{
20-
CreateContext: resourceIBMPIInstanceCreate,
21-
ReadContext: resourceIBMPIInstanceRead,
22-
UpdateContext: resourceIBMPIInstanceUpdate,
23-
DeleteContext: resourceIBMPIInstanceDelete,
20+
CreateContext: resourceIBMPIVirtualSerialNumberCreate,
21+
ReadContext: resourceIBMPIVirtualSerialNumberRead,
22+
UpdateContext: resourceIBMPIVirtualSerialNumberUpdate,
23+
DeleteContext: resourceIBMPIVirtualSerialNumberUpdate,
2424
Importer: &schema.ResourceImporter{},
2525

2626
Timeouts: &schema.ResourceTimeout{
@@ -38,21 +38,23 @@ func ResourceIBMPIVirtualSerialNumber() *schema.Resource {
3838
Type: schema.TypeString,
3939
},
4040
Arg_Description: {
41+
Computed: true,
4142
Description: "Description of virtual serial number.",
4243
Optional: true,
4344
Type: schema.TypeString,
4445
},
4546
Arg_Serial: {
46-
Description: "Virtual serial number.",
47-
Required: true,
48-
Type: schema.TypeString,
47+
Description: "Virtual serial number.",
48+
DiffSuppressFunc: flex.ApplyOnce,
49+
Required: true,
50+
Type: schema.TypeString,
4951
},
5052

5153
// Attributes
5254
Attr_PVMInstanceID: {
5355
Computed: true,
5456
Description: "PVM instance ID virtual serial number is assigned to.",
55-
Type: schema.TypeBool,
57+
Type: schema.TypeString,
5658
},
5759
},
5860
}
@@ -103,6 +105,7 @@ func resourceIBMPIVirtualSerialNumberRead(ctx context.Context, d *schema.Resourc
103105
if vsn.PvmInstanceID != nil {
104106
d.Set(Attr_PVMInstanceID, vsn.PvmInstanceID)
105107
}
108+
d.Set(Arg_Serial, vsn.Serial)
106109

107110
return nil
108111
}
@@ -138,34 +141,20 @@ func resourceIBMPIVirtualSerialNumberUpdate(ctx context.Context, d *schema.Resou
138141
return diag.FromErr(err)
139142
}
140143

141-
if d.HasChange(Arg_VirtualSerialNumber) || d.HasChange(Arg_CloudInstanceID) {
144+
if d.HasChange(Arg_Description) {
142145
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
143146
client := instance.NewIBMPIVSNClient(ctx, sess, cloudInstanceID)
144147

145-
vsnArg := d.Get(Arg_Serial).(string)
146-
vsn, err := client.Get(vsnArg)
147-
if err != nil {
148-
return diag.FromErr(err)
148+
newDescription := d.Get(Arg_Description).(string)
149+
updateBody := &models.UpdateVirtualSerialNumber{
150+
Description: &newDescription,
149151
}
150152

151-
id := cloudInstanceID + "/" + *vsn.Serial
152-
d.SetId(id)
153-
} else {
154-
if d.HasChange(Arg_Description) {
155-
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
156-
client := instance.NewIBMPIVSNClient(ctx, sess, cloudInstanceID)
157-
158-
newDescription := d.Get(Arg_Description).(string)
159-
updateBody := &models.UpdateVirtualSerialNumber{
160-
Description: &newDescription,
161-
}
162-
163-
vsnArg := d.Get(Arg_Serial).(string)
153+
vsnArg := d.Get(Arg_Serial).(string)
164154

165-
_, err = client.Update(vsnArg, updateBody)
166-
if err != nil {
167-
return diag.FromErr(err)
168-
}
155+
_, err = client.Update(vsnArg, updateBody)
156+
if err != nil {
157+
return diag.FromErr(err)
169158
}
170159
}
171160

website/docs/d/pi_virtual_serial_number.html.markdown

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Retrieve information about an existing IBM Power Virtual Server Cloud Instance a
1313
```terraform
1414
data "ibm_pi_virtual_serial_number" "ds_virtual_serial_number" {
1515
pi_cloud_instance_id = "<cloud instance id>"
16-
pi_virtual_serial_number = "<virtual serial number>"
16+
pi_serial = "<virtual serial number>"
1717
}
1818
```
1919

@@ -35,7 +35,7 @@ Example usage:
3535
Review the argument reference that you can specify for your data source.
3636

3737
- `pi_cloud_instance_id` - (Required, String) The GUID of the service instance associated with an account.
38-
- `pi_virtual_serial_number` - (Required, String) Virtual serial number.
38+
- `pi_serial` - (Required, String) Virtual serial number.
3939

4040
## Attribute reference
4141
In addition to the argument reference list, you can access the following attribute references after your data source is created.

website/docs/d/pi_virtual_serial_numbers.html.markdown

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ Example usage:
3535
Review the argument reference that you can specify for your data source.
3636

3737
- `pi_cloud_instance_id` - (Required, String) The GUID of the service instance associated with an account.
38-
- `pi_instance_id` - (Required, String) Power virtual server instance id.
38+
- `pi_instance_id` - (Optional, String) Power virtual server instance ID.
3939

4040
## Attribute reference
4141
In addition to the argument reference list, you can access the following attribute references after your data source is created.
4242

43-
- `virtual_serial_number` - (List) List of virtual serial numbers
43+
- `virtual_serial_numbers` - (List) List of virtual serial numbers
4444

4545
Nested scheme for `virtual_serial_number`:
4646
- `description` - (String) Description for virtual serial number.

0 commit comments

Comments
 (0)