Skip to content

Commit d944931

Browse files
Google APIscopybara-github
authored andcommitted
feat: support order_by in ListJobs and ListTasks requests
--- feat: add support for placement policies --- feat: per-Runnable labels PiperOrigin-RevId: 530747589
1 parent 4048e76 commit d944931

3 files changed

Lines changed: 59 additions & 34 deletions

File tree

google/cloud/batch/v1/batch_v1.yaml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ types:
1313

1414
documentation:
1515
summary: An API to manage the running of batch jobs on Google Cloud Platform.
16-
overview: '(== google/cloud/batch/doc/overview.md ==)'
16+
overview: '(include == google/cloud/batch/doc/overview.md ==)'
1717
rules:
1818
- selector: google.cloud.location.Locations.GetLocation
1919
description: Gets information about a location.
@@ -38,11 +38,6 @@ http:
3838
get: '/v1/{name=projects/*/locations/*}'
3939
- selector: google.cloud.location.Locations.ListLocations
4040
get: '/v1/{name=projects/*}/locations'
41-
- selector: google.longrunning.Operations.CancelOperation
42-
post: '/v1/{name=projects/*/locations/*/operations/*}:cancel'
43-
body: '*'
44-
- selector: google.longrunning.Operations.DeleteOperation
45-
delete: '/v1/{name=projects/*/locations/*/operations/*}'
4641
- selector: google.longrunning.Operations.GetOperation
4742
get: '/v1/{name=projects/*/locations/*/operations/*}'
4843
- selector: google.longrunning.Operations.ListOperations
@@ -66,13 +61,3 @@ authentication:
6661
oauth:
6762
canonical_scopes: |-
6863
https://www.googleapis.com/auth/cloud-platform
69-
70-
publishing:
71-
organization: CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED
72-
new_issue_uri: ''
73-
documentation_uri: ''
74-
api_short_name: ''
75-
github_label: ''
76-
doc_tag_prefix: ''
77-
codeowner_github_teams:
78-
library_settings:

google/cloud/batch/v1/job.proto

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,14 @@ message JobNotification {
225225
message AllocationPolicy {
226226
message LocationPolicy {
227227
// A list of allowed location names represented by internal URLs.
228+
//
228229
// Each location can be a region or a zone.
229230
// Only one region or multiple zones in one region is supported now.
230231
// For example,
231232
// ["regions/us-central1"] allow VMs in any zones in region us-central1.
232233
// ["zones/us-central1-a", "zones/us-central1-c"] only allow VMs
233234
// in zones us-central1-a and us-central1-c.
235+
//
234236
// All locations end up in different regions would cause errors.
235237
// For example,
236238
// ["regions/us-central1", "zones/us-central1-a", "zones/us-central1-b",
@@ -241,25 +243,29 @@ message AllocationPolicy {
241243

242244
// A new persistent disk or a local ssd.
243245
// A VM can only have one local SSD setting but multiple local SSD partitions.
244-
// https://cloud.google.com/compute/docs/disks#pdspecs.
246+
// See https://cloud.google.com/compute/docs/disks#pdspecs and
245247
// https://cloud.google.com/compute/docs/disks#localssds.
246248
message Disk {
247249
// A data source from which a PD will be created.
248250
oneof data_source {
249251
// Name of a public or custom image used as the data source.
250252
// For example, the following are all valid URLs:
251-
// (1) Specify the image by its family name:
253+
//
254+
// * Specify the image by its family name:
252255
// projects/{project}/global/images/family/{image_family}
253-
// (2) Specify the image version:
256+
// * Specify the image version:
254257
// projects/{project}/global/images/{image_version}
258+
//
255259
// You can also use Batch customized image in short names.
256260
// The following image values are supported for a boot disk:
257-
// "batch-debian": use Batch Debian images.
258-
// "batch-centos": use Batch CentOS images.
259-
// "batch-cos": use Batch Container-Optimized images.
261+
//
262+
// * "batch-debian": use Batch Debian images.
263+
// * "batch-centos": use Batch CentOS images.
264+
// * "batch-cos": use Batch Container-Optimized images.
260265
string image = 4;
261266

262267
// Name of a snapshot used as the data source.
268+
// Snapshot is not supported as boot disk now.
263269
string snapshot = 5;
264270
}
265271

@@ -270,6 +276,7 @@ message AllocationPolicy {
270276
string type = 1;
271277

272278
// Disk size in GB.
279+
//
273280
// For persistent disk, this field is ignored if `data_source` is `image` or
274281
// `snapshot`.
275282
// For local SSD, size_gb should be a multiple of 375GB,
@@ -324,7 +331,7 @@ message AllocationPolicy {
324331

325332
// The minimum CPU platform.
326333
// See
327-
// `https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform`.
334+
// https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
328335
// Not yet implemented.
329336
string min_cpu_platform = 3;
330337

@@ -334,8 +341,9 @@ message AllocationPolicy {
334341
// The accelerators attached to each VM instance.
335342
repeated Accelerator accelerators = 5;
336343

337-
// Book disk to be created and attached to each VM by this InstancePolicy.
344+
// Boot disk to be created and attached to each VM by this InstancePolicy.
338345
// Boot disk will be deleted when the VM is deleted.
346+
// Batch API now only supports booting from image.
339347
Disk boot_disk = 8;
340348

341349
// Non-boot disks to be attached for each VM created by this InstancePolicy.
@@ -366,18 +374,22 @@ message AllocationPolicy {
366374
message NetworkInterface {
367375
// The URL of an existing network resource.
368376
// You can specify the network as a full or partial URL.
377+
//
369378
// For example, the following are all valid URLs:
370-
// https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
371-
// projects/{project}/global/networks/{network}
372-
// global/networks/{network}
379+
//
380+
// * https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
381+
// * projects/{project}/global/networks/{network}
382+
// * global/networks/{network}
373383
string network = 1;
374384

375385
// The URL of an existing subnetwork resource in the network.
376386
// You can specify the subnetwork as a full or partial URL.
387+
//
377388
// For example, the following are all valid URLs:
378-
// https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}
379-
// projects/{project}/regions/{region}/subnetworks/{subnetwork}
380-
// regions/{region}/subnetworks/{subnetwork}
389+
//
390+
// * https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}
391+
// * projects/{project}/regions/{region}/subnetworks/{subnetwork}
392+
// * regions/{region}/subnetworks/{subnetwork}
381393
string subnetwork = 2;
382394

383395
// Default is false (with an external IP address). Required if
@@ -396,6 +408,23 @@ message AllocationPolicy {
396408
repeated NetworkInterface network_interfaces = 1;
397409
}
398410

411+
// PlacementPolicy describes a group placement policy for the VMs controlled
412+
// by this AllocationPolicy.
413+
message PlacementPolicy {
414+
// UNSPECIFIED vs. COLLOCATED (default UNSPECIFIED). Use COLLOCATED when you
415+
// want VMs to be located close to each other for low network latency
416+
// between the VMs. No placement policy will be generated when collocation
417+
// is UNSPECIFIED.
418+
string collocation = 1;
419+
420+
// When specified, causes the job to fail if more than max_distance logical
421+
// switches are required between VMs. Batch uses the most compact possible
422+
// placement of VMs even when max_distance is not specified. An explicit
423+
// max_distance makes that level of compactness a strict requirement.
424+
// Not yet implemented
425+
int64 max_distance = 2;
426+
}
427+
399428
// Compute Engine VM instance provisioning model.
400429
enum ProvisioningModel {
401430
// Unspecified.
@@ -437,6 +466,9 @@ message AllocationPolicy {
437466

438467
// The network policy.
439468
NetworkPolicy network = 7;
469+
470+
// The placement policy.
471+
PlacementPolicy placement = 10;
440472
}
441473

442474
// A TaskGroup contains one or multiple Tasks that share the same
@@ -457,11 +489,12 @@ message TaskGroup {
457489
TaskSpec task_spec = 3 [(google.api.field_behavior) = REQUIRED];
458490

459491
// Number of Tasks in the TaskGroup.
460-
// default is 1
492+
// Default is 1.
461493
int64 task_count = 4;
462494

463495
// Max number of tasks that can run in parallel.
464496
// Default to min(task_count, 1000).
497+
// Field parallelism must be 1 if the scheduling_policy is IN_ORDER.
465498
int64 parallelism = 5;
466499

467500
// An array of environment variable mappings, which are passed to Tasks with

google/cloud/batch/v1/task.proto

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ message TaskExecution {
7272
message TaskStatus {
7373
// Task states.
7474
enum State {
75-
// unknown state
75+
// Unknown state.
7676
STATE_UNSPECIFIED = 0;
7777

7878
// The Task is created and waiting for resources.
@@ -89,6 +89,9 @@ message TaskStatus {
8989

9090
// The Task has succeeded.
9191
SUCCEEDED = 5;
92+
93+
// The Task has not been executed when the Job finishes.
94+
UNEXECUTED = 6;
9295
}
9396

9497
// Task state
@@ -124,8 +127,9 @@ message Runnable {
124127
string options = 8;
125128

126129
// If set to true, external network access to and from container will be
127-
// blocked. The container will use the default internal network
128-
// 'goog-internal'.
130+
// blocked, containers that are with block_external_network as true can
131+
// still communicate with each other, network cannot be specified in the
132+
// `container.options` field.
129133
bool block_external_network = 9;
130134

131135
// Optional username for logging in to a docker registry. If username
@@ -208,6 +212,9 @@ message Runnable {
208212

209213
// Timeout for this Runnable.
210214
google.protobuf.Duration timeout = 8;
215+
216+
// Labels for this Runnable.
217+
map<string, string> labels = 9;
211218
}
212219

213220
// Spec of a task

0 commit comments

Comments
 (0)