From 921b008cfbb579ff165e7a4257f08ef173536a20 Mon Sep 17 00:00:00 2001 From: kelsk <38271546+kelsk@users.noreply.github.com> Date: Wed, 16 Sep 2020 22:26:12 -0700 Subject: [PATCH] docs(samples): add sample for updateJob (#265) --- scheduler/test/test.samples.js | 7 +++++ scheduler/updateJob.js | 54 ++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 scheduler/updateJob.js diff --git a/scheduler/test/test.samples.js b/scheduler/test/test.samples.js index 9475624ab7..50fbc6bfaf 100644 --- a/scheduler/test/test.samples.js +++ b/scheduler/test/test.samples.js @@ -38,6 +38,13 @@ describe('Cloud Scheduler Sample Tests', () => { jobName = stdout.split('/').pop(); }); + it('should update a scheduler job', async () => { + const stdout = execSync( + `node updateJob.js ${PROJECT_ID} ${LOCATION_ID} ${jobName}` + ); + assert.match(stdout, /Updated job/); + }); + it('should delete a scheduler job', async () => { const stdout = execSync( `node deleteJob.js ${PROJECT_ID} ${LOCATION_ID} ${jobName}` diff --git a/scheduler/updateJob.js b/scheduler/updateJob.js new file mode 100644 index 0000000000..1993bca9e8 --- /dev/null +++ b/scheduler/updateJob.js @@ -0,0 +1,54 @@ +// Copyright 2020 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. + +// sample-metadata: +// title: Update Job +// description: Update a job by its ID. +// usage: node updateJob.js [project-id] [location-id] [job-id] + +async function updateJob(projectId, locationId, jobId) { + const scheduler = require('@google-cloud/scheduler'); + + // Create a client. + const client = new scheduler.CloudSchedulerClient(); + + // TODO(developer): Uncomment and set the following variables + // const projectId = "PROJECT_ID" + // const locationId = "LOCATION_ID" + // const jobId = "JOB_ID" + + // Construct the fully qualified location path. + const job = client.jobPath(projectId, locationId, jobId); + + // Construct the request body. + const request = { + job: { + name: job, + description: 'Hello World example.', + }, + updateMask: { + paths: ['description'], + }, + }; + + // Use the client to send the job update request. + const [response] = await client.updateJob(request); + console.log(`Updated job: ${response.name}`); +} + +const args = process.argv.slice(2); +updateJob(...args).catch(err => { + console.error(err.message); + process.exitCode = 1; +});