@eclipse-che/che-e2e 7.65.0-dev-569551e → 7.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,11 @@ export enum GitProviderType {
23
23
  BITBUCKET = 'bitbucket'
24
24
  }
25
25
 
26
+ export enum KubernetesCommandLineTool {
27
+ OC = 'oc',
28
+ KUBECTL = 'kubectl',
29
+ }
30
+
26
31
  export const TestConstants: any = {
27
32
  /**
28
33
  * Base URL of the application which should be checked
@@ -228,7 +233,15 @@ export const TestConstants: any = {
228
233
 
229
234
  TS_SELENIUM_PROJECT_ROOT_FILE_NAME: process.env.TS_SELENIUM_PROJECT_ROOT_FILE_NAME || 'devfile.yaml',
230
235
 
236
+ /* -------------------------------------------
237
+ | The api tests related constants
238
+ ----------------------------------------------*/
239
+
240
+ TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL: process.env.TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL || KubernetesCommandLineTool.OC,
241
+
231
242
  TS_API_TEST_UDI_IMAGE: process.env.TS_API_TEST_UDI_IMAGE || 'quay.io/devfile/universal-developer-image:latest',
232
243
 
233
- TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI: process.env.TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI || `https://eclipse-che.github.io/che-plugin-registry/main/v3/plugins/che-incubator/che-code/latest/devfile.yaml`
244
+ TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI: process.env.TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI || `https://eclipse-che.github.io/che-plugin-registry/main/v3/plugins/che-incubator/che-code/latest/devfile.yaml`,
245
+
246
+ TS_API_TEST_NAMESPACE: process.env.TS_API_TEST_NAMESPACE || undefined
234
247
  };
@@ -9,7 +9,7 @@
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  **********************************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.TestConstants = exports.GitProviderType = void 0;
12
+ exports.TestConstants = exports.KubernetesCommandLineTool = exports.GitProviderType = void 0;
13
13
  function getBaseUrl() {
14
14
  const baseUrl = process.env.TS_SELENIUM_BASE_URL;
15
15
  if (!baseUrl) {
@@ -23,6 +23,11 @@ var GitProviderType;
23
23
  GitProviderType["GITLAB"] = "gitlab";
24
24
  GitProviderType["BITBUCKET"] = "bitbucket";
25
25
  })(GitProviderType = exports.GitProviderType || (exports.GitProviderType = {}));
26
+ var KubernetesCommandLineTool;
27
+ (function (KubernetesCommandLineTool) {
28
+ KubernetesCommandLineTool["OC"] = "oc";
29
+ KubernetesCommandLineTool["KUBECTL"] = "kubectl";
30
+ })(KubernetesCommandLineTool = exports.KubernetesCommandLineTool || (exports.KubernetesCommandLineTool = {}));
26
31
  exports.TestConstants = {
27
32
  /**
28
33
  * Base URL of the application which should be checked
@@ -182,7 +187,12 @@ exports.TestConstants = {
182
187
  TS_SELENIUM_GIT_PROVIDER_IS_LDAP_LOGIN: process.env.TS_SELENIUM_GIT_PROVIDER_IS_LDAP_LOGIN === 'true',
183
188
  TS_SELENIUM_GIT_PROVIDER_OAUTH: process.env.TS_SELENIUM_GIT_PROVIDER_OAUTH === 'true',
184
189
  TS_SELENIUM_PROJECT_ROOT_FILE_NAME: process.env.TS_SELENIUM_PROJECT_ROOT_FILE_NAME || 'devfile.yaml',
190
+ /* -------------------------------------------
191
+ | The api tests related constants
192
+ ----------------------------------------------*/
193
+ TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL: process.env.TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL || KubernetesCommandLineTool.OC,
185
194
  TS_API_TEST_UDI_IMAGE: process.env.TS_API_TEST_UDI_IMAGE || 'quay.io/devfile/universal-developer-image:latest',
186
- TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI: process.env.TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI || `https://eclipse-che.github.io/che-plugin-registry/main/v3/plugins/che-incubator/che-code/latest/devfile.yaml`
195
+ TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI: process.env.TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI || `https://eclipse-che.github.io/che-plugin-registry/main/v3/plugins/che-incubator/che-code/latest/devfile.yaml`,
196
+ TS_API_TEST_NAMESPACE: process.env.TS_API_TEST_NAMESPACE || undefined
187
197
  };
188
198
  //# sourceMappingURL=TestConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestConstants.js","sourceRoot":"","sources":["../../constants/TestConstants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestConstants.js","sourceRoot":"","sources":["../../constants/TestConstants.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -32,10 +32,11 @@ __exportStar(require("./driver/ChromeDriver"), exports);
32
32
  __exportStar(require("./driver/IDriver"), exports);
33
33
  __exportStar(require("./utils/BrowserTabsUtil"), exports);
34
34
  __exportStar(require("./utils/DriverHelper"), exports);
35
+ __exportStar(require("./utils/KubernetesCommandLineToolsExecutor"), exports);
35
36
  __exportStar(require("./utils/Logger"), exports);
36
- __exportStar(require("./utils/OpenshiftClientExecutor"), exports);
37
37
  __exportStar(require("./utils/Sanitizer"), exports);
38
38
  __exportStar(require("./utils/ScreenCatcher"), exports);
39
+ __exportStar(require("./utils/ShellExecutor"), exports);
39
40
  __exportStar(require("./utils/request-handlers/CheApiRequestHandler"), exports);
40
41
  __exportStar(require("./utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler"), exports);
41
42
  __exportStar(require("./utils/request-handlers/headers/IAuthorizationHeaderHandler"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AACrD,0CAAe;AACxB,4DAA0C;AAC1C,4DAA0C;AAC1C,+DAA6C;AAC7C,wDAAsC;AACtC,mDAAiC;AACjC,0DAAwC;AACxC,uDAAqC;AACrC,iDAA+B;AAC/B,kEAAgD;AAChD,oDAAkC;AAClC,wDAAsC;AACtC,gFAA8D;AAC9D,0GAAwF;AACxF,+FAA6E;AAC7E,sDAAoC;AACpC,mEAAiD;AACjD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AACxD,oEAAkD;AAClD,qEAAmD;AACnD,6FAA2E;AAC3E,wEAAsD;AACtD,yEAAuD;AACvD,oEAAkD;AAClD,oEAAkD;AAClD,yEAAuD;AACvD,uEAAqD;AACrD,sEAAoD;AACpD,iFAA+D;AAC/D,uEAAqD;AACrD,uEAAqD;AACrD,6DAA2C;AAC3C,sEAAoD;AACpD,yEAAuD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AACrD,0CAAe;AACxB,4DAA0C;AAC1C,4DAA0C;AAC1C,+DAA6C;AAC7C,wDAAsC;AACtC,mDAAiC;AACjC,0DAAwC;AACxC,uDAAqC;AACrC,6EAA2D;AAC3D,iDAA+B;AAC/B,oDAAkC;AAClC,wDAAsC;AACtC,wDAAsC;AACtC,gFAA8D;AAC9D,0GAAwF;AACxF,+FAA6E;AAC7E,sDAAoC;AACpC,mEAAiD;AACjD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AACxD,oEAAkD;AAClD,qEAAmD;AACnD,6FAA2E;AAC3E,wEAAsD;AACtD,yEAAuD;AACvD,oEAAkD;AAClD,oEAAkD;AAClD,yEAAuD;AACvD,uEAAqD;AACrD,sEAAoD;AACpD,iFAA+D;AAC/D,uEAAqD;AACrD,uEAAqD;AACrD,6DAA2C;AAC3C,sEAAoD;AACpD,yEAAuD"}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const OpenshiftClientExecutor_1 = require("../../utils/OpenshiftClientExecutor");
3
+ const KubernetesCommandLineToolsExecutor_1 = require("../../utils/KubernetesCommandLineToolsExecutor");
4
4
  const chai_1 = require("chai");
5
5
  const GitUtil_1 = require("../../utils/vsc/GitUtil");
6
6
  const TestConstants_1 = require("../../constants/TestConstants");
7
7
  const gitRepository = 'https://github.com/crw-qe/web-nodejs-sample';
8
8
  suite(`Test cloning of repo "${gitRepository}" into empty workspace.`, async function () {
9
9
  // works only for root user
10
- const namespace = 'admin-devspaces';
10
+ const namespace = TestConstants_1.TestConstants.TS_API_TEST_NAMESPACE ? TestConstants_1.TestConstants.TS_API_TEST_NAMESPACE : undefined;
11
11
  const workspaceName = 'empty-' + Math.floor(Math.random() * 1000);
12
12
  const clonedProjectName = GitUtil_1.GitUtil.getProjectNameFromGitUrl(gitRepository);
13
13
  let containerWorkDir = '';
14
- const openshiftClientExecutor = new OpenshiftClientExecutor_1.OpenshiftClientExecutor(workspaceName, namespace);
15
- const containerTerminal = new OpenshiftClientExecutor_1.OpenshiftClientExecutor.ContainerTerminal(openshiftClientExecutor);
14
+ const kubernetesCommandLineToolsExecutor = new KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor(workspaceName, namespace);
15
+ const containerTerminal = new KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor.ContainerTerminal(kubernetesCommandLineToolsExecutor);
16
16
  const emptyYaml = 'apiVersion: workspace.devfile.io/v1alpha2\n' +
17
17
  'kind: DevWorkspace\n' +
18
18
  'metadata:\n' +
@@ -34,11 +34,11 @@ suite(`Test cloning of repo "${gitRepository}" into empty workspace.`, async fun
34
34
  ' - name: CODE_HOST\n' +
35
35
  ' value: 0.0.0.0';
36
36
  suiteSetup('Create empty workspace with OC client', function () {
37
- openshiftClientExecutor.loginToOcp();
38
- openshiftClientExecutor.applyAndWaitDevWorkspace(emptyYaml);
37
+ kubernetesCommandLineToolsExecutor.loginToOcp();
38
+ kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(emptyYaml);
39
39
  });
40
40
  suiteTeardown('Delete workspace', function () {
41
- openshiftClientExecutor.deleteDevWorkspace();
41
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
42
42
  });
43
43
  suite('Clone public repo without previous setup', function () {
44
44
  suiteTeardown('Delete cloned project', function () {
@@ -1 +1 @@
1
- {"version":3,"file":"CloneGitRepoAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CloneGitRepoAPI.spec.ts"],"names":[],"mappings":";;AAAA,iFAA8E;AAC9E,+BAA8B;AAE9B,qDAAkD;AAClD,iEAA8D;AAE9D,MAAM,aAAa,GAAW,6CAA6C,CAAC;AAE5E,KAAK,CAAC,yBAAyB,aAAa,yBAAyB,EAAE,KAAK;IACxE,2BAA2B;IAC3B,MAAM,SAAS,GAAW,iBAAiB,CAAC;IAC5C,MAAM,aAAa,GAAW,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,iBAAiB,GAAW,iBAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAClF,IAAI,gBAAgB,GAAW,EAAE,CAAC;IAElC,MAAM,uBAAuB,GAA4B,IAAI,iDAAuB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC/G,MAAM,iBAAiB,GAA8C,IAAI,iDAAuB,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IAE5I,MAAM,SAAS,GACX,6CAA6C;QAC7C,sBAAsB;QACtB,aAAa;QACb,WAAW,aAAa,IAAI;QAC5B,SAAS;QACT,mBAAmB;QACnB,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,oBAAoB,6BAAa,CAAC,qBAAqB,IAAI;QAC3D,2CAA2C;QAC3C,oBAAoB;QACpB,wBAAwB;QACxB,cAAc,6BAAa,CAAC,uCAAuC,IAAI;QACvE,qBAAqB;QACrB,gDAAgD;QAChD,wBAAwB;QACxB,oBAAoB;QACpB,mCAAmC;QACnC,gCAAgC,CAAC;IAErC,UAAU,CAAC,uCAAuC,EAAE;QAChD,uBAAuB,CAAC,UAAU,EAAE,CAAC;QACrC,uBAAuB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,kBAAkB,EAAE;QAC9B,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,0CAA0C,EAAE;QAC9C,aAAa,CAAC,uBAAuB,EAAE;YACnC,iBAAiB,CAAC,YAAY,CAAC,GAAG,iBAAiB,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE;YACvC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,WAAW,GAAgB,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC3E,aAAM,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE;YACjC,aAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE;YAClC,aAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,6BAAa,CAAC,kCAAkC,CAAC,CAAC;QAC/I,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"CloneGitRepoAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CloneGitRepoAPI.spec.ts"],"names":[],"mappings":";;AAAA,uGAAoG;AACpG,+BAA8B;AAE9B,qDAAkD;AAClD,iEAA8D;AAG9D,MAAM,aAAa,GAAW,6CAA6C,CAAC;AAE5E,KAAK,CAAC,yBAAyB,aAAa,yBAAyB,EAAE,KAAK;IACxE,2BAA2B;IAC3B,MAAM,SAAS,GAAW,6BAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,6BAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,MAAM,aAAa,GAAW,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,iBAAiB,GAAW,iBAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAClF,IAAI,gBAAgB,GAAW,EAAE,CAAC;IAElC,MAAM,kCAAkC,GAAuC,IAAI,uEAAkC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAChJ,MAAM,iBAAiB,GAAyD,IAAI,uEAAkC,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;IAE7K,MAAM,SAAS,GACX,6CAA6C;QAC7C,sBAAsB;QACtB,aAAa;QACb,WAAW,aAAa,IAAI;QAC5B,SAAS;QACT,mBAAmB;QACnB,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,oBAAoB,6BAAa,CAAC,qBAAqB,IAAI;QAC3D,2CAA2C;QAC3C,oBAAoB;QACpB,wBAAwB;QACxB,cAAc,6BAAa,CAAC,uCAAuC,IAAI;QACvE,qBAAqB;QACrB,gDAAgD;QAChD,wBAAwB;QACxB,oBAAoB;QACpB,mCAAmC;QACnC,gCAAgC,CAAC;IAErC,UAAU,CAAC,uCAAuC,EAAE;QAChD,kCAAkC,CAAC,UAAU,EAAE,CAAC;QAChD,kCAAkC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,kBAAkB,EAAE;QAC9B,kCAAkC,CAAC,kBAAkB,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,0CAA0C,EAAE;QAC9C,aAAa,CAAC,uBAAuB,EAAE;YACnC,iBAAiB,CAAC,YAAY,CAAC,GAAG,iBAAiB,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE;YACvC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,WAAW,GAAgB,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC3E,aAAM,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE;YACjC,aAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE;YAClC,aAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,6BAAa,CAAC,kCAAkC,CAAC,CAAC;QAC/I,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KubernetesCommandLineToolsExecutor = void 0;
4
+ const shelljs_1 = require("shelljs");
5
+ const TestConstants_1 = require("../constants/TestConstants");
6
+ const Logger_1 = require("./Logger");
7
+ const ShellExecutor_1 = require("./ShellExecutor");
8
+ class KubernetesCommandLineToolsExecutor extends ShellExecutor_1.ShellExecutor {
9
+ constructor(_workspaceName, _namespace) {
10
+ super();
11
+ this.KUBERNETES_COMMAND_LINE_TOOL = TestConstants_1.TestConstants.TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL;
12
+ this.workspaceName = _workspaceName;
13
+ this.namespace = this.setNamespace(_namespace);
14
+ }
15
+ get getWorkspaceName() {
16
+ return this.workspaceName;
17
+ }
18
+ get getNamespace() {
19
+ return this.namespace;
20
+ }
21
+ // login to Openshift cluster with username and password
22
+ loginToOcp() {
23
+ if (this.KUBERNETES_COMMAND_LINE_TOOL === TestConstants_1.KubernetesCommandLineTool.OC) {
24
+ Logger_1.Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: Login to the "OC" client`);
25
+ const url = this.getServerUrl();
26
+ Logger_1.Logger.debug(url, TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME);
27
+ shelljs_1.exec(`sleep 5
28
+ oc login --server=${url} -u=${TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME} -p=${TestConstants_1.TestConstants.TS_SELENIUM_OCP_PASSWORD} --insecure-skip-tls-verify`);
29
+ }
30
+ else {
31
+ Logger_1.Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: doesn't support login command`);
32
+ }
33
+ }
34
+ getContainerName() {
35
+ Logger_1.Logger.debug(`${this.getLoggingName(this.getContainerName.name)}: Get container name.`);
36
+ const output = this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} get ${(KubernetesCommandLineToolsExecutor.pod)} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
37
+ shelljs_1.echo('\n');
38
+ return output.stderr ? output.stderr : output.stdout;
39
+ }
40
+ getWorkspacePodName() {
41
+ Logger_1.Logger.debug(`${this.getLoggingName(this.getWorkspacePodName.name)}: Get workspace pod name.`);
42
+ const output = this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
43
+ return output.stderr ? output.stderr : output.stdout.replace('\n', '');
44
+ }
45
+ deleteDevWorkspace() {
46
+ Logger_1.Logger.debug(`${this.getLoggingName(this.deleteDevWorkspace.name)}: Delete '${this.workspaceName}' workspace`);
47
+ this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
48
+ this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} delete dw ${this.workspaceName} -n ${this.namespace} || true`);
49
+ }
50
+ applyAndWaitDevWorkspace(yamlConfiguration) {
51
+ if (this.KUBERNETES_COMMAND_LINE_TOOL === TestConstants_1.KubernetesCommandLineTool.KUBECTL) {
52
+ this.createNamespace();
53
+ }
54
+ this.applyYamlConfigurationAsStringOutput(yamlConfiguration);
55
+ const output = this.waitDevWorkspace();
56
+ KubernetesCommandLineToolsExecutor.pod = this.getWorkspacePodName();
57
+ KubernetesCommandLineToolsExecutor.container = this.getContainerName();
58
+ return output;
59
+ }
60
+ executeCommand(commandToExecute) {
61
+ Logger_1.Logger.debug(`${this.getLoggingName(this.executeCommand.name)}:`);
62
+ return this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} exec -i ${KubernetesCommandLineToolsExecutor.pod} -n ${this.namespace} -c ${KubernetesCommandLineToolsExecutor.container} -- sh -c "${commandToExecute}"`);
63
+ }
64
+ applyYamlConfigurationAsStringOutput(yamlConfiguration) {
65
+ Logger_1.Logger.debug(`${this.getLoggingName(this.applyYamlConfigurationAsStringOutput.name)}:`);
66
+ this.execWithLog(`cat <<EOF | ${this.KUBERNETES_COMMAND_LINE_TOOL} apply -n ${this.namespace} -f - \n` +
67
+ yamlConfiguration + '\n' +
68
+ 'EOF');
69
+ }
70
+ waitDevWorkspace(timeout = 360) {
71
+ Logger_1.Logger.debug(`${this.getLoggingName(this.waitDevWorkspace.name)}: Wait till workspace ready.`);
72
+ return this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} wait -n ${this.namespace} --for=condition=Ready dw ${this.workspaceName} --timeout=${timeout}s`);
73
+ }
74
+ createNamespace() {
75
+ Logger_1.Logger.debug(`${this.getLoggingName(this.createNamespace.name)}: Create namespace "${this.namespace}".`);
76
+ this.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} create namespace ${this.namespace}`);
77
+ }
78
+ getLoggingName(methodName) {
79
+ return `${this.constructor.name}.${methodName} - ${(this.KUBERNETES_COMMAND_LINE_TOOL)}`;
80
+ }
81
+ setNamespace(_namespace) {
82
+ _namespace = _namespace !== undefined ? _namespace
83
+ : TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.includes('devspaces') ? TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME + '-devspaces'
84
+ : TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.includes('che') ? TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME + '-che'
85
+ : 'default';
86
+ return _namespace;
87
+ }
88
+ getServerUrl() {
89
+ Logger_1.Logger.debug(`${this.getLoggingName(this.getServerUrl.name)}: Get server api url.`);
90
+ return TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.replace('devspaces.apps', 'api') + ':6443';
91
+ }
92
+ }
93
+ exports.KubernetesCommandLineToolsExecutor = KubernetesCommandLineToolsExecutor;
94
+ (function (KubernetesCommandLineToolsExecutor) {
95
+ class ContainerTerminal extends KubernetesCommandLineToolsExecutor {
96
+ constructor(cluster) {
97
+ super(cluster.getWorkspaceName, cluster.getNamespace);
98
+ }
99
+ ls(path = '') {
100
+ return this.executeCommand('ls ' + path);
101
+ }
102
+ pwd() {
103
+ return this.executeCommand('pwd');
104
+ }
105
+ cd(path) {
106
+ return this.executeCommand('cd ' + path);
107
+ }
108
+ gitClone(repository) {
109
+ return this.executeCommand('git clone ' + repository);
110
+ }
111
+ removeFolder(path) {
112
+ return this.executeCommand('rm -rf ' + path);
113
+ }
114
+ }
115
+ KubernetesCommandLineToolsExecutor.ContainerTerminal = ContainerTerminal;
116
+ })(KubernetesCommandLineToolsExecutor = exports.KubernetesCommandLineToolsExecutor || (exports.KubernetesCommandLineToolsExecutor = {}));
117
+ //# sourceMappingURL=KubernetesCommandLineToolsExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KubernetesCommandLineToolsExecutor.js","sourceRoot":"","sources":["../../utils/KubernetesCommandLineToolsExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShellExecutor = void 0;
4
+ const shelljs_1 = require("shelljs");
5
+ class ShellExecutor {
6
+ execWithLog(command) {
7
+ shelljs_1.echo(command);
8
+ return shelljs_1.exec(command);
9
+ }
10
+ }
11
+ exports.ShellExecutor = ShellExecutor;
12
+ //# sourceMappingURL=ShellExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShellExecutor.js","sourceRoot":"","sources":["../../utils/ShellExecutor.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAElD,MAAa,aAAa;IAEZ,WAAW,CAAC,OAAe;QACjC,cAAI,CAAC,OAAO,CAAC,CAAC;QACd,OAAO,cAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACJ;AAND,sCAMC"}
package/index.ts CHANGED
@@ -7,10 +7,11 @@ export * from './driver/ChromeDriver';
7
7
  export * from './driver/IDriver';
8
8
  export * from './utils/BrowserTabsUtil';
9
9
  export * from './utils/DriverHelper';
10
+ export * from './utils/KubernetesCommandLineToolsExecutor';
10
11
  export * from './utils/Logger';
11
- export * from './utils/OpenshiftClientExecutor';
12
12
  export * from './utils/Sanitizer';
13
13
  export * from './utils/ScreenCatcher';
14
+ export * from './utils/ShellExecutor';
14
15
  export * from './utils/request-handlers/CheApiRequestHandler';
15
16
  export * from './utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler';
16
17
  export * from './utils/request-handlers/headers/IAuthorizationHeaderHandler';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.65.0-dev-569551e",
3
+ "version": "7.65.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,20 +1,21 @@
1
- import { OpenshiftClientExecutor } from '../../utils/OpenshiftClientExecutor';
1
+ import { KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
2
2
  import { expect } from 'chai';
3
3
  import { ShellString } from 'shelljs';
4
4
  import { GitUtil } from '../../utils/vsc/GitUtil';
5
5
  import { TestConstants } from '../../constants/TestConstants';
6
6
 
7
+
7
8
  const gitRepository: string = 'https://github.com/crw-qe/web-nodejs-sample';
8
9
 
9
10
  suite(`Test cloning of repo "${gitRepository}" into empty workspace.`, async function (): Promise<void> {
10
11
  // works only for root user
11
- const namespace: string = 'admin-devspaces';
12
+ const namespace: string = TestConstants.TS_API_TEST_NAMESPACE ? TestConstants.TS_API_TEST_NAMESPACE : undefined;
12
13
  const workspaceName: string = 'empty-' + Math.floor(Math.random() * 1000);
13
14
  const clonedProjectName: string = GitUtil.getProjectNameFromGitUrl(gitRepository);
14
15
  let containerWorkDir: string = '';
15
16
 
16
- const openshiftClientExecutor: OpenshiftClientExecutor = new OpenshiftClientExecutor(workspaceName, namespace);
17
- const containerTerminal: OpenshiftClientExecutor.ContainerTerminal = new OpenshiftClientExecutor.ContainerTerminal(openshiftClientExecutor);
17
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = new KubernetesCommandLineToolsExecutor(workspaceName, namespace);
18
+ const containerTerminal: KubernetesCommandLineToolsExecutor.ContainerTerminal = new KubernetesCommandLineToolsExecutor.ContainerTerminal(kubernetesCommandLineToolsExecutor);
18
19
 
19
20
  const emptyYaml: string =
20
21
  'apiVersion: workspace.devfile.io/v1alpha2\n' +
@@ -39,12 +40,12 @@ suite(`Test cloning of repo "${gitRepository}" into empty workspace.`, async fun
39
40
  ' value: 0.0.0.0';
40
41
 
41
42
  suiteSetup('Create empty workspace with OC client', function (): void {
42
- openshiftClientExecutor.loginToOcp();
43
- openshiftClientExecutor.applyAndWaitDevWorkspace(emptyYaml);
43
+ kubernetesCommandLineToolsExecutor.loginToOcp();
44
+ kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(emptyYaml);
44
45
  });
45
46
 
46
47
  suiteTeardown('Delete workspace', function (): void {
47
- openshiftClientExecutor.deleteDevWorkspace();
48
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
48
49
  });
49
50
 
50
51
  suite('Clone public repo without previous setup', function (): void {
@@ -0,0 +1,136 @@
1
+ import { echo, exec, ShellString } from 'shelljs';
2
+ import { KubernetesCommandLineTool, TestConstants } from '../constants/TestConstants';
3
+ import { Logger } from './Logger';
4
+ import { ShellExecutor } from './ShellExecutor';
5
+
6
+ export class KubernetesCommandLineToolsExecutor extends ShellExecutor {
7
+ private static container: string;
8
+ private static pod: string;
9
+ private readonly namespace: string;
10
+ private readonly workspaceName: string | undefined;
11
+ private readonly KUBERNETES_COMMAND_LINE_TOOL: string = TestConstants.TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL;
12
+
13
+ constructor(_workspaceName?: string, _namespace?: string) {
14
+ super();
15
+ this.workspaceName = _workspaceName;
16
+ this.namespace = this.setNamespace(_namespace);
17
+ }
18
+
19
+ get getWorkspaceName(): string {
20
+ return <string>this.workspaceName;
21
+ }
22
+
23
+ get getNamespace(): string {
24
+ return this.namespace;
25
+ }
26
+
27
+ // login to Openshift cluster with username and password
28
+ loginToOcp(): void {
29
+ if (this.KUBERNETES_COMMAND_LINE_TOOL === KubernetesCommandLineTool.OC) {
30
+ Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: Login to the "OC" client`);
31
+ const url: string = this.getServerUrl();
32
+ Logger.debug(url, TestConstants.TS_SELENIUM_OCP_USERNAME);
33
+ exec(`sleep 5
34
+ oc login --server=${url} -u=${TestConstants.TS_SELENIUM_OCP_USERNAME} -p=${TestConstants.TS_SELENIUM_OCP_PASSWORD} --insecure-skip-tls-verify`);
35
+ } else {
36
+ Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: doesn't support login command`);
37
+ }
38
+ }
39
+
40
+ getContainerName(): string {
41
+ Logger.debug(`${this.getLoggingName(this.getContainerName.name)}: Get container name.`);
42
+ const output: ShellString = this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} get ${(KubernetesCommandLineToolsExecutor.pod)} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
43
+ echo('\n');
44
+ return output.stderr ? output.stderr : output.stdout;
45
+ }
46
+
47
+ getWorkspacePodName(): string {
48
+ Logger.debug(`${this.getLoggingName(this.getWorkspacePodName.name)}: Get workspace pod name.`);
49
+ const output: ShellString = this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
50
+ return output.stderr ? output.stderr : output.stdout.replace('\n', '');
51
+ }
52
+
53
+ deleteDevWorkspace(): void {
54
+ Logger.debug(`${this.getLoggingName(this.deleteDevWorkspace.name)}: Delete '${this.workspaceName}' workspace`);
55
+ this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
56
+ this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} delete dw ${this.workspaceName} -n ${this.namespace} || true`);
57
+ }
58
+
59
+ applyAndWaitDevWorkspace(yamlConfiguration: string): ShellString {
60
+ if (this.KUBERNETES_COMMAND_LINE_TOOL === KubernetesCommandLineTool.KUBECTL) {
61
+ this.createNamespace();
62
+ }
63
+ this.applyYamlConfigurationAsStringOutput(yamlConfiguration);
64
+ const output: ShellString = this.waitDevWorkspace();
65
+ KubernetesCommandLineToolsExecutor.pod = this.getWorkspacePodName();
66
+ KubernetesCommandLineToolsExecutor.container = this.getContainerName();
67
+ return output;
68
+ }
69
+
70
+ executeCommand(commandToExecute: string): ShellString {
71
+ Logger.debug(`${this.getLoggingName(this.executeCommand.name)}:`);
72
+ return this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} exec -i ${KubernetesCommandLineToolsExecutor.pod} -n ${this.namespace} -c ${KubernetesCommandLineToolsExecutor.container} -- sh -c "${commandToExecute}"`);
73
+ }
74
+
75
+ applyYamlConfigurationAsStringOutput(yamlConfiguration: string): void {
76
+ Logger.debug(`${this.getLoggingName(this.applyYamlConfigurationAsStringOutput.name)}:`);
77
+ this.execWithLog(`cat <<EOF | ${this.KUBERNETES_COMMAND_LINE_TOOL} apply -n ${this.namespace} -f - \n` +
78
+ yamlConfiguration + '\n' +
79
+ 'EOF');
80
+ }
81
+
82
+ waitDevWorkspace(timeout: number = 360): ShellString {
83
+ Logger.debug(`${this.getLoggingName(this.waitDevWorkspace.name)}: Wait till workspace ready.`);
84
+ return this.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} wait -n ${this.namespace} --for=condition=Ready dw ${this.workspaceName} --timeout=${timeout}s`);
85
+ }
86
+
87
+ createNamespace(): void {
88
+ Logger.debug(`${this.getLoggingName(this.createNamespace.name)}: Create namespace "${this.namespace}".`);
89
+ this.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} create namespace ${this.namespace}`);
90
+ }
91
+
92
+ private getLoggingName(methodName: string): string {
93
+ return `${this.constructor.name}.${methodName} - ${(this.KUBERNETES_COMMAND_LINE_TOOL)}`;
94
+ }
95
+
96
+ private setNamespace(_namespace: string | undefined): string {
97
+ _namespace = _namespace !== undefined ? _namespace
98
+ : TestConstants.TS_SELENIUM_BASE_URL.includes('devspaces') ? TestConstants.TS_SELENIUM_OCP_USERNAME + '-devspaces'
99
+ : TestConstants.TS_SELENIUM_BASE_URL.includes('che') ? TestConstants.TS_SELENIUM_OCP_USERNAME + '-che'
100
+ : 'default';
101
+ return _namespace;
102
+ }
103
+
104
+ private getServerUrl(): string {
105
+ Logger.debug(`${this.getLoggingName(this.getServerUrl.name)}: Get server api url.`);
106
+ return TestConstants.TS_SELENIUM_BASE_URL.replace('devspaces.apps', 'api') + ':6443';
107
+ }
108
+ }
109
+
110
+ export namespace KubernetesCommandLineToolsExecutor {
111
+ export class ContainerTerminal extends KubernetesCommandLineToolsExecutor {
112
+ constructor(cluster: KubernetesCommandLineToolsExecutor) {
113
+ super(cluster.getWorkspaceName, cluster.getNamespace);
114
+ }
115
+
116
+ ls(path: string = ''): ShellString {
117
+ return this.executeCommand('ls ' + path);
118
+ }
119
+
120
+ pwd(): ShellString {
121
+ return this.executeCommand('pwd');
122
+ }
123
+
124
+ cd(path: string): ShellString {
125
+ return this.executeCommand('cd ' + path);
126
+ }
127
+
128
+ gitClone(repository: string): ShellString {
129
+ return this.executeCommand('git clone ' + repository);
130
+ }
131
+
132
+ removeFolder(path: string): ShellString {
133
+ return this.executeCommand('rm -rf ' + path);
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,9 @@
1
+ import { echo, exec, ShellString } from 'shelljs';
2
+
3
+ export class ShellExecutor {
4
+
5
+ protected execWithLog(command: string): ShellString {
6
+ echo(command);
7
+ return exec(command);
8
+ }
9
+ }
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenshiftClientExecutor = void 0;
4
- const shelljs_1 = require("shelljs");
5
- const TestConstants_1 = require("../constants/TestConstants");
6
- const Logger_1 = require("./Logger");
7
- class OpenshiftClientExecutor {
8
- constructor(_workspaceName, _namespace) {
9
- this.workspaceName = _workspaceName;
10
- this.namespace = this.setNamespace(_namespace);
11
- }
12
- get getWorkspaceName() {
13
- return this.workspaceName;
14
- }
15
- get getNamespace() {
16
- return this.namespace;
17
- }
18
- loginToOcp() {
19
- Logger_1.Logger.debug('OpenshiftClientExecutor.loginToOcp: Login to the \'OC\' client');
20
- const url = this.getServerUrl();
21
- Logger_1.Logger.debug(url, TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME);
22
- shelljs_1.exec(`sleep 5
23
- oc login --server=${url} -u=${TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME} -p=${TestConstants_1.TestConstants.TS_SELENIUM_OCP_PASSWORD} --insecure-skip-tls-verify`);
24
- }
25
- getContainerName() {
26
- Logger_1.Logger.debug(`OpenshiftClientExecutor.getContainerName: Get container name.`);
27
- const output = this.execWithLog(`oc get ${(OpenshiftClientExecutor.pod)} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
28
- shelljs_1.echo('\n');
29
- return output.stderr ? output.stderr : output.stdout;
30
- }
31
- getWorkspacePodName() {
32
- Logger_1.Logger.debug('OpenshiftClientExecutor.getWorkspacePodName: Get workspace pod name.');
33
- const output = this.execWithLog(`oc get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
34
- return output.stderr ? output.stderr : output.stdout.replace('\n', '');
35
- }
36
- deleteDevWorkspace() {
37
- Logger_1.Logger.debug(`OpenshiftClientExecutor.deleteWorkspace: Delete '${this.workspaceName}' workspace`);
38
- this.execWithLog(`oc patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
39
- this.execWithLog(`oc delete dw ${this.workspaceName} -n ${this.namespace} || true`);
40
- }
41
- applyAndWaitDevWorkspace(yamlConfiguration) {
42
- this.apply(yamlConfiguration);
43
- const output = this.waitDevWorkspace();
44
- OpenshiftClientExecutor.pod = this.getWorkspacePodName();
45
- OpenshiftClientExecutor.container = this.getContainerName();
46
- return output;
47
- }
48
- executeCommand(commandToExecute) {
49
- Logger_1.Logger.debug('OpenshiftClientExecutor.executeCommand');
50
- return this.execWithLog(`oc exec -i ${OpenshiftClientExecutor.pod} -n ${this.namespace} -c ${OpenshiftClientExecutor.container} -- sh -c "${commandToExecute}"`);
51
- }
52
- apply(yamlConfiguration) {
53
- Logger_1.Logger.debug('OpenshiftClientExecutor.apply:');
54
- this.execWithLog('cat <<EOF | oc apply -n ' + this.namespace + ' -f - \n' +
55
- yamlConfiguration + '\n' +
56
- 'EOF');
57
- }
58
- waitDevWorkspace(timeout = 360) {
59
- Logger_1.Logger.debug('OpenshiftClientExecutor.wait: Wait till workspace ready.');
60
- return this.execWithLog(`oc wait -n ${this.namespace} --for=condition=Ready dw ${this.workspaceName} --timeout=${timeout}s`);
61
- }
62
- setNamespace(_namespace) {
63
- return _namespace !== undefined ? _namespace : TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME + '-devspaces';
64
- }
65
- getServerUrl() {
66
- Logger_1.Logger.debug('OpenshiftClientExecutor.getServerUrl: Get server api url.');
67
- return TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.replace('devspaces.apps', 'api') + ':6443';
68
- }
69
- execWithLog(command) {
70
- shelljs_1.echo(command);
71
- return shelljs_1.exec(command);
72
- }
73
- }
74
- exports.OpenshiftClientExecutor = OpenshiftClientExecutor;
75
- (function (OpenshiftClientExecutor) {
76
- class ContainerTerminal extends OpenshiftClientExecutor {
77
- constructor(cluster) {
78
- super(cluster.getWorkspaceName, cluster.getNamespace);
79
- }
80
- ls(path = '') {
81
- return this.executeCommand('ls ' + path);
82
- }
83
- pwd() {
84
- return this.executeCommand('pwd');
85
- }
86
- cd(path) {
87
- return this.executeCommand('cd ' + path);
88
- }
89
- gitClone(repository) {
90
- return this.executeCommand('git clone ' + repository);
91
- }
92
- removeFolder(path) {
93
- return this.executeCommand('rm -rf ' + path);
94
- }
95
- }
96
- OpenshiftClientExecutor.ContainerTerminal = ContainerTerminal;
97
- })(OpenshiftClientExecutor = exports.OpenshiftClientExecutor || (exports.OpenshiftClientExecutor = {}));
98
- //# sourceMappingURL=OpenshiftClientExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OpenshiftClientExecutor.js","sourceRoot":"","sources":["../../utils/OpenshiftClientExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,117 +0,0 @@
1
- import { echo, exec, ShellString } from 'shelljs';
2
- import { TestConstants } from '../constants/TestConstants';
3
- import { Logger } from './Logger';
4
-
5
- export class OpenshiftClientExecutor {
6
- protected static container: string;
7
- protected static pod: string | undefined;
8
- protected workspaceName: string | undefined;
9
- protected namespace: string;
10
-
11
- constructor(_workspaceName?: string, _namespace?: string) {
12
- this.workspaceName = _workspaceName;
13
- this.namespace = this.setNamespace(_namespace);
14
- }
15
-
16
- get getWorkspaceName(): string {
17
- return <string>this.workspaceName;
18
- }
19
-
20
- get getNamespace(): string {
21
- return this.namespace;
22
- }
23
-
24
- loginToOcp(): void {
25
- Logger.debug('OpenshiftClientExecutor.loginToOcp: Login to the \'OC\' client');
26
- const url: string = this.getServerUrl();
27
- Logger.debug(url, TestConstants.TS_SELENIUM_OCP_USERNAME);
28
- exec(`sleep 5
29
- oc login --server=${url} -u=${TestConstants.TS_SELENIUM_OCP_USERNAME} -p=${TestConstants.TS_SELENIUM_OCP_PASSWORD} --insecure-skip-tls-verify`);
30
- }
31
-
32
- getContainerName(): string {
33
- Logger.debug(`OpenshiftClientExecutor.getContainerName: Get container name.`);
34
- const output: ShellString = this.execWithLog(`oc get ${(OpenshiftClientExecutor.pod)} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
35
- echo('\n');
36
- return output.stderr ? output.stderr : output.stdout;
37
- }
38
-
39
- getWorkspacePodName(): string {
40
- Logger.debug('OpenshiftClientExecutor.getWorkspacePodName: Get workspace pod name.');
41
- const output: ShellString = this.execWithLog(`oc get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
42
- return output.stderr ? output.stderr : output.stdout.replace('\n', '');
43
- }
44
-
45
- deleteDevWorkspace(): void {
46
- Logger.debug(`OpenshiftClientExecutor.deleteWorkspace: Delete '${this.workspaceName}' workspace`);
47
- this.execWithLog(`oc patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
48
- this.execWithLog(`oc delete dw ${this.workspaceName} -n ${this.namespace} || true`);
49
- }
50
-
51
- applyAndWaitDevWorkspace(yamlConfiguration: string): ShellString {
52
- this.apply(yamlConfiguration);
53
- const output: ShellString = this.waitDevWorkspace();
54
- OpenshiftClientExecutor.pod = this.getWorkspacePodName();
55
- OpenshiftClientExecutor.container = this.getContainerName();
56
- return output;
57
- }
58
-
59
- executeCommand(commandToExecute: string): ShellString {
60
- Logger.debug('OpenshiftClientExecutor.executeCommand');
61
- return this.execWithLog(`oc exec -i ${OpenshiftClientExecutor.pod} -n ${this.namespace} -c ${OpenshiftClientExecutor.container} -- sh -c "${commandToExecute}"`);
62
- }
63
-
64
- apply(yamlConfiguration: string): void {
65
- Logger.debug('OpenshiftClientExecutor.apply:');
66
- this.execWithLog('cat <<EOF | oc apply -n ' + this.namespace + ' -f - \n' +
67
- yamlConfiguration + '\n' +
68
- 'EOF');
69
- }
70
-
71
- waitDevWorkspace(timeout: number = 360): ShellString {
72
- Logger.debug('OpenshiftClientExecutor.wait: Wait till workspace ready.');
73
- return this.execWithLog(`oc wait -n ${this.namespace} --for=condition=Ready dw ${this.workspaceName} --timeout=${timeout}s`);
74
- }
75
-
76
- private setNamespace(_namespace: string | undefined): string {
77
- return _namespace !== undefined ? _namespace : TestConstants.TS_SELENIUM_OCP_USERNAME + '-devspaces';
78
- }
79
-
80
- private getServerUrl(): string {
81
- Logger.debug('OpenshiftClientExecutor.getServerUrl: Get server api url.');
82
- return TestConstants.TS_SELENIUM_BASE_URL.replace('devspaces.apps', 'api') + ':6443';
83
- }
84
-
85
- private execWithLog(command: string): ShellString {
86
- echo(command);
87
- return exec(command);
88
- }
89
- }
90
-
91
- export namespace OpenshiftClientExecutor {
92
- export class ContainerTerminal extends OpenshiftClientExecutor {
93
- constructor(cluster: OpenshiftClientExecutor) {
94
- super(cluster.getWorkspaceName, cluster.getNamespace);
95
- }
96
-
97
- ls(path: string = ''): ShellString {
98
- return this.executeCommand('ls ' + path);
99
- }
100
-
101
- pwd(): ShellString {
102
- return this.executeCommand('pwd');
103
- }
104
-
105
- cd(path: string): ShellString {
106
- return this.executeCommand('cd ' + path);
107
- }
108
-
109
- gitClone(repository: string): ShellString {
110
- return this.executeCommand('git clone ' + repository);
111
- }
112
-
113
- removeFolder(path: string): ShellString {
114
- return this.executeCommand('rm -rf ' + path);
115
- }
116
- }
117
- }