Skip to content

Commit 2190a08

Browse files
committed
resource_github_enterprise_actions_hosted_runner: fix review
1 parent 2a359b1 commit 2190a08

2 files changed

Lines changed: 47 additions & 68 deletions

File tree

github/resource_github_enterprise_actions_hosted_runner.go

Lines changed: 45 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ func resourceGithubEnterpriseActionsHostedRunner() *schema.Resource {
2525
Importer: &schema.ResourceImporter{
2626
StateContext: schema.ImportStatePassthroughContext,
2727
},
28+
29+
Timeouts: &schema.ResourceTimeout{
30+
Delete: schema.DefaultTimeout(15 * time.Minute),
31+
},
32+
2833
Schema: map[string]*schema.Schema{
2934
"enterprise_slug": {
3035
Type: schema.TypeString,
@@ -228,48 +233,46 @@ func resourceGithubEnterpriseActionsHostedRunnerCreate(ctx context.Context, d *s
228233
}
229234

230235
// Set the ID in the format enterprise_slug/runner_id
231-
d.SetId(fmt.Sprintf("%s/%d", enterpriseSlug, *runner.ID))
236+
id, err := buildID(enterpriseSlug, strconv.FormatInt(runner.GetID(), 10))
237+
if err != nil {
238+
return diag.FromErr(err)
239+
}
240+
d.SetId(id)
232241

233242
// Populate computed fields directly from API response
234243
if err := d.Set("enterprise_slug", enterpriseSlug); err != nil {
235244
return diag.FromErr(err)
236245
}
237246

238247
// runner.ID is guaranteed non-nil due to check above
239-
if err := d.Set("runner_id", int(*runner.ID)); err != nil {
248+
if err := d.Set("runner_id", int(runner.GetID())); err != nil {
240249
return diag.FromErr(err)
241250
}
242251

243-
if runner.Name != nil {
244-
if err := d.Set("name", *runner.Name); err != nil {
245-
return diag.FromErr(err)
246-
}
252+
if err := d.Set("name", runner.GetName()); err != nil {
253+
return diag.FromErr(err)
247254
}
248-
if runner.Status != nil {
249-
if err := d.Set("status", *runner.Status); err != nil {
250-
return diag.FromErr(err)
251-
}
255+
256+
if err := d.Set("status", runner.GetStatus()); err != nil {
257+
return diag.FromErr(err)
252258
}
253-
if runner.Platform != nil {
254-
if err := d.Set("platform", *runner.Platform); err != nil {
255-
return diag.FromErr(err)
256-
}
259+
260+
if err := d.Set("platform", runner.GetPlatform()); err != nil {
261+
return diag.FromErr(err)
257262
}
263+
258264
if runner.LastActiveOn != nil {
259265
if err := d.Set("last_active_on", runner.LastActiveOn.Format(time.RFC3339)); err != nil {
260266
return diag.FromErr(err)
261267
}
262268
}
263-
if runner.PublicIPEnabled != nil {
264-
if err := d.Set("public_ip_enabled", *runner.PublicIPEnabled); err != nil {
265-
return diag.FromErr(err)
266-
}
269+
270+
if err := d.Set("public_ip_enabled", runner.GetPublicIPEnabled()); err != nil {
271+
return diag.FromErr(err)
267272
}
268273

269-
if runner.ImageDetails != nil {
270-
if err := d.Set("image", flattenHostedRunnerImage(runner.ImageDetails)); err != nil {
271-
return diag.FromErr(err)
272-
}
274+
if err := d.Set("image", flattenHostedRunnerImage(runner.ImageDetails)); err != nil {
275+
return diag.FromErr(err)
273276
}
274277

275278
if runner.MachineSizeDetails != nil {
@@ -333,42 +336,34 @@ func resourceGithubEnterpriseActionsHostedRunnerRead(ctx context.Context, d *sch
333336
return diag.FromErr(err)
334337
}
335338

336-
if runner.ID != nil {
337-
if err := d.Set("runner_id", int(*runner.ID)); err != nil {
338-
return diag.FromErr(err)
339-
}
339+
if err := d.Set("runner_id", int(runner.GetID())); err != nil {
340+
return diag.FromErr(err)
340341
}
341342

342-
if runner.Name != nil {
343-
if err := d.Set("name", *runner.Name); err != nil {
344-
return diag.FromErr(err)
345-
}
343+
if err := d.Set("name", runner.GetName()); err != nil {
344+
return diag.FromErr(err)
346345
}
347-
if runner.Status != nil {
348-
if err := d.Set("status", *runner.Status); err != nil {
349-
return diag.FromErr(err)
350-
}
346+
347+
if err := d.Set("status", runner.GetStatus()); err != nil {
348+
return diag.FromErr(err)
351349
}
352-
if runner.Platform != nil {
353-
if err := d.Set("platform", *runner.Platform); err != nil {
354-
return diag.FromErr(err)
355-
}
350+
351+
if err := d.Set("platform", runner.GetPlatform()); err != nil {
352+
return diag.FromErr(err)
356353
}
354+
357355
if runner.LastActiveOn != nil {
358356
if err := d.Set("last_active_on", runner.LastActiveOn.Format(time.RFC3339)); err != nil {
359357
return diag.FromErr(err)
360358
}
361359
}
362-
if runner.PublicIPEnabled != nil {
363-
if err := d.Set("public_ip_enabled", *runner.PublicIPEnabled); err != nil {
364-
return diag.FromErr(err)
365-
}
360+
361+
if err := d.Set("public_ip_enabled", runner.GetPublicIPEnabled()); err != nil {
362+
return diag.FromErr(err)
366363
}
367364

368-
if runner.ImageDetails != nil {
369-
if err := d.Set("image", flattenHostedRunnerImage(runner.ImageDetails)); err != nil {
370-
return diag.FromErr(err)
371-
}
365+
if err := d.Set("image", flattenHostedRunnerImage(runner.ImageDetails)); err != nil {
366+
return diag.FromErr(err)
372367
}
373368

374369
if runner.MachineSizeDetails != nil {
@@ -380,16 +375,12 @@ func resourceGithubEnterpriseActionsHostedRunnerRead(ctx context.Context, d *sch
380375
}
381376
}
382377

383-
if runner.RunnerGroupID != nil {
384-
if err := d.Set("runner_group_id", int(*runner.RunnerGroupID)); err != nil {
385-
return diag.FromErr(err)
386-
}
378+
if err := d.Set("runner_group_id", int(runner.GetRunnerGroupID())); err != nil {
379+
return diag.FromErr(err)
387380
}
388381

389-
if runner.MaximumRunners != nil {
390-
if err := d.Set("maximum_runners", int(*runner.MaximumRunners)); err != nil {
391-
return diag.FromErr(err)
392-
}
382+
if err := d.Set("maximum_runners", int(runner.GetMaximumRunners())); err != nil {
383+
return diag.FromErr(err)
393384
}
394385

395386
if runner.PublicIPs != nil {
@@ -415,33 +406,21 @@ func resourceGithubEnterpriseActionsHostedRunnerUpdate(ctx context.Context, d *s
415406
}
416407

417408
request := &github.HostedRunnerRequest{}
418-
hasChanges := false
419409

420410
if d.HasChange("name") {
421411
request.Name = d.Get("name").(string)
422-
hasChanges = true
423412
}
424413
if d.HasChange("size") {
425414
request.Size = d.Get("size").(string)
426-
hasChanges = true
427415
}
428416
if d.HasChange("runner_group_id") {
429417
request.RunnerGroupID = int64(d.Get("runner_group_id").(int))
430-
hasChanges = true
431418
}
432419
if d.HasChange("maximum_runners") {
433420
request.MaximumRunners = int64(d.Get("maximum_runners").(int))
434-
hasChanges = true
435421
}
436422
if d.HasChange("public_ip_enabled") {
437423
request.EnableStaticIP = d.Get("public_ip_enabled").(bool)
438-
hasChanges = true
439-
}
440-
441-
// This should rarely happen as Terraform only calls Update when there are changes in the plan.
442-
// However, computed fields or external changes could trigger Update without actual user-configurable changes.
443-
if !hasChanges {
444-
return nil
445424
}
446425

447426
_, _, err = client.Enterprise.UpdateHostedRunner(ctx, enterpriseSlug, runnerID, *request)

github/resource_github_enterprise_actions_hosted_runner_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"fmt"
55
"testing"
66

7-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
8-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
"github.com/hashicorp/terraform-plugin-testing/helper/acctest"
8+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
99
)
1010

1111
func TestAccGithubEnterpriseActionsHostedRunner(t *testing.T) {

0 commit comments

Comments
 (0)