Skip to content

Commit 61afd2a

Browse files
marcoandredinisgreedy52espadolini
authored
[v17] ListUserTasks WebAPI: include issue type title (#52786)
* ListUserTasks WebAPI: include issue type title * Update lib/web/ui/usertask.go Co-authored-by: STeve (Xin) Huang <xin.huang@goteleport.com> * Update lib/web/ui/usertask.go Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com> --------- Co-authored-by: STeve (Xin) Huang <xin.huang@goteleport.com> Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
1 parent ef999a5 commit 61afd2a

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

lib/web/ui/usertask.go

+22-9
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ type UserTask struct {
3939
State string `json:"state,omitempty"`
4040
// IssueType identifies this task's issue type.
4141
IssueType string `json:"issueType,omitempty"`
42+
// Title is the issue title.
43+
Title string `json:"title,omitempty"`
4244
// Integration is the Integration Name this User Task refers to.
4345
Integration string `json:"integration,omitempty"`
4446
// LastStateChange indicates when the current's user task state was last changed.
@@ -49,8 +51,6 @@ type UserTask struct {
4951
type UserTaskDetail struct {
5052
// UserTask has the basic fields that all tasks include.
5153
UserTask
52-
// Title is the issue title.
53-
Title string `json:"title,omitempty"`
5454
// Description is a markdown document that explains the issue and how to fix it.
5555
Description string `json:"description,omitempty"`
5656
// DiscoverEC2 contains the task details for the DiscoverEC2 tasks.
@@ -99,44 +99,57 @@ func MakeUserTasks(uts []*usertasksv1.UserTask) []UserTask {
9999

100100
// MakeDetailedUserTask creates a UI UserTask representation containing all the details.
101101
func MakeDetailedUserTask(ut *usertasksv1.UserTask) UserTaskDetail {
102-
var title string
103-
var description string
104-
105102
var discoverEC2 *usertasks.UserTaskDiscoverEC2WithURLs
106103
var discoverEKS *usertasks.UserTaskDiscoverEKSWithURLs
107104
var discoverRDS *usertasks.UserTaskDiscoverRDSWithURLs
108105

109106
switch ut.GetSpec().GetTaskType() {
110107
case apiusertasks.TaskTypeDiscoverEC2:
111-
title, description = usertasks.DescriptionForDiscoverEC2Issue(ut.GetSpec().GetIssueType())
112108
discoverEC2 = usertasks.EC2InstancesWithURLs(ut)
113109

114110
case apiusertasks.TaskTypeDiscoverEKS:
115-
title, description = usertasks.DescriptionForDiscoverEKSIssue(ut.GetSpec().GetIssueType())
116111
discoverEKS = usertasks.EKSClustersWithURLs(ut)
117112

118113
case apiusertasks.TaskTypeDiscoverRDS:
119-
title, description = usertasks.DescriptionForDiscoverRDSIssue(ut.GetSpec().GetIssueType())
120114
discoverRDS = usertasks.RDSDatabasesWithURLs(ut)
121115
}
122116

117+
_, description := userTaskTitleAndDescription(ut)
118+
123119
return UserTaskDetail{
124120
UserTask: MakeUserTask(ut),
125-
Title: title,
126121
Description: description,
127122
DiscoverEC2: discoverEC2,
128123
DiscoverEKS: discoverEKS,
129124
DiscoverRDS: discoverRDS,
130125
}
131126
}
132127

128+
func userTaskTitleAndDescription(ut *usertasksv1.UserTask) (string, string) {
129+
switch ut.GetSpec().GetTaskType() {
130+
case apiusertasks.TaskTypeDiscoverEC2:
131+
return usertasks.DescriptionForDiscoverEC2Issue(ut.GetSpec().GetIssueType())
132+
133+
case apiusertasks.TaskTypeDiscoverEKS:
134+
return usertasks.DescriptionForDiscoverEKSIssue(ut.GetSpec().GetIssueType())
135+
136+
case apiusertasks.TaskTypeDiscoverRDS:
137+
return usertasks.DescriptionForDiscoverRDSIssue(ut.GetSpec().GetIssueType())
138+
139+
default:
140+
return "", ""
141+
}
142+
}
143+
133144
// MakeUserTask creates a UI UserTask representation.
134145
func MakeUserTask(ut *usertasksv1.UserTask) UserTask {
146+
title, _ := userTaskTitleAndDescription(ut)
135147
return UserTask{
136148
Name: ut.GetMetadata().GetName(),
137149
TaskType: ut.GetSpec().GetTaskType(),
138150
State: ut.GetSpec().GetState(),
139151
IssueType: ut.GetSpec().GetIssueType(),
152+
Title: title,
140153
Integration: ut.GetSpec().GetIntegration(),
141154
LastStateChange: ut.GetStatus().GetLastStateChange().AsTime(),
142155
}

lib/web/usertasks_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ func TestUserTask(t *testing.T) {
120120
err = json.Unmarshal(resp.Bytes(), &listResponse)
121121
require.NoError(t, err)
122122
require.NotEmpty(t, listResponse.Items)
123+
require.NotEmpty(t, listResponse.Items[0].Title)
123124
listedTasks = append(listedTasks, listResponse.Items...)
124125

125126
if listResponse.NextKey == "" {

0 commit comments

Comments
 (0)