@taskcluster/client-web 95.0.3 → 95.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taskcluster/client-web",
3
- "version": "95.0.3",
3
+ "version": "95.1.0",
4
4
  "main": "src/index.js",
5
5
  "author": "Eli Perelman <eli@eliperelman.com>",
6
6
  "license": "MPL-2.0",
@@ -26,6 +26,8 @@ export default class Queue extends Client {
26
26
  this.scheduleTask.entry = {"args":["taskId"],"category":"Tasks","method":"post","name":"scheduleTask","output":true,"query":[],"route":"/task/<taskId>/schedule","scopes":{"AnyOf":["queue:schedule-task:<schedulerId>/<taskGroupId>/<taskId>","queue:schedule-task-in-project:<projectId>",{"AllOf":["queue:schedule-task","assume:scheduler-id:<schedulerId>/<taskGroupId>"]}]},"stability":"stable","type":"function"}; // eslint-disable-line
27
27
  this.rerunTask.entry = {"args":["taskId"],"category":"Tasks","method":"post","name":"rerunTask","output":true,"query":[],"route":"/task/<taskId>/rerun","scopes":{"AnyOf":["queue:rerun-task:<schedulerId>/<taskGroupId>/<taskId>","queue:rerun-task-in-project:<projectId>",{"AllOf":["queue:rerun-task","assume:scheduler-id:<schedulerId>/<taskGroupId>"]}]},"stability":"stable","type":"function"}; // eslint-disable-line
28
28
  this.cancelTask.entry = {"args":["taskId"],"category":"Tasks","method":"post","name":"cancelTask","output":true,"query":[],"route":"/task/<taskId>/cancel","scopes":{"AnyOf":["queue:cancel-task:<schedulerId>/<taskGroupId>/<taskId>","queue:cancel-task-in-project:<projectId>",{"AllOf":["queue:cancel-task","assume:scheduler-id:<schedulerId>/<taskGroupId>"]}]},"stability":"stable","type":"function"}; // eslint-disable-line
29
+ this.changeTaskPriority.entry = {"args":["taskId"],"category":"Tasks","input":true,"method":"post","name":"changeTaskPriority","output":true,"query":[],"route":"/task/<taskId>/priority","scopes":{"AnyOf":["queue:change-task-priority:<taskId>","queue:change-task-priority-in-queue:<taskQueueId>"]},"stability":"experimental","type":"function"}; // eslint-disable-line
30
+ this.changeTaskGroupPriority.entry = {"args":["taskGroupId"],"category":"Task-Groups","input":true,"method":"post","name":"changeTaskGroupPriority","output":true,"query":[],"route":"/task-group/<taskGroupId>/priority","scopes":"queue:change-task-group-priority:<schedulerId>/<taskGroupId>","stability":"experimental","type":"function"}; // eslint-disable-line
29
31
  this.claimWork.entry = {"args":["taskQueueId"],"category":"Worker Interface","input":true,"method":"post","name":"claimWork","output":true,"query":[],"route":"/claim-work/<taskQueueId>","scopes":{"AllOf":["queue:claim-work:<taskQueueId>","queue:worker-id:<workerGroup>/<workerId>"]},"stability":"stable","type":"function"}; // eslint-disable-line
30
32
  this.claimTask.entry = {"args":["taskId","runId"],"category":"Worker Interface","input":true,"method":"post","name":"claimTask","output":true,"query":[],"route":"/task/<taskId>/runs/<runId>/claim","scopes":{"AllOf":["queue:claim-task:<provisionerId>/<workerType>","queue:worker-id:<workerGroup>/<workerId>"]},"stability":"deprecated","type":"function"}; // eslint-disable-line
31
33
  this.reclaimTask.entry = {"args":["taskId","runId"],"category":"Worker Interface","method":"post","name":"reclaimTask","output":true,"query":[],"route":"/task/<taskId>/runs/<runId>/reclaim","scopes":"queue:reclaim-task:<taskId>/<runId>","stability":"stable","type":"function"}; // eslint-disable-line
@@ -287,6 +289,27 @@ export default class Queue extends Client {
287
289
  return this.request(this.cancelTask.entry, args);
288
290
  }
289
291
  /* eslint-disable max-len */
292
+ // This method updates the priority of a single unresolved task.
293
+ // * Claimed or running tasks keep their current run priority until they are retried.
294
+ // * Emits `taskPriorityChanged` events so downstream tooling can observe manual overrides.
295
+ /* eslint-enable max-len */
296
+ changeTaskPriority(...args) {
297
+ this.validate(this.changeTaskPriority.entry, args);
298
+
299
+ return this.request(this.changeTaskPriority.entry, args);
300
+ }
301
+ /* eslint-disable max-len */
302
+ // This method applies a new priority to unresolved tasks within a task group.
303
+ // * Updates run in bounded batches to avoid long locks.
304
+ // * Claimed or running tasks keep their current run priority until they are retried.
305
+ // * Emits `taskGroupPriorityChanged` summary event at the end.
306
+ /* eslint-enable max-len */
307
+ changeTaskGroupPriority(...args) {
308
+ this.validate(this.changeTaskGroupPriority.entry, args);
309
+
310
+ return this.request(this.changeTaskGroupPriority.entry, args);
311
+ }
312
+ /* eslint-disable max-len */
290
313
  // Claim pending task(s) for the given task queue.
291
314
  // If any work is available (even if fewer than the requested number of
292
315
  // tasks, this will return immediately. Otherwise, it will block for tens of
@@ -124,6 +124,22 @@ export default class QueueEvents extends Client {
124
124
  taskGroupSealed(pattern) {
125
125
  const entry = {"exchange":"task-group-sealed","name":"taskGroupSealed","routingKey":[{"constant":"primary","multipleWords":false,"name":"routingKeyKind","required":true},{"multipleWords":false,"name":"taskGroupId","required":true},{"multipleWords":false,"name":"schedulerId","required":true},{"multipleWords":true,"name":"reserved","required":false}],"schema":"v1/task-group-changed-message.json#","type":"topic-exchange"}; // eslint-disable-line
126
126
 
127
+ return this.normalizePattern(entry, pattern);
128
+ }
129
+ /* eslint-disable max-len */
130
+ // A message published when task priority was updated via `changeTaskPriority` API call.
131
+ /* eslint-enable max-len */
132
+ taskPriorityChanged(pattern) {
133
+ const entry = {"exchange":"task-priority-changed","name":"taskPriorityChanged","routingKey":[{"constant":"primary","multipleWords":false,"name":"routingKeyKind","required":true},{"multipleWords":false,"name":"taskId","required":true},{"multipleWords":false,"name":"runId","required":false},{"multipleWords":false,"name":"workerGroup","required":false},{"multipleWords":false,"name":"workerId","required":false},{"multipleWords":false,"name":"provisionerId","required":true},{"multipleWords":false,"name":"workerType","required":true},{"multipleWords":false,"name":"schedulerId","required":true},{"multipleWords":false,"name":"taskGroupId","required":true},{"multipleWords":true,"name":"reserved","required":false}],"schema":"v1/task-priority-changed-message.json#","type":"topic-exchange"}; // eslint-disable-line
134
+
135
+ return this.normalizePattern(entry, pattern);
136
+ }
137
+ /* eslint-disable max-len */
138
+ // A message published when task group priority was changed via `changeTaskGroupPriority` API call.
139
+ /* eslint-enable max-len */
140
+ taskGroupPriorityChanged(pattern) {
141
+ const entry = {"exchange":"task-group-priority-changed","name":"taskGroupPriorityChanged","routingKey":[{"constant":"primary","multipleWords":false,"name":"routingKeyKind","required":true},{"multipleWords":false,"name":"taskGroupId","required":true},{"multipleWords":false,"name":"schedulerId","required":true},{"multipleWords":true,"name":"reserved","required":false}],"schema":"v1/task-group-priority-changed-message.json#","type":"topic-exchange"}; // eslint-disable-line
142
+
127
143
  return this.normalizePattern(entry, pattern);
128
144
  }
129
145
  }