From 92acd2b86842dd858da1f8ca38d5cd98d61bd51e Mon Sep 17 00:00:00 2001 From: "Eugene Y. Q. Shen" Date: Fri, 17 Aug 2018 19:37:56 -0700 Subject: [PATCH] feat: implement profilesCreate --- package.json | 4 +++- src/index.ts | 4 +++- src/wrapper.ts | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b8124ba..b24e038 100644 --- a/package.json +++ b/package.json @@ -38,9 +38,11 @@ "typescript": "3.0.x" }, "dependencies": { + "@google-cloud/common": "^0.21.1", "google-auth-library": "^1.5.0", "googleapis": "^32.0.0", - "p-limit": "^2.0.0" + "p-limit": "^2.0.0", + "querystring": "^0.2.0" }, "scripts": { "check": "gts check", diff --git a/src/index.ts b/src/index.ts index f71cadc..6f7d5e9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,7 +15,7 @@ */ import * as assert from 'assert'; import {EventEmitter} from 'events'; -import {clouddebugger_v2} from 'googleapis'; +import {clouddebugger_v2, cloudprofiler_v2} from 'googleapis'; import * as util from 'util'; import {Wrapper} from './wrapper'; import pLimit = require('p-limit'); @@ -82,6 +82,8 @@ export type DebuggeesBreakpointsListRequest = clouddebugger_v2.Params$Resource$Debugger$Debuggees$Breakpoints$List; export type DebuggeesBreakpointsSetRequest = clouddebugger_v2.Params$Resource$Debugger$Debuggees$Breakpoints$Set; +export type ProfilesCreateRequest = + cloudprofiler_v2.Params$Resource$Projects$Profiles$Create; export interface DebuggeesListResponse { data: clouddebugger_v2.Schema$ListDebuggeesResponse; diff --git a/src/wrapper.ts b/src/wrapper.ts index 7a80678..ad876e1 100644 --- a/src/wrapper.ts +++ b/src/wrapper.ts @@ -20,6 +20,7 @@ import * as util from 'util'; import * as types from './index'; const cloudDebugger = google.clouddebugger('v2').debugger; +const cloudProfiler = google.cloudprofiler('v2').projects; export class Wrapper { private googleAuth = new GoogleAuth(); @@ -200,4 +201,24 @@ export class Wrapper { } return response.data.breakpoint; } + + async profilesCreate() { + if (!this.auth || !this.projectId) { + throw new Error('You must select a project before continuing.'); + } + const request: types.ProfilesCreateRequest = { + parent: 'eyqs-stackdriver-test', + requestBody: { + deployment: { + labels: ['nodejs'], + projectId: this.projectId, + target: this.projectId, + }, + profileType: [], + }, + auth: this.auth, + }; + const response = await cloudProfiler.profiles.create(request); + console.log(response); + } }