@eclipse-che/che-e2e 7.98.0-next-5eb56bf → 7.98.0-next-04d0b55

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.
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /** *******************************************************************
7
+ * copyright (c) 2024 Red Hat, Inc.
8
+ *
9
+ * This program and the accompanying materials are made
10
+ * available under the terms of the Eclipse Public License 2.0
11
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
12
+ *
13
+ * SPDX-License-Identifier: EPL-2.0
14
+ **********************************************************************/
15
+ const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
16
+ const inversify_config_1 = require("../../configs/inversify.config");
17
+ const inversify_types_1 = require("../../configs/inversify.types");
18
+ const DevWorkspaceConfigurationHelper_1 = require("../../utils/DevWorkspaceConfigurationHelper");
19
+ const chai_1 = require("chai");
20
+ const API_TEST_CONSTANTS_1 = require("../../constants/API_TEST_CONSTANTS");
21
+ const yaml_1 = __importDefault(require("yaml"));
22
+ const Logger_1 = require("../../utils/Logger");
23
+ const crypto_1 = __importDefault(require("crypto"));
24
+ suite('JBoss EAP devfile API test', function () {
25
+ const devfilesRegistryHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DevfilesRegistryHelper);
26
+ const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
27
+ const devfileID = 'java-jboss-eap';
28
+ const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
29
+ let devWorkspaceConfigurationHelper;
30
+ let devfileContext;
31
+ let devfileContent = '';
32
+ let devfileName = '';
33
+ suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
+ kubernetesCommandLineToolsExecutor.loginToOcp();
35
+ });
36
+ test(`Create ${devfileID} workspace`, async function () {
37
+ const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
+ kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
39
+ devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
+ const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
+ devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
+ const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
+ kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
+ devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
+ editorContent: editorDevfileContent,
46
+ devfileContent: devfileContent
47
+ });
48
+ devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
+ if (devfileContext.devWorkspace.metadata) {
50
+ devfileContext.devWorkspace.metadata.name = uniqueName;
51
+ }
52
+ const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
+ const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
+ (0, chai_1.expect)(output.stdout).contains('condition met');
55
+ });
56
+ test('Check "package" command', function () {
57
+ const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
58
+ if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
59
+ Logger_1.Logger.info('Test cluster is disconnected. Init Java Truststore...');
60
+ const initJavaTruststoreCommand = 'cp /home/user/init-java-truststore.sh /tmp && chmod +x /tmp/init-java-truststore.sh && /tmp/init-java-truststore.sh';
61
+ const output = containerTerminal.execInContainerCommand(initJavaTruststoreCommand, containerName);
62
+ (0, chai_1.expect)(output.code).eqls(0);
63
+ }
64
+ const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
65
+ const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
66
+ Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
67
+ Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
68
+ let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
69
+ if (workdir !== undefined && workdir !== '') {
70
+ runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
71
+ }
72
+ const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
73
+ (0, chai_1.expect)(output.code).eqls(0);
74
+ const outputText = output.stdout.trim();
75
+ (0, chai_1.expect)(outputText).contains('BUILD SUCCESS');
76
+ });
77
+ test('Check "run" command', function () {
78
+ const workdir = yaml_1.default.parse(devfileContent).commands[1].exec.workingDir;
79
+ const commandLine = yaml_1.default.parse(devfileContent).commands[1].exec.commandLine;
80
+ const containerName = yaml_1.default.parse(devfileContent).commands[1].exec.component;
81
+ Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
82
+ Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
83
+ let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
84
+ if (workdir !== undefined && workdir !== '') {
85
+ runCommandInBash = `cd ${workdir} && sh -c "(` + runCommandInBash + ' > command.log 2>&1 &) && sleep 15s && exit"';
86
+ }
87
+ let commandOutput = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
88
+ (0, chai_1.expect)(commandOutput.code).eqls(0);
89
+ commandOutput = containerTerminal.execInContainerCommand(`cat ${workdir}/command.log`, containerName);
90
+ const commandLog = commandOutput.stdout.trim();
91
+ (0, chai_1.expect)(commandLog).contains('Server configuration file in use: standalone.xml');
92
+ });
93
+ test('Check "shutdown" command', function () {
94
+ const workdir = yaml_1.default.parse(devfileContent).commands[3].exec.workingDir;
95
+ const commandLine = yaml_1.default.parse(devfileContent).commands[3].exec.commandLine;
96
+ const containerName = yaml_1.default.parse(devfileContent).commands[3].exec.component;
97
+ Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
98
+ Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
99
+ let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
100
+ if (workdir !== undefined && workdir !== '') {
101
+ runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
102
+ }
103
+ const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
104
+ (0, chai_1.expect)(output.code).eqls(0);
105
+ });
106
+ test('Check "debug" command', function () {
107
+ const workdir = yaml_1.default.parse(devfileContent).commands[2].exec.workingDir;
108
+ const commandLine = yaml_1.default.parse(devfileContent).commands[2].exec.commandLine;
109
+ const containerName = yaml_1.default.parse(devfileContent).commands[2].exec.component;
110
+ Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
111
+ Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
112
+ let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
113
+ if (workdir !== undefined && workdir !== '') {
114
+ runCommandInBash = `cd ${workdir} && sh -c "(` + runCommandInBash + ' > command.log 2>&1 &) && sleep 15s && exit"';
115
+ }
116
+ let commandOutput = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
117
+ (0, chai_1.expect)(commandOutput.code).eqls(0);
118
+ commandOutput = containerTerminal.execInContainerCommand(`cat ${workdir}/command.log`, containerName);
119
+ const commandLog = commandOutput.stdout.trim();
120
+ (0, chai_1.expect)(commandLog).contains('Listening for transport dt_socket at address: 5005');
121
+ (0, chai_1.expect)(commandLog).contains('Server configuration file in use: standalone.xml');
122
+ });
123
+ suiteTeardown('Delete workspace', function () {
124
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
125
+ });
126
+ });
127
+ //# sourceMappingURL=JBossEapDevFileAPI.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JBossEapDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/JBossEapDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /** *******************************************************************
7
+ * copyright (c) 2024 Red Hat, Inc.
8
+ *
9
+ * This program and the accompanying materials are made
10
+ * available under the terms of the Eclipse Public License 2.0
11
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
12
+ *
13
+ * SPDX-License-Identifier: EPL-2.0
14
+ **********************************************************************/
15
+ const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
16
+ const inversify_config_1 = require("../../configs/inversify.config");
17
+ const inversify_types_1 = require("../../configs/inversify.types");
18
+ const DevWorkspaceConfigurationHelper_1 = require("../../utils/DevWorkspaceConfigurationHelper");
19
+ const chai_1 = require("chai");
20
+ const API_TEST_CONSTANTS_1 = require("../../constants/API_TEST_CONSTANTS");
21
+ const yaml_1 = __importDefault(require("yaml"));
22
+ const Logger_1 = require("../../utils/Logger");
23
+ const crypto_1 = __importDefault(require("crypto"));
24
+ suite('NodeJS MongoDB devfile API test', function () {
25
+ const devfilesRegistryHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DevfilesRegistryHelper);
26
+ const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
27
+ const devfileID = 'nodejs-mongodb';
28
+ const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
29
+ let devWorkspaceConfigurationHelper;
30
+ let devfileContext;
31
+ let devfileContent = '';
32
+ let devfileName = '';
33
+ suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
+ kubernetesCommandLineToolsExecutor.loginToOcp();
35
+ });
36
+ test(`Create ${devfileID} workspace`, async function () {
37
+ const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
+ kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
39
+ devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
+ const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
+ devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
+ const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
+ kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
+ devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
+ editorContent: editorDevfileContent,
46
+ devfileContent: devfileContent
47
+ });
48
+ devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
+ if (devfileContext.devWorkspace.metadata) {
50
+ devfileContext.devWorkspace.metadata.name = uniqueName;
51
+ }
52
+ const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
+ const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
+ (0, chai_1.expect)(output.stdout).contains('condition met');
55
+ });
56
+ test('Check "Run the application" command', function () {
57
+ const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
58
+ if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
59
+ Logger_1.Logger.info('Test cluster is disconnected. Ignore Self-Signed Certificate error.');
60
+ const ignoreSelfSignedCertificateErrorCommand = 'npm config set strict-ssl false';
61
+ const output = containerTerminal.execInContainerCommand(ignoreSelfSignedCertificateErrorCommand, containerName);
62
+ (0, chai_1.expect)(output.code).eqls(0);
63
+ }
64
+ const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
65
+ const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
66
+ Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
67
+ Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
68
+ let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
69
+ if (workdir !== undefined && workdir !== '') {
70
+ runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
71
+ }
72
+ const output = containerTerminal.execInContainerCommandWithTimeout(runCommandInBash, containerName);
73
+ (0, chai_1.expect)(output.code).eqls(124);
74
+ const outputText = output.stdout.trim();
75
+ (0, chai_1.expect)(outputText).contains('App listening on port 8080');
76
+ });
77
+ suiteTeardown('Delete workspace', function () {
78
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
79
+ });
80
+ });
81
+ //# sourceMappingURL=NodeJSMongoDBDevFileAPI.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeJSMongoDBDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/NodeJSMongoDBDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ const BASE_TEST_CONSTANTS_1 = require("../constants/BASE_TEST_CONSTANTS");
55
55
  const OAUTH_CONSTANTS_1 = require("../constants/OAUTH_CONSTANTS");
56
56
  const inversify_1 = require("inversify");
57
57
  const inversify_types_1 = require("../configs/inversify.types");
58
+ const fs = __importStar(require("fs"));
58
59
  let KubernetesCommandLineToolsExecutor = KubernetesCommandLineToolsExecutor_1 = class KubernetesCommandLineToolsExecutor {
59
60
  constructor(shellExecutor) {
60
61
  this.shellExecutor = shellExecutor;
@@ -136,11 +137,19 @@ let KubernetesCommandLineToolsExecutor = KubernetesCommandLineToolsExecutor_1 =
136
137
  }
137
138
  execInContainerCommand(commandToExecute, container = KubernetesCommandLineToolsExecutor_1.container) {
138
139
  Logger_1.Logger.debug(`${this.kubernetesCommandLineTool}`);
139
- return this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} exec -i ${KubernetesCommandLineToolsExecutor_1.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`);
140
+ return this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} exec -i -t ${KubernetesCommandLineToolsExecutor_1.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`);
141
+ }
142
+ execInContainerCommandWithTimeout(commandToExecute, container = KubernetesCommandLineToolsExecutor_1.container, timeout = '20') {
143
+ Logger_1.Logger.debug(`${this.kubernetesCommandLineTool}`);
144
+ return this.shellExecutor.executeCommand(` timeout ${timeout} ${this.kubernetesCommandLineTool} exec -i ${KubernetesCommandLineToolsExecutor_1.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`);
140
145
  }
141
146
  applyYamlConfigurationAsStringOutput(yamlConfiguration) {
142
147
  Logger_1.Logger.debug(`${this.kubernetesCommandLineTool}`);
143
- return this.shellExecutor.executeCommand(`cat <<EOF | ${this.kubernetesCommandLineTool} apply -n ${this.namespace} -f - \n` + yamlConfiguration + '\n' + 'EOF');
148
+ // write yaml configuration to the devfile file
149
+ const randomSuffix = Math.floor(Math.random() * 10000);
150
+ const devfileYamlPath = `/tmp/devfile-${randomSuffix}.yaml`;
151
+ fs.writeFileSync(devfileYamlPath, yamlConfiguration);
152
+ return this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} apply -n ${this.namespace} -f ${devfileYamlPath} && rm -f ${devfileYamlPath}`);
144
153
  }
145
154
  applyWithoutNamespace(yamlConfiguration) {
146
155
  Logger_1.Logger.debug(`${this.kubernetesCommandLineTool}`);
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesCommandLineToolsExecutor.js","sourceRoot":"","sources":["../../utils/KubernetesCommandLineToolsExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesCommandLineToolsExecutor.js","sourceRoot":"","sources":["../../utils/KubernetesCommandLineToolsExecutor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.98.0-next-5eb56bf",
3
+ "version": "7.98.0-next-04d0b55",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,153 @@
1
+ /** *******************************************************************
2
+ * copyright (c) 2024 Red Hat, Inc.
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ **********************************************************************/
10
+ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
11
+ import { e2eContainer } from '../../configs/inversify.config';
12
+ import { CLASSES } from '../../configs/inversify.types';
13
+ import { DevfilesHelper } from '../../utils/DevfilesHelper';
14
+ import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
15
+ import { DevWorkspaceConfigurationHelper } from '../../utils/DevWorkspaceConfigurationHelper';
16
+ import { DevfileContext } from '@eclipse-che/che-devworkspace-generator/lib/api/devfile-context';
17
+ import { ShellString } from 'shelljs';
18
+ import { expect } from 'chai';
19
+ import { API_TEST_CONSTANTS } from '../../constants/API_TEST_CONSTANTS';
20
+ import YAML from 'yaml';
21
+ import { Logger } from '../../utils/Logger';
22
+ import crypto from 'crypto';
23
+
24
+ suite('JBoss EAP devfile API test', function (): void {
25
+ const devfilesRegistryHelper: DevfilesHelper = e2eContainer.get(CLASSES.DevfilesRegistryHelper);
26
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
27
+ CLASSES.KubernetesCommandLineToolsExecutor
28
+ );
29
+ const devfileID: string = 'java-jboss-eap';
30
+ const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
31
+ let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
32
+ let devfileContext: DevfileContext;
33
+ let devfileContent: string = '';
34
+ let devfileName: string = '';
35
+
36
+ suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
37
+ kubernetesCommandLineToolsExecutor.loginToOcp();
38
+ });
39
+
40
+ test(`Create ${devfileID} workspace`, async function (): Promise<void> {
41
+ const randomPref: string = crypto.randomBytes(4).toString('hex');
42
+ kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
43
+ devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
44
+ const editorDevfileContent: string = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
45
+ devfileName = YAML.parse(devfileContent).metadata.name;
46
+ const uniqueName: string = YAML.parse(devfileContent).metadata.name + randomPref;
47
+ kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
48
+
49
+ devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper({
50
+ editorContent: editorDevfileContent,
51
+ devfileContent: devfileContent
52
+ });
53
+ devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
54
+ if (devfileContext.devWorkspace.metadata) {
55
+ devfileContext.devWorkspace.metadata.name = uniqueName;
56
+ }
57
+ const devWorkspaceConfigurationYamlString: string =
58
+ devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
59
+ const output: ShellString = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
60
+ expect(output.stdout).contains('condition met');
61
+ });
62
+
63
+ test('Check "package" command', function (): void {
64
+ const containerName: string = YAML.parse(devfileContent).commands[0].exec.component;
65
+
66
+ if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
67
+ Logger.info('Test cluster is disconnected. Init Java Truststore...');
68
+ const initJavaTruststoreCommand: string =
69
+ 'cp /home/user/init-java-truststore.sh /tmp && chmod +x /tmp/init-java-truststore.sh && /tmp/init-java-truststore.sh';
70
+ const output: ShellString = containerTerminal.execInContainerCommand(initJavaTruststoreCommand, containerName);
71
+ expect(output.code).eqls(0);
72
+ }
73
+
74
+ const workdir: string = YAML.parse(devfileContent).commands[0].exec.workingDir;
75
+ const commandLine: string = YAML.parse(devfileContent).commands[0].exec.commandLine;
76
+ Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
77
+ Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
78
+
79
+ let runCommandInBash: string = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
80
+ if (workdir !== undefined && workdir !== '') {
81
+ runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
82
+ }
83
+
84
+ const output: ShellString = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
85
+ expect(output.code).eqls(0);
86
+
87
+ const outputText: string = output.stdout.trim();
88
+ expect(outputText).contains('BUILD SUCCESS');
89
+ });
90
+
91
+ test('Check "run" command', function (): void {
92
+ const workdir: string = YAML.parse(devfileContent).commands[1].exec.workingDir;
93
+ const commandLine: string = YAML.parse(devfileContent).commands[1].exec.commandLine;
94
+ const containerName: string = YAML.parse(devfileContent).commands[1].exec.component;
95
+ Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
96
+ Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
97
+
98
+ let runCommandInBash: string = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
99
+ if (workdir !== undefined && workdir !== '') {
100
+ runCommandInBash = `cd ${workdir} && sh -c "(` + runCommandInBash + ' > command.log 2>&1 &) && sleep 15s && exit"';
101
+ }
102
+
103
+ let commandOutput: ShellString = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
104
+ expect(commandOutput.code).eqls(0);
105
+
106
+ commandOutput = containerTerminal.execInContainerCommand(`cat ${workdir}/command.log`, containerName);
107
+ const commandLog: string = commandOutput.stdout.trim();
108
+
109
+ expect(commandLog).contains('Server configuration file in use: standalone.xml');
110
+ });
111
+
112
+ test('Check "shutdown" command', function (): void {
113
+ const workdir: string = YAML.parse(devfileContent).commands[3].exec.workingDir;
114
+ const commandLine: string = YAML.parse(devfileContent).commands[3].exec.commandLine;
115
+ const containerName: string = YAML.parse(devfileContent).commands[3].exec.component;
116
+ Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
117
+ Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
118
+
119
+ let runCommandInBash: string = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
120
+ if (workdir !== undefined && workdir !== '') {
121
+ runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
122
+ }
123
+
124
+ const output: ShellString = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
125
+ expect(output.code).eqls(0);
126
+ });
127
+
128
+ test('Check "debug" command', function (): void {
129
+ const workdir: string = YAML.parse(devfileContent).commands[2].exec.workingDir;
130
+ const commandLine: string = YAML.parse(devfileContent).commands[2].exec.commandLine;
131
+ const containerName: string = YAML.parse(devfileContent).commands[2].exec.component;
132
+ Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
133
+ Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
134
+
135
+ let runCommandInBash: string = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
136
+ if (workdir !== undefined && workdir !== '') {
137
+ runCommandInBash = `cd ${workdir} && sh -c "(` + runCommandInBash + ' > command.log 2>&1 &) && sleep 15s && exit"';
138
+ }
139
+
140
+ let commandOutput: ShellString = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
141
+ expect(commandOutput.code).eqls(0);
142
+
143
+ commandOutput = containerTerminal.execInContainerCommand(`cat ${workdir}/command.log`, containerName);
144
+ const commandLog: string = commandOutput.stdout.trim();
145
+
146
+ expect(commandLog).contains('Listening for transport dt_socket at address: 5005');
147
+ expect(commandLog).contains('Server configuration file in use: standalone.xml');
148
+ });
149
+
150
+ suiteTeardown('Delete workspace', function (): void {
151
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
152
+ });
153
+ });
@@ -0,0 +1,93 @@
1
+ /** *******************************************************************
2
+ * copyright (c) 2024 Red Hat, Inc.
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ **********************************************************************/
10
+ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
11
+ import { e2eContainer } from '../../configs/inversify.config';
12
+ import { CLASSES } from '../../configs/inversify.types';
13
+ import { DevfilesHelper } from '../../utils/DevfilesHelper';
14
+ import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
15
+ import { DevWorkspaceConfigurationHelper } from '../../utils/DevWorkspaceConfigurationHelper';
16
+ import { DevfileContext } from '@eclipse-che/che-devworkspace-generator/lib/api/devfile-context';
17
+ import { ShellString } from 'shelljs';
18
+ import { expect } from 'chai';
19
+ import { API_TEST_CONSTANTS } from '../../constants/API_TEST_CONSTANTS';
20
+ import YAML from 'yaml';
21
+ import { Logger } from '../../utils/Logger';
22
+ import crypto from 'crypto';
23
+
24
+ suite('NodeJS MongoDB devfile API test', function (): void {
25
+ const devfilesRegistryHelper: DevfilesHelper = e2eContainer.get(CLASSES.DevfilesRegistryHelper);
26
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
27
+ CLASSES.KubernetesCommandLineToolsExecutor
28
+ );
29
+ const devfileID: string = 'nodejs-mongodb';
30
+ const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
31
+ let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
32
+ let devfileContext: DevfileContext;
33
+ let devfileContent: string = '';
34
+ let devfileName: string = '';
35
+
36
+ suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
37
+ kubernetesCommandLineToolsExecutor.loginToOcp();
38
+ });
39
+
40
+ test(`Create ${devfileID} workspace`, async function (): Promise<void> {
41
+ const randomPref: string = crypto.randomBytes(4).toString('hex');
42
+ kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
43
+ devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
44
+ const editorDevfileContent: string = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
45
+ devfileName = YAML.parse(devfileContent).metadata.name;
46
+ const uniqueName: string = YAML.parse(devfileContent).metadata.name + randomPref;
47
+ kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
48
+
49
+ devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper({
50
+ editorContent: editorDevfileContent,
51
+ devfileContent: devfileContent
52
+ });
53
+ devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
54
+ if (devfileContext.devWorkspace.metadata) {
55
+ devfileContext.devWorkspace.metadata.name = uniqueName;
56
+ }
57
+ const devWorkspaceConfigurationYamlString: string =
58
+ devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
59
+ const output: ShellString = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
60
+ expect(output.stdout).contains('condition met');
61
+ });
62
+
63
+ test('Check "Run the application" command', function (): void {
64
+ const containerName: string = YAML.parse(devfileContent).commands[0].exec.component;
65
+
66
+ if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
67
+ Logger.info('Test cluster is disconnected. Ignore Self-Signed Certificate error.');
68
+ const ignoreSelfSignedCertificateErrorCommand: string = 'npm config set strict-ssl false';
69
+ const output: ShellString = containerTerminal.execInContainerCommand(ignoreSelfSignedCertificateErrorCommand, containerName);
70
+ expect(output.code).eqls(0);
71
+ }
72
+
73
+ const workdir: string = YAML.parse(devfileContent).commands[0].exec.workingDir;
74
+ const commandLine: string = YAML.parse(devfileContent).commands[0].exec.commandLine;
75
+ Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
76
+ Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
77
+
78
+ let runCommandInBash: string = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
79
+ if (workdir !== undefined && workdir !== '') {
80
+ runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
81
+ }
82
+
83
+ const output: ShellString = containerTerminal.execInContainerCommandWithTimeout(runCommandInBash, containerName);
84
+ expect(output.code).eqls(124);
85
+
86
+ const outputText: string = output.stdout.trim();
87
+ expect(outputText).contains('App listening on port 8080');
88
+ });
89
+
90
+ suiteTeardown('Delete workspace', function (): void {
91
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
92
+ });
93
+ });
@@ -17,6 +17,7 @@ import { OAUTH_CONSTANTS } from '../constants/OAUTH_CONSTANTS';
17
17
  import { IKubernetesCommandLineToolsExecutor } from './IKubernetesCommandLineToolsExecutor';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import { CLASSES } from '../configs/inversify.types';
20
+ import * as fs from 'fs';
20
21
 
21
22
  @injectable()
22
23
  export class KubernetesCommandLineToolsExecutor implements IKubernetesCommandLineToolsExecutor {
@@ -128,15 +129,32 @@ export class KubernetesCommandLineToolsExecutor implements IKubernetesCommandLin
128
129
  Logger.debug(`${this.kubernetesCommandLineTool}`);
129
130
 
130
131
  return this.shellExecutor.executeCommand(
131
- `${this.kubernetesCommandLineTool} exec -i ${KubernetesCommandLineToolsExecutor.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`
132
+ `${this.kubernetesCommandLineTool} exec -i -t ${KubernetesCommandLineToolsExecutor.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`
133
+ );
134
+ }
135
+
136
+ execInContainerCommandWithTimeout(
137
+ commandToExecute: string,
138
+ container: string = KubernetesCommandLineToolsExecutor.container,
139
+ timeout: string = '20'
140
+ ): ShellString {
141
+ Logger.debug(`${this.kubernetesCommandLineTool}`);
142
+
143
+ return this.shellExecutor.executeCommand(
144
+ ` timeout ${timeout} ${this.kubernetesCommandLineTool} exec -i ${KubernetesCommandLineToolsExecutor.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`
132
145
  );
133
146
  }
134
147
 
135
148
  applyYamlConfigurationAsStringOutput(yamlConfiguration: string): ShellString {
136
149
  Logger.debug(`${this.kubernetesCommandLineTool}`);
137
150
 
151
+ // write yaml configuration to the devfile file
152
+ const randomSuffix: number = Math.floor(Math.random() * 10000);
153
+ const devfileYamlPath: string = `/tmp/devfile-${randomSuffix}.yaml`;
154
+ fs.writeFileSync(devfileYamlPath, yamlConfiguration);
155
+
138
156
  return this.shellExecutor.executeCommand(
139
- `cat <<EOF | ${this.kubernetesCommandLineTool} apply -n ${this.namespace} -f - \n` + yamlConfiguration + '\n' + 'EOF'
157
+ `${this.kubernetesCommandLineTool} apply -n ${this.namespace} -f ${devfileYamlPath} && rm -f ${devfileYamlPath}`
140
158
  );
141
159
  }
142
160