Skip to content

Commit 6bd0cb3

Browse files
Merge pull request #222 from Cloud-Temple/221-the-os_network_adapter-are-always-connected-to-the-template-network
bugfix(#221): Fixed a bug on os_network_adapter of resource iaas_opensource_virtual_machine causing wrong network configuration
2 parents ab247a3 + 6b85400 commit 6bd0cb3

3 files changed

Lines changed: 20 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
***Warning: Using "Release Candidate" versions (-rc.X) in a **production environment** is **strongly discouraged**, as they may contain unresolved bugs and pose risks to the stability and security of your systems.***
22

3-
# 1.5.4 (February 10th, 2026)
3+
# 1.5.5 (February 12th, 2026)
44
<img id="latest" src="https://badgen.net/badge/channel/latest/yellow" alt="Channel: latest" />
55

6+
BUG FIXES :
7+
8+
* Fixed a bug causing `os_network_adapter` on resource `cloudtemple_iaas_opensource_virtual_machine` to be connected to the network from the original template used.
9+
* Fixed a bug causing `os_network_adapter` on resource `cloudtemple_iaas_opensource_virtual_machine` to be created with `mac_address` of the network adapter from the original template used.
10+
11+
# 1.5.4 (February 10th, 2026)
12+
613
BUG FIXES :
714

815
* Fixed a bug causing resource `cloudtemple_compute_iaas_opensource_network_adapter` to be created disconnected by default when `attached` property was not set.

internal/client/compute_iaas_opensource_virtual_machine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ type CloudInit struct {
6868

6969
type OSNetworkAdapter struct {
7070
NetworkID string `json:"networkId"`
71-
MAC string `json:"macAddress"`
71+
MAC string `json:"mac,omitempty"`
7272
}
7373

7474
type CreateOpenIaasVirtualMachineRequest struct {

internal/provider/resource_compute_iaas_opensource_virtual_machine.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,8 @@ func openIaasVirtualMachineCreate(ctx context.Context, d *schema.ResourceData, m
434434
}
435435
}
436436

437+
osNetworkAdapters := d.Get("os_network_adapter").([]interface{})
438+
437439
// Deploy from template
438440
if d.Get("template_id").(string) != "" {
439441
template, err := c.Compute().OpenIaaS().Template().Read(ctx, d.Get("template_id").(string))
@@ -444,11 +446,16 @@ func openIaasVirtualMachineCreate(ctx context.Context, d *schema.ResourceData, m
444446
return diag.Errorf("Could not find template with id : %s", d.Get("template_id").(string))
445447
}
446448

449+
if osNetworkAdapters != nil && len(osNetworkAdapters) != len(template.NetworkAdapters) {
450+
return diag.Errorf("the number of os_network_adapter (%d) must match the number of network adapters in the template (%d)", len(osNetworkAdapters), len(template.NetworkAdapters))
451+
}
452+
447453
templateNetworkAdapters := make([]client.OSNetworkAdapter, len(template.NetworkAdapters))
448-
for i, networkAdapter := range template.NetworkAdapters {
454+
for i := range template.NetworkAdapters {
455+
osNetworkAdapter := osNetworkAdapters[i].(map[string]interface{})
449456
templateNetworkAdapters[i] = client.OSNetworkAdapter{
450-
NetworkID: networkAdapter.Network.ID,
451-
MAC: networkAdapter.MacAddress,
457+
NetworkID: osNetworkAdapter["network_id"].(string),
458+
MAC: osNetworkAdapter["mac_address"].(string),
452459
}
453460
}
454461

@@ -479,7 +486,6 @@ func openIaasVirtualMachineCreate(ctx context.Context, d *schema.ResourceData, m
479486
return diag.Errorf("Could not find marketplace item info with id : %s", d.Get("marketplace_item_id").(string))
480487
}
481488

482-
osNetworkAdapters := d.Get("os_network_adapter").([]interface{})
483489
if osNetworkAdapters != nil && len(osNetworkAdapters) != len(openIaasItemInfo.NetworkAdapters) {
484490
return diag.Errorf("the number of os_network_adapter (%d) must match the number of network adapters in the marketplace item (%d)", len(osNetworkAdapters), len(openIaasItemInfo.NetworkAdapters))
485491
}
@@ -535,7 +541,7 @@ func openIaasVirtualMachineCreate(ctx context.Context, d *schema.ResourceData, m
535541
return diag.Errorf("could not list network adapters of virtual machine, %s", err)
536542
}
537543

538-
osNetworkAdapters := helpers.UpdateNestedMapItems(d, helpers.FlattenOpenIaaSOSNetworkAdaptersData(networkAdapters), "os_network_adapter")
544+
osNetworkAdapters = helpers.UpdateNestedMapItems(d, helpers.FlattenOpenIaaSOSNetworkAdaptersData(networkAdapters), "os_network_adapter")
539545
if err := d.Set("os_network_adapter", osNetworkAdapters); err != nil {
540546
return diag.FromErr(err)
541547
}

0 commit comments

Comments
 (0)