Skip to content

Commit a34cef3

Browse files
author
Samuel Chong (Group)
committed
restrict nat within server resource to modifying only. Cannot attached or detached new nat via terraform.
1 parent b6587b6 commit a34cef3

File tree

2 files changed

+8
-19
lines changed

2 files changed

+8
-19
lines changed

ddcloud/resource_server.go

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -536,33 +536,21 @@ func resourceServerUpdate(data *schema.ResourceData, provider interface{}) error
536536
}
537537
}
538538

539+
// TODO: Find a better solution to be able to update, add and remove additional adapters.
539540
// Additional Network Adapters
540541
if data.HasChange(resourceKeyServerAdditionalNetworkAdapter) {
541542
log.Printf("[Resource_server] resourceKeyServerAdditionalNetworkAdapter has changed ")
542543

543-
// Note: Tried modifying network adapter; it won't work in adding and removing scenarios, the index of NIC confused terraform additional network adapter schema list.
544-
// Current implementation treat additional nic(s) as one resource instead of one for each additional nic.
544+
// Note: Tried modifying network adapter; it won't work in adding and removing scenarios, the index of NIC confuse terraform additional network adapter schema list.
545+
// Current implementation treat additional nic(s) as an attribute in server resource instead of a network adapter resource by itself.
546+
// At the moment, we had to disable the feature to attach and detach network adapter post-server provisioning and restrict update to modifying existing list of network adapter at server provision.
545547

546548
// Refresh additional network adapters by removing and re-adding.
547549
log.Printf("[DD] Updating network adapters")
548550

549-
// Removed all additional network adapters
550-
actualAdditionalAdapters := server.Network.AdditionalNetworkAdapters
551-
for _, adapter := range actualAdditionalAdapters {
552-
m := models.NewNetworkAdapterFromVirtualMachineNetworkAdapter(adapter)
553-
err := removeServerNetworkAdapter(providerState, serverID, &m)
554-
if err != nil {
555-
return err
556-
}
557-
}
558-
559-
// Add all additional network adapters
551+
// Update all additional network adapters
560552
configuredAdditionalAdapters := propertyHelper.GetServerNetworkAdapters().GetAdditional()
561553
for _, configured := range configuredAdditionalAdapters {
562-
err = addServerNetworkAdapter(providerState, serverID, &configured)
563-
if err != nil {
564-
return err
565-
}
566554

567555
err = modifyServerNetworkAdapterIP(providerState, serverID, configured)
568556
if err != nil {
@@ -901,7 +889,7 @@ func deployCustomizedServer(data *schema.ResourceData, providerState *providerSt
901889

902890
server := resource.(*compute.Server)
903891

904-
// Capture additional properties that may only be available after deployment.
892+
// Capture additional properties (those only available after deployment) and modify auto-assinged IPs to the one specified in tf file.
905893
err = captureCreatedServerProperties(data, providerState, server, networkAdapters)
906894
if err != nil {
907895
return err
@@ -1101,6 +1089,7 @@ func captureCreatedServerProperties(data *schema.ResourceData, providerState *pr
11011089
data.Set(resourceKeyServerStarted, server.Started)
11021090
data.SetPartial(resourceKeyServerStarted)
11031091

1092+
// Update network adapter IPs from Auto-Assigned to user-defined
11041093
for _, nic := range networkAdapters {
11051094
log.Printf("[DD] resource_server > captureCreatedServerProperties() nic id:%s ipv4:%s ipv6:%s",
11061095
nic.ID, nic.PrivateIPv4Address, nic.PrivateIPv6Address)

0 commit comments

Comments
 (0)