-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuuid.tf
44 lines (42 loc) · 1.66 KB
/
uuid.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#____________________________________________________________
#
# Intersight UUID Pool Resource
# GUI Location: Pools > Create Pool
#____________________________________________________________
resource "intersight_uuidpool_pool" "map" {
for_each = local.uuid
assignment_order = each.value.assignment_order
description = each.value.description != "" ? each.value.description : "${each.value.name} UUID Pool."
name = each.value.name
prefix = each.value.prefix
dynamic "uuid_suffix_blocks" {
for_each = { for v in each.value.uuid_blocks : v.from => v }
content {
object_type = "uuidpool.UuidBlock"
from = uuid_suffix_blocks.value.from
size = uuid_suffix_blocks.value.size
to = uuid_suffix_blocks.value.to
}
}
organization { moid = var.orgs[each.value.org] }
dynamic "tags" {
for_each = { for v in each.value.tags : v.key => v }
content {
key = tags.value.key
value = tags.value.value
}
}
}
resource "intersight_uuidpool_reservation" "map" {
depends_on = [intersight_uuidpool_pool.map]
for_each = { for v in local.reservations : "${v.pool_name}/${v.identity}" => v if v.identity_type == "uuid" }
allocation_type = each.value.allocation_type # dynamic|static
identity = each.value.identity
organization { moid = var.orgs[each.value.org] }
dynamic "pool" {
for_each = { for v in [each.value.pool_name] : v => v if each.value.allocation_type == "dynamic" }
content {
moid = contains(local.pools.uuid.moids, pool.value) ? intersight_uuidpool_pool.map[pool.value].moid : local.pools_data.uuid[pool.value].moid
}
}
}