Skip to content

Commit

Permalink
DEVPROD-5180: Add projectIdentifier field to TaskQueueItem type (#7957)
Browse files Browse the repository at this point in the history
  • Loading branch information
minnakt committed Jun 7, 2024
1 parent dd20de5 commit d4e2c3f
Show file tree
Hide file tree
Showing 8 changed files with 1,119 additions and 1,038 deletions.
2,123 changes: 1,088 additions & 1,035 deletions graphql/generated.go

Large diffs are not rendered by default.

15 changes: 14 additions & 1 deletion graphql/query_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,17 +184,30 @@ func (r *queryResolver) Distros(ctx context.Context, onlySpawnable bool) ([]*res
func (r *queryResolver) DistroTaskQueue(ctx context.Context, distroID string) ([]*restModel.APITaskQueueItem, error) {
distroQueue, err := model.LoadTaskQueue(distroID)
if err != nil {
return nil, InternalServerError.Send(ctx, fmt.Sprintf("Error getting task queue for distro %v: %v", distroID, err.Error()))
return nil, InternalServerError.Send(ctx, fmt.Sprintf("getting task queue for distro '%v': %v", distroID, err.Error()))
}
if distroQueue == nil {
return nil, ResourceNotFound.Send(ctx, fmt.Sprintf("cannot find queue with distro ID `%s`", distroID))
}

idToIdentifierMap := map[string]string{}
taskQueue := []*restModel.APITaskQueueItem{}

for _, taskQueueItem := range distroQueue.Queue {
apiTaskQueueItem := restModel.APITaskQueueItem{}

if _, ok := idToIdentifierMap[taskQueueItem.Project]; !ok {
identifier, err := model.GetIdentifierForProject(taskQueueItem.Project)
if err != nil {
return nil, InternalServerError.Send(ctx, fmt.Sprintf("getting identifier for project '%v': %v", taskQueueItem.Project, err.Error()))
}
idToIdentifierMap[taskQueueItem.Project] = identifier
}

apiTaskQueueItem.BuildFromService(taskQueueItem)
if identifier := idToIdentifierMap[taskQueueItem.Project]; identifier != "" {
apiTaskQueueItem.ProjectIdentifier = utility.ToStringPtr(identifier)
}
taskQueue = append(taskQueue, &apiTaskQueueItem)
}

Expand Down
3 changes: 2 additions & 1 deletion graphql/schema/types/task_queue_item.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ type TaskQueueItem {
expectedDuration: Duration!
priority: Int!
project: String!
# projectIdentifier can be null if the task is running on an untracked branch.
projectIdentifier: String
requester: TaskQueueItemType!
activatedBy: String!
revision: String!
Expand All @@ -25,4 +27,3 @@ type TaskQueueDistro {
hostCount: Int!
taskCount: Int!
}

9 changes: 9 additions & 0 deletions graphql/tests/query/distroTaskQueue/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,14 @@
"_id": { "$oid": "55c230e1f9f1d47716d86fc2" },
"distro": "osx-108"
}
],
"project_ref": [
{
"_id": "0955b4913748caeffd8c4bcc9f13fd955fed40e41409d5181eb32967ebf582aa",
"identifier": "evergreen"
},
{
"_id": "3d1b6a78a5bf2bd595e44fd5caf16aed41c89617ecc886d7deca821dbded94c6"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ query {
requester
displayName
project
projectIdentifier
buildVariant
priority
revision
Expand Down
3 changes: 3 additions & 0 deletions graphql/tests/query/distroTaskQueue/results.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"requester": "PATCH",
"displayName": "compile",
"project": "0955b4913748caeffd8c4bcc9f13fd955fed40e41409d5181eb32967ebf582aa",
"projectIdentifier": "evergreen",
"buildVariant": "os-x-108-64-nossl",
"priority": 0,
"revision": "292ceeaae06844f3d759e4a05e9b9cb7be97171e",
Expand All @@ -22,6 +23,7 @@
"requester": "COMMIT",
"displayName": "compile",
"project": "3d1b6a78a5bf2bd595e44fd5caf16aed41c89617ecc886d7deca821dbded94c6",
"projectIdentifier": null,
"buildVariant": "osx-108-ssl",
"priority": 0,
"revision": "336e39e76e7a65af1ec534f28e69f568ca97695c",
Expand All @@ -33,6 +35,7 @@
"requester": "PATCH",
"displayName": "compile",
"project": "0955b4913748caeffd8c4bcc9f13fd955fed40e41409d5181eb32967ebf582aa",
"projectIdentifier": "evergreen",
"buildVariant": "os-x-108-64-nossl",
"priority": 0,
"revision": "292ceeaae06844f3d759e4a05e9b9cb7be97171e",
Expand Down
1 change: 1 addition & 0 deletions rest/model/task_queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ type APITaskQueueItem struct {
Requester *string `json:"requester"`
Revision *string `json:"gitspec"`
Project *string `json:"project"`
ProjectIdentifier *string `json:"project_identifier,omitempty"`
Version *string `json:"version"`
Build *string `json:"build"`
ExpectedDuration APIDuration `json:"exp_dur"`
Expand Down
2 changes: 1 addition & 1 deletion testdata/local/task_queues.json
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
{"_id":{"$oid":"55c230e1f9f1d47716d86fc2"},"distro":"osx-108","queue":[{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nossl","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mms_on_prem_4.4_35dfc39b6e1e2d1efad93d9805cb59814939cdc9","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nossl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_17_13_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"osx-108-ssl","project":"23c73fc8a605de0e6d71f776128544356dca2a243a459db334d3514ae74a1ba7","version":"mms_on_prem_4.4_35dfc39b6e1e2d1efad93d9805cb59814939cdc9","exp_dur":600000000000,"requester":"gitter_request","_id":"evergreen_ubuntu1604_test_monitor_5e823e1f28baeaa22ae00823d83e03082cd148ab_20_02_20_20_37_06","order":11,"gitspec":"336e39e76e7a65af1ec534f28e69f568ca97695c"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nossl","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mms_on_prem_4.4_35dfc39b6e1e2d1efad93d9805cb59814939cdc9","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nossl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_16_54_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"osx-108","project":"23c73fc8a605de0e6d71f776128544356dca2a243a459db334d3514ae74a1ba7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"gitter_request","_id":"mongodb_mongo_v3.0.11_osx_108_compile_336e39e76e7a65af1ec534f28e69f568ca97695c_16_06_13_21_07_12","order":11,"gitspec":"336e39e76e7a65af1ec534f28e69f568ca97695c"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_compile_d42ef14854895f02054d95a25fe7e12dfdb327d8_16_05_03_02_36_47","order":0,"gitspec":"d42ef14854895f02054d95a25fe7e12dfdb327d8"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"osx-108-debug","project":"23c73fc8a605de0e6d71f776128544356dca2a243a459db334d3514ae74a1ba7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"gitter_request","_id":"mongodb_mongo_v3.0.11_osx_108_debug_compile_336e39e76e7a65af1ec534f28e69f568ca97695c_16_06_13_21_07_12","order":11,"gitspec":"336e39e76e7a65af1ec534f28e69f568ca97695c"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-openssl","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_openssl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_17_13_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nativessl","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nativessl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_17_13_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nativessl","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nativessl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_16_54_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-openssl","project":"0ca28fc26cf92159f774660f135f376fdcb90c23488cfa461a9969243643feb7","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_openssl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_16_54_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile_and_test","build_variant":"osx-108","project":"6f2c7211d1e40f3dd1d94a01990ca00513105be180ef6adced3ab46376105676","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongodb_cpp_driver_dev_osx_108_compile_and_test_671bda78e9947426e78bdae3ea13be1ce64ffe18_16_07_26_16_11_48","order":0,"gitspec":"671bda78e9947426e78bdae3ea13be1ce64ffe18"},{"activated_by":"admin","priority":0,"display_name":"compile_and_test","build_variant":"osx-108","project":"6f2c7211d1e40f3dd1d94a01990ca00513105be180ef6adced3ab46376105676","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongodb_cpp_driver_dev_osx_108_compile_and_test_671bda78e9947426e78bdae3ea13be1ce64ffe18_16_07_26_18_51_23","order":0,"gitspec":"671bda78e9947426e78bdae3ea13be1ce64ffe18"},{"activated_by":"admin","priority":0,"display_name":"compile_and_test","build_variant":"osx-108","project":"6f2c7211d1e40f3dd1d94a01990ca00513105be180ef6adced3ab46376105676","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"evergreen_lint_lint_service_patch_5e823e1f28baeaa22ae00823d83e03082cd148ab_5e4ff3abe3c3317e352062e4_20_02_21_15_13_48","order":0,"gitspec":"671bda78e9947426e78bdae3ea13be1ce64ffe18"}]}
{"_id":{"$oid":"55c230e1f9f1d47716d86fc2"},"distro":"osx-108","queue":[{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nossl","project":"602d70a2b2373672ee493189","version":"mms_on_prem_4.4_35dfc39b6e1e2d1efad93d9805cb59814939cdc9","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nossl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_17_13_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"osx-108-ssl","project":"evergreen","version":"mms_on_prem_4.4_35dfc39b6e1e2d1efad93d9805cb59814939cdc9","exp_dur":600000000000,"requester":"gitter_request","_id":"evergreen_ubuntu1604_test_monitor_5e823e1f28baeaa22ae00823d83e03082cd148ab_20_02_20_20_37_06","order":11,"gitspec":"336e39e76e7a65af1ec534f28e69f568ca97695c"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nossl","project":"602d70a2b2373672ee493189","version":"mms_on_prem_4.4_35dfc39b6e1e2d1efad93d9805cb59814939cdc9","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nossl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_16_54_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"osx-108","project":"evergreen","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"gitter_request","_id":"mongodb_mongo_v3.0.11_osx_108_compile_336e39e76e7a65af1ec534f28e69f568ca97695c_16_06_13_21_07_12","order":11,"gitspec":"336e39e76e7a65af1ec534f28e69f568ca97695c"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64","project":"602d70a2b2373672ee493189","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_compile_d42ef14854895f02054d95a25fe7e12dfdb327d8_16_05_03_02_36_47","order":0,"gitspec":"d42ef14854895f02054d95a25fe7e12dfdb327d8"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"osx-108-debug","project":"evergreen","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"gitter_request","_id":"mongodb_mongo_v3.0.11_osx_108_debug_compile_336e39e76e7a65af1ec534f28e69f568ca97695c_16_06_13_21_07_12","order":11,"gitspec":"336e39e76e7a65af1ec534f28e69f568ca97695c"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-openssl","project":"602d70a2b2373672ee493189","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_openssl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_17_13_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nativessl","project":"602d70a2b2373672ee493189","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nativessl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_17_13_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-nativessl","project":"602d70a2b2373672ee493189","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_nativessl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_16_54_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile","build_variant":"os-x-108-64-openssl","project":"602d70a2b2373672ee493189","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongo_c_driver_os_x_108_64_openssl_compile_292ceeaae06844f3d759e4a05e9b9cb7be97171e_16_04_15_16_54_00","order":0,"gitspec":"292ceeaae06844f3d759e4a05e9b9cb7be97171e"},{"activated_by":"admin","priority":0,"display_name":"compile_and_test","build_variant":"osx-108","project":"spruce","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongodb_cpp_driver_dev_osx_108_compile_and_test_671bda78e9947426e78bdae3ea13be1ce64ffe18_16_07_26_16_11_48","order":0,"gitspec":"671bda78e9947426e78bdae3ea13be1ce64ffe18"},{"activated_by":"admin","priority":0,"display_name":"compile_and_test","build_variant":"osx-108","project":"spruce","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"mongodb_cpp_driver_dev_osx_108_compile_and_test_671bda78e9947426e78bdae3ea13be1ce64ffe18_16_07_26_18_51_23","order":0,"gitspec":"671bda78e9947426e78bdae3ea13be1ce64ffe18"},{"activated_by":"admin","priority":0,"display_name":"compile_and_test","build_variant":"osx-108","project":"spruce","version":"mongodb_mongo_v4.2_cef23d286f5f9af1295d8097b33df764cc2201fe","exp_dur":600000000000,"requester":"patch_request","_id":"evergreen_lint_lint_service_patch_5e823e1f28baeaa22ae00823d83e03082cd148ab_5e4ff3abe3c3317e352062e4_20_02_21_15_13_48","order":0,"gitspec":"671bda78e9947426e78bdae3ea13be1ce64ffe18"}]}
{"_id":{"$oid":"55c230e0f9f1d47716d86fb5"},"distro":"debian71-test","queue":[],"generated_at":{"$date":"2020-03-18T14:27:01.09Z"},"distro_queue_info":{"length":0,"expected_duration":0,"max_duration_threshold":10000000000,"created_at":{"$date":"2020-03-18T14:27:01.085Z"},"count_over_threshold":0,"task_group_infos":[],"alias_queue":false}}

0 comments on commit d4e2c3f

Please sign in to comment.