-
Notifications
You must be signed in to change notification settings - Fork 584
/
cluster_controller.update_cluster.js
154 lines (144 loc) · 5.4 KB
/
cluster_controller.update_cluster.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// ** This file is automatically generated by gapic-generator-typescript. **
// ** https://github.com/googleapis/gapic-generator-typescript **
// ** All changes to this file may be overwritten. **
'use strict';
function main(projectId, region, clusterName, cluster, updateMask) {
// [START dataproc_v1_generated_ClusterController_UpdateCluster_async]
/**
* This snippet has been automatically generated and should be regarded as a code template only.
* It will require modifications to work.
* It may require correct/in-range values for request initialization.
* TODO(developer): Uncomment these variables before running the sample.
*/
/**
* Required. The ID of the Google Cloud Platform project the
* cluster belongs to.
*/
// const projectId = 'abc123'
/**
* Required. The Dataproc region in which to handle the request.
*/
// const region = 'us-central1'
/**
* Required. The cluster name.
*/
// const clusterName = 'abc123'
/**
* Required. The changes to the cluster.
*/
// const cluster = {}
/**
* Optional. Timeout for graceful YARN decommissioning. Graceful
* decommissioning allows removing nodes from the cluster without
* interrupting jobs in progress. Timeout specifies how long to wait for jobs
* in progress to finish before forcefully removing nodes (and potentially
* interrupting jobs). Default timeout is 0 (for forceful decommission), and
* the maximum allowed timeout is 1 day. (see JSON representation of
* Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).
* Only supported on Dataproc image versions 1.2 and higher.
*/
// const gracefulDecommissionTimeout = {}
/**
* Required. Specifies the path, relative to `Cluster`, of
* the field to update. For example, to change the number of workers
* in a cluster to 5, the `update_mask` parameter would be
* specified as `config.worker_config.num_instances`,
* and the `PATCH` request body would specify the new value, as follows:
* {
* "config":{
* "workerConfig":{
* "numInstances":"5"
* }
* }
* }
* Similarly, to change the number of preemptible workers in a cluster to 5,
* the `update_mask` parameter would be
* `config.secondary_worker_config.num_instances`, and the `PATCH` request
* body would be set as follows:
* {
* "config":{
* "secondaryWorkerConfig":{
* "numInstances":"5"
* }
* }
* }
* <strong>Note:</strong> Currently, only the following fields can be updated:
* <table>
* <tbody>
* <tr>
* <td><strong>Mask</strong></td>
* <td><strong>Purpose</strong></td>
* </tr>
* <tr>
* <td><strong><em>labels</em></strong></td>
* <td>Update labels</td>
* </tr>
* <tr>
* <td><strong><em>config.worker_config.num_instances</em></strong></td>
* <td>Resize primary worker group</td>
* </tr>
* <tr>
* <td><strong><em>config.secondary_worker_config.num_instances</em></strong></td>
* <td>Resize secondary worker group</td>
* </tr>
* <tr>
* <td>config.autoscaling_config.policy_uri</td><td>Use, stop using, or
* change autoscaling policies</td>
* </tr>
* </tbody>
* </table>
*/
// const updateMask = {}
/**
* Optional. A unique ID used to identify the request. If the server
* receives two
* UpdateClusterRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.UpdateClusterRequest)s
* with the same id, then the second request will be ignored and the
* first google.longrunning.Operation google.longrunning.Operation created
* and stored in the backend is returned.
* It is recommended to always set this value to a
* UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).
* The ID must contain only letters (a-z, A-Z), numbers (0-9),
* underscores (_), and hyphens (-). The maximum length is 40 characters.
*/
// const requestId = 'abc123'
// Imports the Dataproc library
const {ClusterControllerClient} = require('@google-cloud/dataproc').v1;
// Instantiates a client
const dataprocClient = new ClusterControllerClient();
async function callUpdateCluster() {
// Construct request
const request = {
projectId,
region,
clusterName,
cluster,
updateMask,
};
// Run request
const [operation] = await dataprocClient.updateCluster(request);
const [response] = await operation.promise();
console.log(response);
}
callUpdateCluster();
// [END dataproc_v1_generated_ClusterController_UpdateCluster_async]
}
process.on('unhandledRejection', err => {
console.error(err.message);
process.exitCode = 1;
});
main(...process.argv.slice(2));