From edc81a3abb5ac82a5f60f86e725656db09f6843f Mon Sep 17 00:00:00 2001 From: Atharva Mulmuley Date: Thu, 3 Jun 2021 11:24:17 +0530 Subject: [PATCH] testing existing L0s --- .github/workflows/unit-tests.yml | 1 + __tests__/run.test.ts | 1 + lib/client.js | 99 ----------------------------- src/client.ts | 103 ------------------------------- 4 files changed, 2 insertions(+), 202 deletions(-) delete mode 100644 lib/client.js delete mode 100644 src/client.ts diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index bca7aec6..72b768d7 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -8,6 +8,7 @@ on: # rebuild any PRs and main branch changes branches: - master - 'releases/*' + - atharvam/cluster-connect-master jobs: build: # make sure build/ci works properly diff --git a/__tests__/run.test.ts b/__tests__/run.test.ts index 1b861179..bd4b9906 100644 --- a/__tests__/run.test.ts +++ b/__tests__/run.test.ts @@ -187,6 +187,7 @@ describe('Testing all functions.', () => { if (inputName == 'method') return 'kubeconfig'; if (inputName == 'kubeconfig') return '###'; if (inputName == 'context') return ''; + if (inputName == 'cluster-type') return 'generic'; }); process.env['RUNNER_TEMP'] = 'tempDirPath' jest.spyOn(Date, 'now').mockImplementation(() => 1234561234567); diff --git a/lib/client.js b/lib/client.js deleted file mode 100644 index d19f77ec..00000000 --- a/lib/client.js +++ /dev/null @@ -1,99 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const util = require("util"); -const fs = require("fs"); -const httpClient = require("typed-rest-client/HttpClient"); -const core = require("@actions/core"); -var httpCallbackClient = new httpClient.HttpClient('GITHUB_RUNNER', null, {}); -class WebRequest { -} -exports.WebRequest = WebRequest; -class WebResponse { -} -exports.WebResponse = WebResponse; -class WebRequestOptions { -} -exports.WebRequestOptions = WebRequestOptions; -function sendRequest(request, options) { - return __awaiter(this, void 0, void 0, function* () { - let i = 0; - let retryCount = options && options.retryCount ? options.retryCount : 5; - let retryIntervalInSeconds = options && options.retryIntervalInSeconds ? options.retryIntervalInSeconds : 2; - let retriableErrorCodes = options && options.retriableErrorCodes ? options.retriableErrorCodes : ["ETIMEDOUT", "ECONNRESET", "ENOTFOUND", "ESOCKETTIMEDOUT", "ECONNREFUSED", "EHOSTUNREACH", "EPIPE", "EA_AGAIN"]; - let retriableStatusCodes = options && options.retriableStatusCodes ? options.retriableStatusCodes : [408, 409, 500, 502, 503, 504]; - let timeToWait = retryIntervalInSeconds; - while (true) { - try { - if (request.body && typeof (request.body) !== 'string' && !request.body["readable"]) { - request.body = fs.createReadStream(request.body["path"]); - } - let response = yield sendRequestInternal(request); - if (retriableStatusCodes.indexOf(response.statusCode) != -1 && ++i < retryCount) { - core.debug(util.format("Encountered a retriable status code: %s. Message: '%s'.", response.statusCode, response.statusMessage)); - yield sleepFor(timeToWait); - timeToWait = timeToWait * retryIntervalInSeconds + retryIntervalInSeconds; - continue; - } - return response; - } - catch (error) { - if (retriableErrorCodes.indexOf(error.code) != -1 && ++i < retryCount) { - core.debug(util.format("Encountered a retriable error:%s. Message: %s.", error.code, error.message)); - yield sleepFor(timeToWait); - timeToWait = timeToWait * retryIntervalInSeconds + retryIntervalInSeconds; - } - else { - if (error.code) { - core.debug("error code =" + error.code); - } - throw error; - } - } - } - }); -} -exports.sendRequest = sendRequest; -function sleepFor(sleepDurationInSeconds) { - return new Promise((resolve, reject) => { - setTimeout(resolve, sleepDurationInSeconds * 1000); - }); -} -exports.sleepFor = sleepFor; -function sendRequestInternal(request) { - return __awaiter(this, void 0, void 0, function* () { - core.debug(util.format("[%s]%s", request.method, request.uri)); - var response = yield httpCallbackClient.request(request.method, request.uri, request.body, request.headers); - return yield toWebResponse(response); - }); -} -function toWebResponse(response) { - return __awaiter(this, void 0, void 0, function* () { - var res = new WebResponse(); - if (response) { - res.statusCode = response.message.statusCode; - res.statusMessage = response.message.statusMessage; - res.headers = response.message.headers; - var body = yield response.readBody(); - if (body) { - try { - res.body = JSON.parse(body); - } - catch (error) { - core.debug("Could not parse response: " + JSON.stringify(error)); - core.debug("Response: " + JSON.stringify(res.body)); - res.body = body; - } - } - } - return res; - }); -} diff --git a/src/client.ts b/src/client.ts deleted file mode 100644 index a314d2df..00000000 --- a/src/client.ts +++ /dev/null @@ -1,103 +0,0 @@ -import util = require("util"); -import fs = require('fs'); -import httpClient = require("typed-rest-client/HttpClient"); -import * as core from '@actions/core'; - -var httpCallbackClient = new httpClient.HttpClient('GITHUB_RUNNER', null, {}); - -export class WebRequest { - public method: string; - public uri: string; - // body can be string or ReadableStream - public body: string | NodeJS.ReadableStream; - public headers: any; -} - -export class WebResponse { - public statusCode: number; - public statusMessage: string; - public headers: any; - public body: any; -} - -export class WebRequestOptions { - public retriableErrorCodes?: string[]; - public retryCount?: number; - public retryIntervalInSeconds?: number; - public retriableStatusCodes?: number[]; - public retryRequestTimedout?: boolean; -} - -export async function sendRequest(request: WebRequest, options?: WebRequestOptions): Promise { - let i = 0; - let retryCount = options && options.retryCount ? options.retryCount : 5; - let retryIntervalInSeconds = options && options.retryIntervalInSeconds ? options.retryIntervalInSeconds : 2; - let retriableErrorCodes = options && options.retriableErrorCodes ? options.retriableErrorCodes : ["ETIMEDOUT", "ECONNRESET", "ENOTFOUND", "ESOCKETTIMEDOUT", "ECONNREFUSED", "EHOSTUNREACH", "EPIPE", "EA_AGAIN"]; - let retriableStatusCodes = options && options.retriableStatusCodes ? options.retriableStatusCodes : [408, 409, 500, 502, 503, 504]; - let timeToWait: number = retryIntervalInSeconds; - while (true) { - try { - if (request.body && typeof (request.body) !== 'string' && !request.body["readable"]) { - request.body = fs.createReadStream(request.body["path"]); - } - - let response: WebResponse = await sendRequestInternal(request); - if (retriableStatusCodes.indexOf(response.statusCode) != -1 && ++i < retryCount) { - core.debug(util.format("Encountered a retriable status code: %s. Message: '%s'.", response.statusCode, response.statusMessage)); - await sleepFor(timeToWait); - timeToWait = timeToWait * retryIntervalInSeconds + retryIntervalInSeconds; - continue; - } - - return response; - } - catch (error) { - if (retriableErrorCodes.indexOf(error.code) != -1 && ++i < retryCount) { - core.debug(util.format("Encountered a retriable error:%s. Message: %s.", error.code, error.message)); - await sleepFor(timeToWait); - timeToWait = timeToWait * retryIntervalInSeconds + retryIntervalInSeconds; - } - else { - if (error.code) { - core.debug("error code =" + error.code); - } - - throw error; - } - } - } -} - -export function sleepFor(sleepDurationInSeconds: number): Promise { - return new Promise((resolve, reject) => { - setTimeout(resolve, sleepDurationInSeconds * 1000); - }); -} - -async function sendRequestInternal(request: WebRequest): Promise { - core.debug(util.format("[%s]%s", request.method, request.uri)); - var response: httpClient.HttpClientResponse = await httpCallbackClient.request(request.method, request.uri, request.body, request.headers); - return await toWebResponse(response); -} - -async function toWebResponse(response: httpClient.HttpClientResponse): Promise { - var res = new WebResponse(); - if (response) { - res.statusCode = response.message.statusCode; - res.statusMessage = response.message.statusMessage; - res.headers = response.message.headers; - var body = await response.readBody(); - if (body) { - try { - res.body = JSON.parse(body); - } - catch (error) { - core.debug("Could not parse response: " + JSON.stringify(error)); - core.debug("Response: " + JSON.stringify(res.body)); - res.body = body; - } - } - } - - return res; -} \ No newline at end of file