Skip to content

Commit 55b47c7

Browse files
authored
Detect run_as drift in job resource (#2626)
* Detect run_as drift in job resource * fix SP UUID drift * suppress_diff for run_as
1 parent 8172a42 commit 55b47c7

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

jobs/resource_job.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ type JobSettings struct {
292292
NotificationSettings *jobs.JobNotificationSettings `json:"notification_settings,omitempty"`
293293
Tags map[string]string `json:"tags,omitempty"`
294294
Queue *Queue `json:"queue,omitempty"`
295-
RunAs *JobRunAs `json:"run_as,omitempty"`
295+
RunAs *JobRunAs `json:"run_as,omitempty" tf:"suppress_diff"`
296296
Health *JobHealth `json:"health,omitempty"`
297297
Parameters []JobParameterDefinition `json:"parameters,omitempty" tf:"alias:parameter"`
298298
}
@@ -574,6 +574,21 @@ func (a JobsAPI) Read(id string) (job Job, err error) {
574574
job.Settings.sortTasksByKey()
575575
job.Settings.sortWebhooksByID()
576576
}
577+
578+
if job.RunAsUserName != "" && job.Settings != nil {
579+
userNameIsEmail := strings.Contains(job.RunAsUserName, "@")
580+
581+
if userNameIsEmail {
582+
job.Settings.RunAs = &JobRunAs{
583+
UserName: job.RunAsUserName,
584+
}
585+
} else {
586+
job.Settings.RunAs = &JobRunAs{
587+
ServicePrincipalName: job.RunAsUserName,
588+
}
589+
}
590+
}
591+
577592
return
578593
}
579594

jobs/resource_job_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ func TestResourceJobCreate(t *testing.T) {
8787
PauseStatus: "PAUSED",
8888
},
8989
Queue: &Queue{},
90+
RunAs: &JobRunAs{
91+
UserName: "[email protected]",
92+
},
9093
},
9194
},
9295
},

0 commit comments

Comments
 (0)