Skip to content

Commit 11fa2ff

Browse files
author
Andy.McCullough
committed
desktopvirtualization\hostpool
Added registration_token attribute to top level hostpool so we can setnewcomputed when registration_info changes
1 parent 4b400b5 commit 11fa2ff

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

internal/services/desktopvirtualization/virtual_desktop_host_pool_resource.go

+22
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package desktopvirtualization
22

33
import (
4+
"context"
45
"fmt"
56
"log"
67
"time"
@@ -43,6 +44,8 @@ func resourceVirtualDesktopHostPool() *pluginsdk.Resource {
4344
0: migration.HostPoolV0ToV1{},
4445
}),
4546

47+
CustomizeDiff: pluginsdk.CustomizeDiffShim(hostpoolRegistrationCustomDiff),
48+
4649
Schema: map[string]*pluginsdk.Schema{
4750
"name": {
4851
Type: pluginsdk.TypeString,
@@ -160,12 +163,28 @@ func resourceVirtualDesktopHostPool() *pluginsdk.Resource {
160163
},
161164
},
162165
},
166+
//Added new
167+
"registration_token": {
168+
Type: pluginsdk.TypeString,
169+
Sensitive: true,
170+
Computed: true,
171+
},
163172

164173
"tags": tags.Schema(),
165174
},
166175
}
167176
}
168177

178+
func hostpoolRegistrationCustomDiff(ctx context.Context, d *pluginsdk.ResourceDiff, _ interface{}) error {
179+
if d.HasChange("registration_info") {
180+
if err := d.SetNewComputed("registration_token"); err != nil {
181+
return err
182+
}
183+
return nil
184+
}
185+
return nil
186+
}
187+
169188
func resourceVirtualDesktopHostPoolCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error {
170189
client := meta.(*clients.Client).DesktopVirtualization.HostPoolsClient
171190
subscriptionId := meta.(*clients.Client).Account.SubscriptionId
@@ -268,6 +287,9 @@ func resourceVirtualDesktopHostPoolRead(d *pluginsdk.ResourceData, meta interfac
268287
if err := d.Set("registration_info", flattenVirtualDesktopHostPoolRegistrationInfo(props.RegistrationInfo)); err != nil {
269288
return fmt.Errorf("setting `registration_info`: %+v", err)
270289
}
290+
if regInfo := props.RegistrationInfo; regInfo != nil {
291+
d.Set("registration_token", regInfo.Token)
292+
}
271293
}
272294

273295
return tags.FlattenAndSet(d, resp.Tags)

internal/services/desktopvirtualization/virtual_desktop_host_pool_resource_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,16 @@ resource "azurerm_virtual_desktop_host_pool" "test" {
125125
type = "Pooled"
126126
validate_environment = true
127127
load_balancer_type = "BreadthFirst"
128+
129+
# Do not use timestamp() outside of testing due to https://github.com/hashicorp/terraform/issues/22461
130+
registration_info {
131+
expiration_date = timeadd(timestamp(), "48h")
132+
}
133+
lifecycle {
134+
ignore_changes = [
135+
registration_info[0].expiration_date,
136+
]
137+
}
128138
}
129139
`, data.RandomInteger, data.Locations.Secondary, data.RandomString)
130140
}

0 commit comments

Comments
 (0)