Skip to content

Commit 3e36855

Browse files
Enable support for unit_number
1 parent ec864f8 commit 3e36855

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

main.tf

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,18 @@ resource "vsphere_virtual_machine" "vm" {
8585
guest_id = data.vsphere_virtual_machine.template.guest_id
8686
scsi_bus_sharing = var.scsi_bus_sharing
8787
scsi_type = var.scsi_type != "" ? var.scsi_type : data.vsphere_virtual_machine.template.scsi_type
88-
scsi_controller_count = max(max(0, flatten([
89-
for item in values(var.data_disk) : [
90-
for elem, val in item :
91-
elem == "data_disk_scsi_controller" ? val : 0
92-
]
93-
])...) + 1, var.scsi_controller)
88+
scsi_controller_count = max(
89+
max(flatten([
90+
for item in values(var.data_disk) : [
91+
for elem, val in item :
92+
elem == "data_disk_scsi_controller" ? val : 0
93+
]])...) + 1,
94+
ceil((max(flatten([
95+
for item in values(var.data_disk) : [
96+
for elem, val in item :
97+
elem == "unit_number" ? val : 0
98+
] ])...) + 1) / 15),
99+
var.scsi_controller)
94100
wait_for_guest_net_routable = var.wait_for_guest_net_routable
95101
wait_for_guest_ip_timeout = var.wait_for_guest_ip_timeout
96102
wait_for_guest_net_timeout = var.wait_for_guest_net_timeout
@@ -125,7 +131,27 @@ resource "vsphere_virtual_machine" "vm" {
125131
content {
126132
label = terraform_disks.key
127133
size = lookup(terraform_disks.value, "size_gb", null)
128-
unit_number = lookup(terraform_disks.value, "data_disk_scsi_controller", 0) > 0 ? terraform_disks.value.data_disk_scsi_controller * 15 + index(keys(var.data_disk), terraform_disks.key) + (var.scsi_controller == tonumber(terraform_disks.value["data_disk_scsi_controller"]) ? local.template_disk_count : 0) : index(keys(var.data_disk), terraform_disks.key) + local.template_disk_count
134+
unit_number = (
135+
lookup(
136+
terraform_disks.value,
137+
"unit_number",
138+
-1
139+
) < 0 ? (
140+
lookup(
141+
terraform_disks.value,
142+
"data_disk_scsi_controller",
143+
0
144+
) > 0 ? (
145+
(terraform_disks.value.data_disk_scsi_controller * 15) +
146+
index(keys(var.data_disk), terraform_disks.key) +
147+
(var.scsi_controller == tonumber(terraform_disks.value["data_disk_scsi_controller"]) ? local.template_disk_count : 0)
148+
) : (
149+
index(keys(var.data_disk), terraform_disks.key) + local.template_disk_count
150+
)
151+
) : (
152+
tonumber(terraform_disks.value["unit_number"])
153+
)
154+
)
129155
thin_provisioned = lookup(terraform_disks.value, "thin_provisioned", "true")
130156
eagerly_scrub = lookup(terraform_disks.value, "eagerly_scrub", "false")
131157
datastore_id = lookup(terraform_disks.value, "datastore_id", null)

0 commit comments

Comments
 (0)