@eclipse-che/che-e2e 7.97.0-next-76b99e7 → 7.97.0-next-dfc2d2b
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.
- package/dist/specs/api/CppDevFileAPI.spec.js +87 -0
- package/dist/specs/api/CppDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/DotnetDevFileAPI.spec.js +89 -0
- package/dist/specs/api/DotnetDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/GoDevFileAPI.spec.js +4 -2
- package/dist/specs/api/GoDevFileAPI.spec.js.map +1 -1
- package/dist/specs/api/PhpDevFileAPI.spec.js +4 -2
- package/dist/specs/api/PhpDevFileAPI.spec.js.map +1 -1
- package/dist/specs/api/PythonDevFileAPI.spec.js +4 -2
- package/dist/specs/api/PythonDevFileAPI.spec.js.map +1 -1
- package/dist/utils/KubernetesCommandLineToolsExecutor.js +10 -3
- package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
- package/package.json +1 -1
- package/specs/api/CppDevFileAPI.spec.ts +97 -0
- package/specs/api/DotnetDevFileAPI.spec.ts +99 -0
- package/specs/api/GoDevFileAPI.spec.ts +4 -2
- package/specs/api/PhpDevFileAPI.spec.ts +4 -2
- package/specs/api/PythonDevFileAPI.spec.ts +4 -2
- package/utils/KubernetesCommandLineToolsExecutor.ts +22 -5
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2024 Red Hat, Inc.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made
|
|
6
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
7
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
8
|
+
*
|
|
9
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
10
|
+
**********************************************************************/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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('Cpp 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 = 'cpp';
|
|
28
|
+
const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
|
|
29
|
+
let devWorkspaceConfigurationHelper;
|
|
30
|
+
let devfileContext;
|
|
31
|
+
let devfileContent = '';
|
|
32
|
+
let dwtName = '';
|
|
33
|
+
const workDirPath = 'c-plus-plus/strings';
|
|
34
|
+
const fileName = 'knuth_morris_pratt.cpp';
|
|
35
|
+
const tasksJsonPath = 'c-plus-plus/.vscode/tasks.json';
|
|
36
|
+
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
37
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
38
|
+
});
|
|
39
|
+
test(`Create ${devfileID} workspace`, async function () {
|
|
40
|
+
const randomPref = crypto_1.default.randomBytes(4).toString('hex');
|
|
41
|
+
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
42
|
+
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
43
|
+
const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
44
|
+
dwtName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
45
|
+
const uniqName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
46
|
+
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
47
|
+
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
|
|
48
|
+
editorContent: editorDevfileContent,
|
|
49
|
+
devfileContent: devfileContent
|
|
50
|
+
});
|
|
51
|
+
devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
|
|
52
|
+
if (devfileContext.devWorkspace.metadata) {
|
|
53
|
+
devfileContext.devWorkspace.metadata.name = uniqName;
|
|
54
|
+
}
|
|
55
|
+
const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
|
|
56
|
+
const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
|
|
57
|
+
(0, chai_1.expect)(output.stdout).contains('condition met');
|
|
58
|
+
});
|
|
59
|
+
test('Check commands', function () {
|
|
60
|
+
let output;
|
|
61
|
+
const toolsComponent = yaml_1.default.parse(devfileContent).components.find((component) => component.name === 'tools');
|
|
62
|
+
const containerName = toolsComponent ? toolsComponent.name : 'Component not found';
|
|
63
|
+
Logger_1.Logger.info(`container from components section of Devfile:: ${containerName}`);
|
|
64
|
+
const tasksJsonContent = containerTerminal.execInContainerCommand(`cat ${tasksJsonPath}`, containerName).stdout;
|
|
65
|
+
const parsedJson = yaml_1.default.parse(tasksJsonContent);
|
|
66
|
+
Logger_1.Logger.info('"Check \'build current algorithm\' command"');
|
|
67
|
+
const buildTaskCommand = parsedJson.tasks[0].command;
|
|
68
|
+
const buildCommand = buildTaskCommand.replaceAll('${file}', fileName).replaceAll(/'/g, '"');
|
|
69
|
+
Logger_1.Logger.info(`commandLine from tasks.json file of project: ${buildCommand}`);
|
|
70
|
+
const runCommandInBash = `cd ${workDirPath} && ${buildCommand}`;
|
|
71
|
+
output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
72
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
73
|
+
(0, chai_1.expect)(output.stdout.trim()).contains('Build complete');
|
|
74
|
+
Logger_1.Logger.info('"Check \'run current algorithm\' command"');
|
|
75
|
+
const runTaskCommand = parsedJson.tasks[1].command;
|
|
76
|
+
const runCommand = runTaskCommand.replaceAll('${file}', fileName).replaceAll(/'/g, '"');
|
|
77
|
+
Logger_1.Logger.info(`commandLine from tasks.json file of project: ${runCommand}`);
|
|
78
|
+
const runCommandInBash2 = `cd ${workDirPath} && ${runCommand}`;
|
|
79
|
+
output = containerTerminal.execInContainerCommand(runCommandInBash2, containerName);
|
|
80
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
81
|
+
(0, chai_1.expect)(output.stdout.trim()).contains('Found');
|
|
82
|
+
});
|
|
83
|
+
suiteTeardown('Delete workspace', function () {
|
|
84
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=CppDevFileAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CppDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CppDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
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('Dotnet 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 = 'dotnet';
|
|
28
|
+
const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
|
|
29
|
+
let devWorkspaceConfigurationHelper;
|
|
30
|
+
let devfileContext;
|
|
31
|
+
let devfileContent = '';
|
|
32
|
+
let dwtName = '';
|
|
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
|
+
dwtName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
42
|
+
const uniqName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
43
|
+
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
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 = uniqName;
|
|
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 devfile commands', function () {
|
|
57
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
|
|
58
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
|
|
59
|
+
const updateCommandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
|
|
60
|
+
Logger_1.Logger.info(`workdir from exec section of DevFile: ${workdir}`);
|
|
61
|
+
Logger_1.Logger.info(`containerName from exec section of DevFile: ${containerName}`);
|
|
62
|
+
Logger_1.Logger.info('"Test \'update-dependencies\' command execution"');
|
|
63
|
+
Logger_1.Logger.info(`commandLine from exec section of DevFile file: ${updateCommandLine}`);
|
|
64
|
+
const runCommandInBash = `cd ${workdir} && ${updateCommandLine}`;
|
|
65
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
66
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
67
|
+
(0, chai_1.expect)(output.stdout.trim()).contains('Restored /projects/dotnet-web-simple/web.csproj');
|
|
68
|
+
Logger_1.Logger.info('"Test \'build\' command execution"');
|
|
69
|
+
const buildCommandLine = yaml_1.default.parse(devfileContent).commands[1].exec.commandLine;
|
|
70
|
+
Logger_1.Logger.info(`commandLine from exec section of DevFile: ${buildCommandLine}`);
|
|
71
|
+
const runCommandInBash2 = `cd ${workdir} && ${buildCommandLine}`;
|
|
72
|
+
const output2 = containerTerminal.execInContainerCommand(runCommandInBash2, containerName);
|
|
73
|
+
(0, chai_1.expect)(output2.code).eqls(0);
|
|
74
|
+
(0, chai_1.expect)(output2.stdout.trim()).contains('Build succeeded');
|
|
75
|
+
Logger_1.Logger.info('"Test \'run\' command execution"');
|
|
76
|
+
const runCommandLine = yaml_1.default.parse(devfileContent).commands[2].exec.commandLine;
|
|
77
|
+
Logger_1.Logger.info(`commandLine from exec section of DevFile: ${runCommandLine}`);
|
|
78
|
+
const runCommandInBash3 = `cd ${workdir} && sh -c "(${runCommandLine} > server.log 2>&1 &) && sleep 20s && exit"`;
|
|
79
|
+
const output3 = containerTerminal.execInContainerCommand(runCommandInBash3, containerName);
|
|
80
|
+
(0, chai_1.expect)(output3.code).eqls(0);
|
|
81
|
+
const logOutput = containerTerminal.execInContainerCommand(`cat ${workdir}/server.log`, containerName);
|
|
82
|
+
Logger_1.Logger.info(`Log output: ${logOutput.stdout}`);
|
|
83
|
+
(0, chai_1.expect)(logOutput.stdout.trim()).contains('Content root path: /projects/dotnet-web-simple');
|
|
84
|
+
});
|
|
85
|
+
suiteTeardown('Delete DevWorkspace', function () {
|
|
86
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=DotnetDevFileAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotnetDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/DotnetDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ suite('Go devfile API test', function () {
|
|
|
29
29
|
let devWorkspaceConfigurationHelper;
|
|
30
30
|
let devfileContext;
|
|
31
31
|
let devfileContent = '';
|
|
32
|
+
let dwtName = '';
|
|
32
33
|
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
33
34
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
34
35
|
});
|
|
@@ -37,6 +38,7 @@ suite('Go devfile API test', function () {
|
|
|
37
38
|
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
38
39
|
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
39
40
|
const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
41
|
+
dwtName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
40
42
|
const uniqName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
41
43
|
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
42
44
|
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
|
|
@@ -73,8 +75,8 @@ suite('Go devfile API test', function () {
|
|
|
73
75
|
Logger_1.Logger.info(`Log output: ${logOutput.stdout}`);
|
|
74
76
|
(0, chai_1.expect)(logOutput.stdout.trim()).contains('Web server running on port 8080');
|
|
75
77
|
});
|
|
76
|
-
suiteTeardown('Delete
|
|
77
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
78
|
+
suiteTeardown('Delete DevWorkspace', function () {
|
|
79
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
78
80
|
});
|
|
79
81
|
});
|
|
80
82
|
//# sourceMappingURL=GoDevFileAPI.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/GoDevFileAPI.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;AAExE,6EAA0E;AAC1E,qEAA8D;AAC9D,mEAAwD;AAGxD,iGAA8F;AAG9F,+BAA8B;AAC9B,2EAAwE;AACxE,gDAAwB;AACxB,+CAA4C;AAC5C,oDAA4B;AAE5B,KAAK,CAAC,qBAAqB,EAAE;IAC5B,MAAM,sBAAsB,GAAmB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IAChG,MAAM,kCAAkC,GAAuC,+BAAY,CAAC,GAAG,CAC9F,yBAAO,CAAC,kCAAkC,CAC1C,CAAC;IACF,MAAM,SAAS,GAAW,IAAI,CAAC;IAC/B,MAAM,iBAAiB,GAAsB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,iBAAiB,CAAC,CAAC;IACzF,IAAI,+BAAgE,CAAC;IACrE,IAAI,cAA8B,CAAC;IACnC,IAAI,cAAc,GAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"GoDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/GoDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ suite('PHP devfile API test', function () {
|
|
|
29
29
|
let devWorkspaceConfigurationHelper;
|
|
30
30
|
let devfileContext;
|
|
31
31
|
let devfileContent = '';
|
|
32
|
+
let dwtName = '';
|
|
32
33
|
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
33
34
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
34
35
|
});
|
|
@@ -37,6 +38,7 @@ suite('PHP devfile API test', function () {
|
|
|
37
38
|
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
38
39
|
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
39
40
|
const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
41
|
+
dwtName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
40
42
|
const uniqName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
41
43
|
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
42
44
|
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
|
|
@@ -62,8 +64,8 @@ suite('PHP devfile API test', function () {
|
|
|
62
64
|
(0, chai_1.expect)(output.code).eqls(0);
|
|
63
65
|
(0, chai_1.expect)(output.stdout.trim()).contains('Hello, world!');
|
|
64
66
|
});
|
|
65
|
-
suiteTeardown('Delete
|
|
66
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
67
|
+
suiteTeardown('Delete DevWorkspace', function () {
|
|
68
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
67
69
|
});
|
|
68
70
|
});
|
|
69
71
|
//# sourceMappingURL=PhpDevFileAPI.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhpDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PhpDevFileAPI.spec.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;wEAQwE;AACxE,6EAA0E;AAC1E,qEAA8D;AAC9D,mEAAwD;AAGxD,iGAA8F;AAG9F,+BAA8B;AAC9B,2EAAwE;AACxE,gDAAwB;AACxB,+CAA4C;AAC5C,oDAA4B;AAE5B,KAAK,CAAC,sBAAsB,EAAE;IAC7B,MAAM,sBAAsB,GAAmB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IAChG,MAAM,kCAAkC,GAAuC,+BAAY,CAAC,GAAG,CAC9F,yBAAO,CAAC,kCAAkC,CAC1C,CAAC;IACF,MAAM,SAAS,GAAW,KAAK,CAAC;IAChC,MAAM,iBAAiB,GAAsB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,iBAAiB,CAAC,CAAC;IACzF,IAAI,+BAAgE,CAAC;IACrE,IAAI,cAA8B,CAAC;IACnC,IAAI,cAAc,GAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"PhpDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PhpDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ suite('Python devfile API test', function () {
|
|
|
29
29
|
let devWorkspaceConfigurationHelper;
|
|
30
30
|
let devfileContext;
|
|
31
31
|
let devfileContent = '';
|
|
32
|
+
let dwtName = '';
|
|
32
33
|
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
33
34
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
34
35
|
});
|
|
@@ -37,6 +38,7 @@ suite('Python devfile API test', function () {
|
|
|
37
38
|
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
38
39
|
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
39
40
|
const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
41
|
+
dwtName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
40
42
|
const uniqName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
41
43
|
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
42
44
|
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
|
|
@@ -62,8 +64,8 @@ suite('Python devfile API test', function () {
|
|
|
62
64
|
(0, chai_1.expect)(output.code).eqls(0);
|
|
63
65
|
(0, chai_1.expect)(output.stdout.trim()).contains('Hello, world!');
|
|
64
66
|
});
|
|
65
|
-
suiteTeardown('Delete
|
|
66
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
67
|
+
suiteTeardown('Delete DevWorkspace', function () {
|
|
68
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
67
69
|
});
|
|
68
70
|
});
|
|
69
71
|
//# sourceMappingURL=PythonDevFileAPI.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PythonDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PythonDevFileAPI.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;AAExE,6EAA0E;AAC1E,qEAA8D;AAC9D,mEAAwD;AAGxD,iGAA8F;AAG9F,+BAA8B;AAC9B,2EAAwE;AACxE,gDAAwB;AACxB,+CAA4C;AAC5C,oDAA4B;AAE5B,KAAK,CAAC,yBAAyB,EAAE;IAChC,MAAM,sBAAsB,GAAmB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IAChG,MAAM,kCAAkC,GAAuC,+BAAY,CAAC,GAAG,CAC9F,yBAAO,CAAC,kCAAkC,CAC1C,CAAC;IACF,MAAM,SAAS,GAAW,QAAQ,CAAC;IACnC,MAAM,iBAAiB,GAAsB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,iBAAiB,CAAC,CAAC;IACzF,IAAI,+BAAgE,CAAC;IACrE,IAAI,cAA8B,CAAC;IACnC,IAAI,cAAc,GAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"PythonDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PythonDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,11 +112,18 @@ let KubernetesCommandLineToolsExecutor = KubernetesCommandLineToolsExecutor_1 =
|
|
|
112
112
|
const output = this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
|
|
113
113
|
return output.stderr ? output.stderr : output.stdout.replace('\n', '');
|
|
114
114
|
}
|
|
115
|
-
deleteDevWorkspace() {
|
|
116
|
-
Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - delete '${this.workspaceName}'
|
|
115
|
+
deleteDevWorkspace(dwTemplateName) {
|
|
116
|
+
Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - delete '${this.workspaceName}' devWorkspace`);
|
|
117
117
|
this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
|
|
118
118
|
this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} delete dw ${this.workspaceName} -n ${this.namespace} || true`);
|
|
119
|
-
|
|
119
|
+
if (dwTemplateName === undefined) {
|
|
120
|
+
Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - delete '${this.workspaceName}' devWorkspaceTemplate`);
|
|
121
|
+
this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} delete dwt ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}-${this.workspaceName} -n ${this.namespace} || true`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - delete '${dwTemplateName}' devWorkspaceTemplate`);
|
|
125
|
+
this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} delete dwt ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}-${dwTemplateName} -n ${this.namespace} || true`);
|
|
126
|
+
}
|
|
120
127
|
}
|
|
121
128
|
applyAndWaitDevWorkspace(yamlConfiguration) {
|
|
122
129
|
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
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
|
|
11
|
+
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
12
|
+
import { e2eContainer } from '../../configs/inversify.config';
|
|
13
|
+
import { CLASSES } from '../../configs/inversify.types';
|
|
14
|
+
import { DevfilesHelper } from '../../utils/DevfilesHelper';
|
|
15
|
+
import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
|
|
16
|
+
import { DevWorkspaceConfigurationHelper } from '../../utils/DevWorkspaceConfigurationHelper';
|
|
17
|
+
import { DevfileContext } from '@eclipse-che/che-devworkspace-generator/lib/api/devfile-context';
|
|
18
|
+
import { ShellString } from 'shelljs';
|
|
19
|
+
import { expect } from 'chai';
|
|
20
|
+
import { API_TEST_CONSTANTS } from '../../constants/API_TEST_CONSTANTS';
|
|
21
|
+
import YAML from 'yaml';
|
|
22
|
+
import { Logger } from '../../utils/Logger';
|
|
23
|
+
import crypto from 'crypto';
|
|
24
|
+
|
|
25
|
+
suite('Cpp devfile API test', function (): void {
|
|
26
|
+
const devfilesRegistryHelper: DevfilesHelper = e2eContainer.get(CLASSES.DevfilesRegistryHelper);
|
|
27
|
+
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
28
|
+
CLASSES.KubernetesCommandLineToolsExecutor
|
|
29
|
+
);
|
|
30
|
+
const devfileID: string = 'cpp';
|
|
31
|
+
const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
|
|
32
|
+
let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
|
|
33
|
+
let devfileContext: DevfileContext;
|
|
34
|
+
let devfileContent: string = '';
|
|
35
|
+
let dwtName: string = '';
|
|
36
|
+
const workDirPath: string = 'c-plus-plus/strings';
|
|
37
|
+
const fileName: string = 'knuth_morris_pratt.cpp';
|
|
38
|
+
const tasksJsonPath: string = 'c-plus-plus/.vscode/tasks.json';
|
|
39
|
+
|
|
40
|
+
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
41
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test(`Create ${devfileID} workspace`, async function (): Promise<void> {
|
|
45
|
+
const randomPref: string = crypto.randomBytes(4).toString('hex');
|
|
46
|
+
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
47
|
+
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
48
|
+
const editorDevfileContent: string = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
49
|
+
dwtName = YAML.parse(devfileContent).metadata.name;
|
|
50
|
+
const uniqName: string = YAML.parse(devfileContent).metadata.name + randomPref;
|
|
51
|
+
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
52
|
+
|
|
53
|
+
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper({
|
|
54
|
+
editorContent: editorDevfileContent,
|
|
55
|
+
devfileContent: devfileContent
|
|
56
|
+
});
|
|
57
|
+
devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
|
|
58
|
+
if (devfileContext.devWorkspace.metadata) {
|
|
59
|
+
devfileContext.devWorkspace.metadata.name = uniqName;
|
|
60
|
+
}
|
|
61
|
+
const devWorkspaceConfigurationYamlString: string =
|
|
62
|
+
devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
|
|
63
|
+
const output: ShellString = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
|
|
64
|
+
expect(output.stdout).contains('condition met');
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('Check commands', function (): void {
|
|
68
|
+
let output: ShellString;
|
|
69
|
+
const toolsComponent: any = YAML.parse(devfileContent).components.find((component: any): boolean => component.name === 'tools');
|
|
70
|
+
const containerName: string = toolsComponent ? toolsComponent.name : 'Component not found';
|
|
71
|
+
Logger.info(`container from components section of Devfile:: ${containerName}`);
|
|
72
|
+
const tasksJsonContent: string = containerTerminal.execInContainerCommand(`cat ${tasksJsonPath}`, containerName).stdout;
|
|
73
|
+
const parsedJson: any = YAML.parse(tasksJsonContent);
|
|
74
|
+
|
|
75
|
+
Logger.info('"Check \'build current algorithm\' command"');
|
|
76
|
+
const buildTaskCommand: string = parsedJson.tasks[0].command;
|
|
77
|
+
const buildCommand: string = buildTaskCommand.replaceAll('${file}', fileName).replaceAll(/'/g, '"');
|
|
78
|
+
Logger.info(`commandLine from tasks.json file of project: ${buildCommand}`);
|
|
79
|
+
const runCommandInBash: string = `cd ${workDirPath} && ${buildCommand}`;
|
|
80
|
+
output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
81
|
+
expect(output.code).eqls(0);
|
|
82
|
+
expect(output.stdout.trim()).contains('Build complete');
|
|
83
|
+
|
|
84
|
+
Logger.info('"Check \'run current algorithm\' command"');
|
|
85
|
+
const runTaskCommand: string = parsedJson.tasks[1].command;
|
|
86
|
+
const runCommand: string = runTaskCommand.replaceAll('${file}', fileName).replaceAll(/'/g, '"');
|
|
87
|
+
Logger.info(`commandLine from tasks.json file of project: ${runCommand}`);
|
|
88
|
+
const runCommandInBash2: string = `cd ${workDirPath} && ${runCommand}`;
|
|
89
|
+
output = containerTerminal.execInContainerCommand(runCommandInBash2, containerName);
|
|
90
|
+
expect(output.code).eqls(0);
|
|
91
|
+
expect(output.stdout.trim()).contains('Found');
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
suiteTeardown('Delete workspace', function (): void {
|
|
95
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
@@ -0,0 +1,99 @@
|
|
|
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('Dotnet 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 = 'dotnet';
|
|
30
|
+
const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
|
|
31
|
+
let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
|
|
32
|
+
let devfileContext: DevfileContext;
|
|
33
|
+
let devfileContent: string = '';
|
|
34
|
+
let dwtName: 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
|
+
dwtName = YAML.parse(devfileContent).metadata.name;
|
|
46
|
+
const uniqName: string = YAML.parse(devfileContent).metadata.name + randomPref;
|
|
47
|
+
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
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 = uniqName;
|
|
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 devfile commands', function (): void {
|
|
64
|
+
const workdir: string = YAML.parse(devfileContent).commands[0].exec.workingDir;
|
|
65
|
+
const containerName: string = YAML.parse(devfileContent).commands[0].exec.component;
|
|
66
|
+
const updateCommandLine: string = YAML.parse(devfileContent).commands[0].exec.commandLine;
|
|
67
|
+
Logger.info(`workdir from exec section of DevFile: ${workdir}`);
|
|
68
|
+
Logger.info(`containerName from exec section of DevFile: ${containerName}`);
|
|
69
|
+
|
|
70
|
+
Logger.info('"Test \'update-dependencies\' command execution"');
|
|
71
|
+
Logger.info(`commandLine from exec section of DevFile file: ${updateCommandLine}`);
|
|
72
|
+
const runCommandInBash: string = `cd ${workdir} && ${updateCommandLine}`;
|
|
73
|
+
const output: ShellString = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
74
|
+
expect(output.code).eqls(0);
|
|
75
|
+
expect(output.stdout.trim()).contains('Restored /projects/dotnet-web-simple/web.csproj');
|
|
76
|
+
|
|
77
|
+
Logger.info('"Test \'build\' command execution"');
|
|
78
|
+
const buildCommandLine: string = YAML.parse(devfileContent).commands[1].exec.commandLine;
|
|
79
|
+
Logger.info(`commandLine from exec section of DevFile: ${buildCommandLine}`);
|
|
80
|
+
const runCommandInBash2: string = `cd ${workdir} && ${buildCommandLine}`;
|
|
81
|
+
const output2: ShellString = containerTerminal.execInContainerCommand(runCommandInBash2, containerName);
|
|
82
|
+
expect(output2.code).eqls(0);
|
|
83
|
+
expect(output2.stdout.trim()).contains('Build succeeded');
|
|
84
|
+
|
|
85
|
+
Logger.info('"Test \'run\' command execution"');
|
|
86
|
+
const runCommandLine: string = YAML.parse(devfileContent).commands[2].exec.commandLine;
|
|
87
|
+
Logger.info(`commandLine from exec section of DevFile: ${runCommandLine}`);
|
|
88
|
+
const runCommandInBash3: string = `cd ${workdir} && sh -c "(${runCommandLine} > server.log 2>&1 &) && sleep 20s && exit"`;
|
|
89
|
+
const output3: ShellString = containerTerminal.execInContainerCommand(runCommandInBash3, containerName);
|
|
90
|
+
expect(output3.code).eqls(0);
|
|
91
|
+
const logOutput: ShellString = containerTerminal.execInContainerCommand(`cat ${workdir}/server.log`, containerName);
|
|
92
|
+
Logger.info(`Log output: ${logOutput.stdout}`);
|
|
93
|
+
expect(logOutput.stdout.trim()).contains('Content root path: /projects/dotnet-web-simple');
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
suiteTeardown('Delete DevWorkspace', function (): void {
|
|
97
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
@@ -32,6 +32,7 @@ suite('Go devfile API test', function (): void {
|
|
|
32
32
|
let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
|
|
33
33
|
let devfileContext: DevfileContext;
|
|
34
34
|
let devfileContent: string = '';
|
|
35
|
+
let dwtName: string = '';
|
|
35
36
|
|
|
36
37
|
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
37
38
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
@@ -42,6 +43,7 @@ suite('Go devfile API test', function (): void {
|
|
|
42
43
|
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
43
44
|
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
44
45
|
const editorDevfileContent: string = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
46
|
+
dwtName = YAML.parse(devfileContent).metadata.name;
|
|
45
47
|
const uniqName: string = YAML.parse(devfileContent).metadata.name + randomPref;
|
|
46
48
|
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
47
49
|
|
|
@@ -84,7 +86,7 @@ suite('Go devfile API test', function (): void {
|
|
|
84
86
|
expect(logOutput.stdout.trim()).contains('Web server running on port 8080');
|
|
85
87
|
});
|
|
86
88
|
|
|
87
|
-
suiteTeardown('Delete
|
|
88
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
89
|
+
suiteTeardown('Delete DevWorkspace', function (): void {
|
|
90
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
89
91
|
});
|
|
90
92
|
});
|
|
@@ -31,6 +31,7 @@ suite('PHP devfile API test', function (): void {
|
|
|
31
31
|
let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
|
|
32
32
|
let devfileContext: DevfileContext;
|
|
33
33
|
let devfileContent: string = '';
|
|
34
|
+
let dwtName: string = '';
|
|
34
35
|
|
|
35
36
|
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
36
37
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
@@ -41,6 +42,7 @@ suite('PHP devfile API test', function (): void {
|
|
|
41
42
|
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
42
43
|
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
43
44
|
const editorDevfileContent: string = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
45
|
+
dwtName = YAML.parse(devfileContent).metadata.name;
|
|
44
46
|
const uniqName: string = YAML.parse(devfileContent).metadata.name + randomPref;
|
|
45
47
|
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
46
48
|
|
|
@@ -70,7 +72,7 @@ suite('PHP devfile API test', function (): void {
|
|
|
70
72
|
expect(output.stdout.trim()).contains('Hello, world!');
|
|
71
73
|
});
|
|
72
74
|
|
|
73
|
-
suiteTeardown('Delete
|
|
74
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
75
|
+
suiteTeardown('Delete DevWorkspace', function (): void {
|
|
76
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
75
77
|
});
|
|
76
78
|
});
|
|
@@ -32,6 +32,7 @@ suite('Python devfile API test', function (): void {
|
|
|
32
32
|
let devWorkspaceConfigurationHelper: DevWorkspaceConfigurationHelper;
|
|
33
33
|
let devfileContext: DevfileContext;
|
|
34
34
|
let devfileContent: string = '';
|
|
35
|
+
let dwtName: string = '';
|
|
35
36
|
|
|
36
37
|
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
37
38
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
@@ -42,6 +43,7 @@ suite('Python devfile API test', function (): void {
|
|
|
42
43
|
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE || 'admin-devspaces';
|
|
43
44
|
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
44
45
|
const editorDevfileContent: string = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
46
|
+
dwtName = YAML.parse(devfileContent).metadata.name;
|
|
45
47
|
const uniqName: string = YAML.parse(devfileContent).metadata.name + randomPref;
|
|
46
48
|
kubernetesCommandLineToolsExecutor.workspaceName = uniqName;
|
|
47
49
|
|
|
@@ -71,7 +73,7 @@ suite('Python devfile API test', function (): void {
|
|
|
71
73
|
expect(output.stdout.trim()).contains('Hello, world!');
|
|
72
74
|
});
|
|
73
75
|
|
|
74
|
-
suiteTeardown('Delete
|
|
75
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
76
|
+
suiteTeardown('Delete DevWorkspace', function (): void {
|
|
77
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(dwtName);
|
|
76
78
|
});
|
|
77
79
|
});
|
|
@@ -94,16 +94,33 @@ export class KubernetesCommandLineToolsExecutor implements IKubernetesCommandLin
|
|
|
94
94
|
return output.stderr ? output.stderr : output.stdout.replace('\n', '');
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
// used to delete when devWorkspace and devWorkspaceTemplate have the same names
|
|
98
|
+
deleteDevWorkspace(): void;
|
|
99
|
+
|
|
100
|
+
// used to delete when devWorkspace and devWorkspaceTemplate have different names
|
|
101
|
+
deleteDevWorkspace(dwTemplateName: string): void;
|
|
102
|
+
|
|
103
|
+
deleteDevWorkspace(dwTemplateName?: string): void {
|
|
104
|
+
Logger.debug(`${this.kubernetesCommandLineTool} - delete '${this.workspaceName}' devWorkspace`);
|
|
99
105
|
|
|
100
106
|
this.shellExecutor.executeCommand(
|
|
101
107
|
`${this.kubernetesCommandLineTool} patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`
|
|
102
108
|
);
|
|
103
109
|
this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} delete dw ${this.workspaceName} -n ${this.namespace} || true`);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
110
|
+
|
|
111
|
+
if (dwTemplateName === undefined) {
|
|
112
|
+
Logger.debug(`${this.kubernetesCommandLineTool} - delete '${this.workspaceName}' devWorkspaceTemplate`);
|
|
113
|
+
|
|
114
|
+
this.shellExecutor.executeCommand(
|
|
115
|
+
`${this.kubernetesCommandLineTool} delete dwt ${BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}-${this.workspaceName} -n ${this.namespace} || true`
|
|
116
|
+
);
|
|
117
|
+
} else {
|
|
118
|
+
Logger.debug(`${this.kubernetesCommandLineTool} - delete '${dwTemplateName}' devWorkspaceTemplate`);
|
|
119
|
+
|
|
120
|
+
this.shellExecutor.executeCommand(
|
|
121
|
+
`${this.kubernetesCommandLineTool} delete dwt ${BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}-${dwTemplateName} -n ${this.namespace} || true`
|
|
122
|
+
);
|
|
123
|
+
}
|
|
107
124
|
}
|
|
108
125
|
|
|
109
126
|
applyAndWaitDevWorkspace(yamlConfiguration: string): ShellString {
|