@eclipse-che/che-e2e 7.121.0-next-38dc0b7 → 7.121.0-next-bfb657a
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/constants/TIMEOUT_CONSTANTS.ts +8 -2
- package/dist/constants/TIMEOUT_CONSTANTS.js +6 -2
- package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -1
- package/dist/pageobjects/dashboard/Workspaces.js +53 -0
- package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +1 -0
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +1 -1
- package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +1 -0
- package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +1 -1
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +1 -0
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -1
- package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +208 -0
- package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +1 -0
- package/dist/tests-library/ProjectAndFileTests.js +9 -0
- package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
- package/dist/utils/KubernetesCommandLineToolsExecutor.js +40 -4
- package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
- package/dist/utils/workspace/ApiUrlResolver.js +55 -2
- package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
- package/package.json +1 -1
- package/pageobjects/dashboard/Workspaces.ts +79 -0
- package/specs/api/BuildPushRunPodmanContainerAPI.spec.ts +1 -0
- package/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.ts +1 -0
- package/specs/miscellaneous/KubedockPodmanTest.spec.ts +1 -0
- package/specs/miscellaneous/WorkspaceBackupRestore.spec.ts +224 -0
- package/tests-library/ProjectAndFileTests.ts +10 -0
- package/utils/KubernetesCommandLineToolsExecutor.ts +51 -4
- package/utils/workspace/ApiUrlResolver.ts +63 -2
|
@@ -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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"}
|
|
@@ -15,7 +15,7 @@ var ApiUrlResolver_1;
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.ApiUrlResolver = void 0;
|
|
17
17
|
/** *******************************************************************
|
|
18
|
-
* copyright (c) 2019-
|
|
18
|
+
* copyright (c) 2019-2026 Red Hat, Inc.
|
|
19
19
|
*
|
|
20
20
|
* This program and the accompanying materials are made
|
|
21
21
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -33,12 +33,65 @@ let ApiUrlResolver = ApiUrlResolver_1 = class ApiUrlResolver {
|
|
|
33
33
|
this.userNamespace = '';
|
|
34
34
|
}
|
|
35
35
|
async getWorkspaceApiUrl(workspaceName) {
|
|
36
|
-
|
|
36
|
+
const actualWorkspaceName = await this.resolveWorkspaceName(workspaceName);
|
|
37
|
+
return `${await this.getWorkspacesApiUrl()}/${actualWorkspaceName}`;
|
|
37
38
|
}
|
|
38
39
|
async getWorkspacesApiUrl() {
|
|
39
40
|
const namespace = await this.obtainUserNamespace();
|
|
40
41
|
return `${ApiUrlResolver_1.DASHBOARD_API_URL}/${namespace}/devworkspaces`;
|
|
41
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* resolves the actual DevWorkspace name from the API.
|
|
45
|
+
* If the exact workspace name exists, returns it as is.
|
|
46
|
+
* If not found, searches for a workspace whose name matches the pattern: workspaceName + '-' + random suffix
|
|
47
|
+
* (to handle cases where DevWorkspace has a random suffix like '-4fnq' after backup/restore).
|
|
48
|
+
* @param workspaceName - The workspace name to search for
|
|
49
|
+
* @returns The actual DevWorkspace name from the API
|
|
50
|
+
* @throws Error if no matching workspace is found
|
|
51
|
+
*/
|
|
52
|
+
async resolveWorkspaceName(workspaceName) {
|
|
53
|
+
Logger_1.Logger.debug(`Resolving workspace name: ${workspaceName}`);
|
|
54
|
+
try {
|
|
55
|
+
// first, try to get the workspace directly by the provided name
|
|
56
|
+
const directUrl = `${await this.getWorkspacesApiUrl()}/${workspaceName}`;
|
|
57
|
+
const directResponse = await this.processRequestHandler.get(directUrl);
|
|
58
|
+
if (directResponse.status === 200) {
|
|
59
|
+
Logger_1.Logger.debug(`Found exact match: ${workspaceName}`);
|
|
60
|
+
return workspaceName;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// workspace not found by exact name, will search by prefix with suffix pattern
|
|
65
|
+
Logger_1.Logger.debug(`Exact match not found for ${workspaceName}, searching by prefix with suffix`);
|
|
66
|
+
}
|
|
67
|
+
// if exact match not found, get all workspaces and search by prefix + dash + suffix pattern
|
|
68
|
+
const allWorkspacesResponse = await this.processRequestHandler.get(await this.getWorkspacesApiUrl());
|
|
69
|
+
if (allWorkspacesResponse.status !== 200) {
|
|
70
|
+
throw new Error(`Cannot get workspaces list. Code: ${allWorkspacesResponse.status} Data: ${allWorkspacesResponse.data}`);
|
|
71
|
+
}
|
|
72
|
+
const workspaces = allWorkspacesResponse.data.items || [];
|
|
73
|
+
// look for workspace with pattern: workspaceName + '-' + suffix (e.g., 'test-workspace-2-4fnq')
|
|
74
|
+
// this ensures we don't match 'test-workspace-20' when looking for 'test-workspace-2'
|
|
75
|
+
const matchingWorkspaces = workspaces.filter((ws) => {
|
|
76
|
+
const dwName = ws.metadata.name;
|
|
77
|
+
// check if name starts with workspaceName followed by a dash
|
|
78
|
+
if (dwName.startsWith(workspaceName + '-')) {
|
|
79
|
+
// verify that what follows the dash looks like a random suffix (lowercase letters/numbers)
|
|
80
|
+
const suffix = dwName.substring(workspaceName.length + 1);
|
|
81
|
+
return suffix.length > 0 && /^[a-z0-9]+$/.test(suffix);
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
});
|
|
85
|
+
if (matchingWorkspaces.length === 1) {
|
|
86
|
+
Logger_1.Logger.debug(`Found workspace by prefix: ${matchingWorkspaces[0].metadata.name} (requested: ${workspaceName})`);
|
|
87
|
+
return matchingWorkspaces[0].metadata.name;
|
|
88
|
+
}
|
|
89
|
+
if (matchingWorkspaces.length > 1) {
|
|
90
|
+
const names = matchingWorkspaces.map((ws) => ws.metadata.name).join(', ');
|
|
91
|
+
throw new Error(`Multiple workspaces found matching '${workspaceName}': ${names}. Please use exact DevWorkspace name or delete duplicates.`);
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`Workspace not found: ${workspaceName} (tried exact match and prefix search)`);
|
|
94
|
+
}
|
|
42
95
|
async obtainUserNamespace() {
|
|
43
96
|
Logger_1.Logger.debug(`${this.userNamespace}`);
|
|
44
97
|
if (this.userNamespace.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/ApiUrlResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;wEAQwE;AACxE,yCAA+C;AAC/C,mEAAwD;AACxD,sCAAmC;AACnC,mFAAgF;AAIzE,IAAM,cAAc,sBAApB,MAAM,cAAc;IAM1B,YAEkB,qBAA2C;QAA3C,0BAAqB,GAArB,qBAAqB,CAAsB;QAJrD,kBAAa,GAAW,EAAE,CAAC;IAKhC,CAAC;IAEJ,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QAC7C,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"ApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/ApiUrlResolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -32,6 +32,15 @@ export class Workspaces {
|
|
|
32
32
|
private static readonly CONFIRMATION_WINDOW: By = By.xpath('//div[@aria-label="Delete workspaces confirmation window"]');
|
|
33
33
|
private static readonly LEARN_MORE_DOC_LINK: By = By.xpath('//div/p/a');
|
|
34
34
|
|
|
35
|
+
private static readonly BACKUPS_BUTTON: By = By.id('view-backups');
|
|
36
|
+
private static readonly BACKUP_IMAGE: By = By.css('input[aria-label="Copyable input"]');
|
|
37
|
+
private static readonly CREATE_FROM_BACKUP_BUTTON: By = By.xpath('//span[text()="Create from Backup"]');
|
|
38
|
+
private static readonly RESTORE_WORKSPACE_BUTTON: By = By.xpath('//span[text()="Restore Workspace"]');
|
|
39
|
+
private static readonly RESTORE_CONFIRM_BUTTON: By = By.xpath('//span[text()="Restore"]');
|
|
40
|
+
private static readonly EXTERNAL_REGISTRY_MODE_BUTTON: By = By.xpath('//span[text()="External registry"]');
|
|
41
|
+
private static readonly BACKUP_IMAGE_URL_INPUT: By = By.css('input[aria-label="Backup image URL"]');
|
|
42
|
+
private static readonly WORKSPACE_NAME_INPUT: By = By.css('input[aria-label="Workspace name"]');
|
|
43
|
+
|
|
35
44
|
constructor(
|
|
36
45
|
@inject(CLASSES.DriverHelper)
|
|
37
46
|
private readonly driverHelper: DriverHelper
|
|
@@ -214,6 +223,68 @@ export class Workspaces {
|
|
|
214
223
|
return await this.driverHelper.waitAndGetElementAttribute(Workspaces.LEARN_MORE_DOC_LINK, 'href');
|
|
215
224
|
}
|
|
216
225
|
|
|
226
|
+
async waitBackupStatus(
|
|
227
|
+
workspaceName: string,
|
|
228
|
+
status: string,
|
|
229
|
+
timeout: number = TIMEOUT_CONSTANTS.TS_WAIT_BACKUP_STATUS_TIMEOUT
|
|
230
|
+
): Promise<void> {
|
|
231
|
+
Logger.debug(`Backup status for the "${workspaceName}" list item`);
|
|
232
|
+
|
|
233
|
+
await this.driverHelper.waitVisibility(this.getBackupStatusLocator(workspaceName, status), timeout);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
async openBackupsPage(timeout: number = TIMEOUT_CONSTANTS.TS_CLICK_DASHBOARD_ITEM_TIMEOUT): Promise<void> {
|
|
237
|
+
Logger.debug();
|
|
238
|
+
|
|
239
|
+
await this.driverHelper.waitAndClick(Workspaces.BACKUPS_BUTTON, timeout);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
async clickCreateFromBackupButton(
|
|
243
|
+
workspaceName: string,
|
|
244
|
+
timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT
|
|
245
|
+
): Promise<void> {
|
|
246
|
+
Logger.debug(`"${workspaceName}"`);
|
|
247
|
+
|
|
248
|
+
await this.driverHelper.waitAndClick(this.getActionsRestoreWorkspaceButtonLocator(workspaceName), timeout);
|
|
249
|
+
await this.driverHelper.waitAndClick(Workspaces.CREATE_FROM_BACKUP_BUTTON, timeout);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
async restoreWorkspaceFromDefaultRegistry(): Promise<void> {
|
|
253
|
+
Logger.debug();
|
|
254
|
+
|
|
255
|
+
await this.driverHelper.waitAndClick(Workspaces.RESTORE_WORKSPACE_BUTTON);
|
|
256
|
+
await this.driverHelper.waitAndClick(Workspaces.RESTORE_CONFIRM_BUTTON);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
async restoreWorkspaceFromExternalRegistry(backupImageUrl: string, workspaceName: string): Promise<void> {
|
|
260
|
+
Logger.debug();
|
|
261
|
+
|
|
262
|
+
await this.driverHelper.waitAndClick(Workspaces.EXTERNAL_REGISTRY_MODE_BUTTON);
|
|
263
|
+
await this.setBackupImageUrlValue(backupImageUrl);
|
|
264
|
+
await this.setWorkspaceNameValue(workspaceName);
|
|
265
|
+
await this.driverHelper.waitAndClick(Workspaces.RESTORE_WORKSPACE_BUTTON);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
async getBackupImageUrlValue(): Promise<string> {
|
|
269
|
+
Logger.debug();
|
|
270
|
+
|
|
271
|
+
return await this.driverHelper.waitAndGetValue(Workspaces.BACKUP_IMAGE, TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
async setBackupImageUrlValue(backupImageUrl: string): Promise<void> {
|
|
275
|
+
Logger.debug();
|
|
276
|
+
|
|
277
|
+
await this.driverHelper.clear(Workspaces.BACKUP_IMAGE_URL_INPUT);
|
|
278
|
+
await this.driverHelper.type(Workspaces.BACKUP_IMAGE_URL_INPUT, backupImageUrl);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
async setWorkspaceNameValue(workspaceName: string): Promise<void> {
|
|
282
|
+
Logger.debug();
|
|
283
|
+
|
|
284
|
+
await this.driverHelper.clear(Workspaces.WORKSPACE_NAME_INPUT);
|
|
285
|
+
await this.driverHelper.type(Workspaces.WORKSPACE_NAME_INPUT, workspaceName);
|
|
286
|
+
}
|
|
287
|
+
|
|
217
288
|
private getWorkspaceListItemLocator(workspaceName: string): By {
|
|
218
289
|
return By.xpath(`//tr[td//span[text()='${workspaceName}']]`);
|
|
219
290
|
}
|
|
@@ -247,4 +318,12 @@ export class Workspaces {
|
|
|
247
318
|
private getOpenWorkspaceDetailsLinkLocator(workspaceName: string): By {
|
|
248
319
|
return By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//span[text()='${workspaceName}']`);
|
|
249
320
|
}
|
|
321
|
+
|
|
322
|
+
private getActionsRestoreWorkspaceButtonLocator(workspaceName: string): By {
|
|
323
|
+
return By.xpath(`//tr[td//span[text()='${workspaceName}']]//button[@aria-label='Actions for ${workspaceName}']`);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
private getBackupStatusLocator(workspaceName: string, status: string): By {
|
|
327
|
+
return By.xpath(`//tr[td//span[text()='${workspaceName}']]//span[@aria-label="Backup status: ${status}"]`);
|
|
328
|
+
}
|
|
250
329
|
}
|
|
@@ -134,6 +134,7 @@ oc logs test-hello-pod
|
|
|
134
134
|
await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.x86_64'),
|
|
135
135
|
'Dockerfile not found in the project tree'
|
|
136
136
|
).not.undefined;
|
|
137
|
+
await projectAndFileTests.performTrustDialogs();
|
|
137
138
|
});
|
|
138
139
|
|
|
139
140
|
test('Build and push container image from workspace', function (): void {
|
|
@@ -120,6 +120,7 @@ suite(`Test image build with persistUserHome enabled (kubedock and podman) ${BAS
|
|
|
120
120
|
test('Check the project files were imported', async function (): Promise<void> {
|
|
121
121
|
const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
|
|
122
122
|
expect(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.ppc64le'), 'Files not imported').not.undefined;
|
|
123
|
+
await projectAndFileTests.performTrustDialogs();
|
|
123
124
|
});
|
|
124
125
|
|
|
125
126
|
test('Create and check container runs using kubedock and podman with persistUserHome', function (): void {
|
|
@@ -107,6 +107,7 @@ suite(
|
|
|
107
107
|
test('Check the project files were imported', async function (): Promise<void> {
|
|
108
108
|
const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
|
|
109
109
|
expect(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.ppc64le'), 'Files not imported').not.undefined;
|
|
110
|
+
await projectAndFileTests.performTrustDialogs();
|
|
110
111
|
});
|
|
111
112
|
|
|
112
113
|
test('Create and check container runs using kubedock and podman', function (): void {
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/** *******************************************************************
|
|
2
|
+
* copyright (c) 2026 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 { e2eContainer } from '../../configs/inversify.config';
|
|
11
|
+
import { ViewSection } from 'monaco-page-objects';
|
|
12
|
+
import { CLASSES, TYPES } from '../../configs/inversify.types';
|
|
13
|
+
import { expect } from 'chai';
|
|
14
|
+
import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
|
|
15
|
+
import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
|
|
16
|
+
import { LoginTests } from '../../tests-library/LoginTests';
|
|
17
|
+
import { registerRunningWorkspace } from '../MochaHooks';
|
|
18
|
+
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
19
|
+
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
20
|
+
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
21
|
+
import { Workspaces } from '../../pageobjects/dashboard/Workspaces';
|
|
22
|
+
import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
|
|
23
|
+
import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
|
|
24
|
+
import { Logger } from '../../utils/Logger';
|
|
25
|
+
import { StringUtil } from '../../utils/StringUtil';
|
|
26
|
+
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
|
|
27
|
+
import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
|
|
28
|
+
import { ShellString } from 'shelljs';
|
|
29
|
+
import { WorkspaceDetails } from '../../pageobjects/dashboard/workspace-details/WorkspaceDetails';
|
|
30
|
+
|
|
31
|
+
const factoryUrl: string =
|
|
32
|
+
FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://gh.crw-qe.com/test-automation-only/python-hello-world.git';
|
|
33
|
+
const testFileName: string = 'backup-test.txt';
|
|
34
|
+
const testFileContent: string = 'This is a test file for backup verification';
|
|
35
|
+
|
|
36
|
+
suite(`"Restore workspace from backup" test ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
37
|
+
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
38
|
+
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
39
|
+
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
40
|
+
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
41
|
+
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
42
|
+
const workspaces: Workspaces = e2eContainer.get(CLASSES.Workspaces);
|
|
43
|
+
const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
|
|
44
|
+
const workspaceDetails: WorkspaceDetails = e2eContainer.get(CLASSES.WorkspaceDetails);
|
|
45
|
+
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
46
|
+
CLASSES.KubernetesCommandLineToolsExecutor
|
|
47
|
+
);
|
|
48
|
+
const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
|
|
49
|
+
const workspaceName2: string = 'test-workspace-2';
|
|
50
|
+
|
|
51
|
+
let projectSection: ViewSection;
|
|
52
|
+
let workspaceName: string;
|
|
53
|
+
let backupImageUrl: string;
|
|
54
|
+
let projectName: string;
|
|
55
|
+
|
|
56
|
+
async function openWorkspaceDetailsBackup(workspaceName: string): Promise<void> {
|
|
57
|
+
await workspaces.clickWorkspaceListItemLink(workspaceName);
|
|
58
|
+
await workspaceDetails.waitWorkspaceTitle(workspaceName);
|
|
59
|
+
await workspaceDetails.waitLoaderDisappearance();
|
|
60
|
+
await workspaceDetails.selectTab('Backup');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
suiteSetup('Login', async function (): Promise<void> {
|
|
64
|
+
await loginTests.loginIntoChe();
|
|
65
|
+
});
|
|
66
|
+
test(`Create and open new workspace from factory:${factoryUrl}`, async function (): Promise<void> {
|
|
67
|
+
await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
|
|
68
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
69
|
+
registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test('Wait workspace readiness and project folder has been created', async function (): Promise<void> {
|
|
73
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
74
|
+
});
|
|
75
|
+
test('Check a project folder has been created', async function (): Promise<void> {
|
|
76
|
+
projectName = FACTORY_TEST_CONSTANTS.TS_SELENIUM_PROJECT_NAME || StringUtil.getProjectNameFromGitUrl(factoryUrl);
|
|
77
|
+
projectSection = await projectAndFileTests.getProjectViewSession();
|
|
78
|
+
expect(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not imported').not.undefined;
|
|
79
|
+
await projectAndFileTests.performTrustDialogs();
|
|
80
|
+
});
|
|
81
|
+
test('Setup workspace context for API operations', function (): void {
|
|
82
|
+
workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
83
|
+
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
84
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
85
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
86
|
+
});
|
|
87
|
+
test('Create test file via API', function (): void {
|
|
88
|
+
Logger.debug(`Creating test file: /projects/${projectName}/${testFileName}`);
|
|
89
|
+
const createFileCommand: string = `echo "${testFileContent}" > /projects/${projectName}/${testFileName}`;
|
|
90
|
+
const output: ShellString = containerTerminal.execInContainerCommand(createFileCommand);
|
|
91
|
+
Logger.debug(`File creation output: ${output.stdout}`);
|
|
92
|
+
expect(output.code).to.equal(0);
|
|
93
|
+
});
|
|
94
|
+
test('Verify test file content via API', function (): void {
|
|
95
|
+
Logger.debug(`Verifying test file content: /projects/${projectName}/${testFileName}`);
|
|
96
|
+
const readFileCommand: string = `cat /projects/${projectName}/${testFileName}`;
|
|
97
|
+
const output: ShellString = containerTerminal.execInContainerCommand(readFileCommand);
|
|
98
|
+
Logger.debug(`File content: ${output.stdout}`);
|
|
99
|
+
expect(output.stdout.trim()).to.equal(testFileContent);
|
|
100
|
+
});
|
|
101
|
+
test('Stop the workspace', async function (): Promise<void> {
|
|
102
|
+
expect(workspaceName, 'Workspace name not available').not.empty;
|
|
103
|
+
await dashboard.openDashboard();
|
|
104
|
+
await dashboard.waitPage();
|
|
105
|
+
await dashboard.stopWorkspaceByUI(workspaceName);
|
|
106
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
107
|
+
await workspaces.waitWorkspaceWithStoppedStatus(workspaceName);
|
|
108
|
+
await workspaces.waitBackupStatus(workspaceName, 'Never');
|
|
109
|
+
});
|
|
110
|
+
test('Wait for backup completion', async function (): Promise<void> {
|
|
111
|
+
await workspaces.waitWorkspaceListItem(workspaceName);
|
|
112
|
+
await workspaces.waitBackupStatus(workspaceName, 'Success');
|
|
113
|
+
});
|
|
114
|
+
test('Get backup image URL', async function (): Promise<void> {
|
|
115
|
+
await openWorkspaceDetailsBackup(workspaceName);
|
|
116
|
+
backupImageUrl = await workspaces.getBackupImageUrlValue();
|
|
117
|
+
Logger.info(`Retrieved backup image URL: ${backupImageUrl}`);
|
|
118
|
+
});
|
|
119
|
+
test('Delete the workspace', async function (): Promise<void> {
|
|
120
|
+
await dashboard.deleteStoppedWorkspaceByUI(workspaceName);
|
|
121
|
+
});
|
|
122
|
+
test('Open backups page', async function (): Promise<void> {
|
|
123
|
+
await workspaces.openBackupsPage();
|
|
124
|
+
await workspaces.waitWorkspaceListItem(workspaceName);
|
|
125
|
+
await workspaces.waitBackupStatus(workspaceName, 'Success');
|
|
126
|
+
});
|
|
127
|
+
test('Restore workspace from default registry', async function (): Promise<void> {
|
|
128
|
+
const parentGUID: string = await browserTabsUtil.getCurrentWindowHandle();
|
|
129
|
+
await workspaces.clickCreateFromBackupButton(workspaceName);
|
|
130
|
+
await workspaces.restoreWorkspaceFromDefaultRegistry();
|
|
131
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
132
|
+
});
|
|
133
|
+
test('Obtain workspace name after restore', async function (): Promise<void> {
|
|
134
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
135
|
+
const obtainedName: string = WorkspaceHandlingTests.getWorkspaceName();
|
|
136
|
+
Logger.info(`Obtained workspace name after first restore: '${obtainedName}'`);
|
|
137
|
+
});
|
|
138
|
+
test('Register restored workspace', function (): void {
|
|
139
|
+
registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
|
|
140
|
+
});
|
|
141
|
+
test('Wait workspace readiness after restore', async function (): Promise<void> {
|
|
142
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
143
|
+
await projectAndFileTests.performTrustDialogs();
|
|
144
|
+
projectSection = await projectAndFileTests.getProjectViewSession();
|
|
145
|
+
});
|
|
146
|
+
test('Setup workspace context for API operations after restore', function (): void {
|
|
147
|
+
workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
148
|
+
Logger.info(`Workspace name for API setup after first restore: '${workspaceName}'`);
|
|
149
|
+
expect(workspaceName, 'Workspace name should not be empty after restore').not.empty;
|
|
150
|
+
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
151
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
152
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
153
|
+
});
|
|
154
|
+
test('Verify project folder exists after restore', async function (): Promise<void> {
|
|
155
|
+
await projectAndFileTests.expandProjectTreeItem(projectSection, projectName);
|
|
156
|
+
expect(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not restored').not.undefined;
|
|
157
|
+
});
|
|
158
|
+
test('Verify test file content is intact after restore via API', function (): void {
|
|
159
|
+
Logger.debug(`Verifying restored file content: /projects/${projectName}/${testFileName}`);
|
|
160
|
+
const readFileCommand: string = `cat /projects/${projectName}/${testFileName}`;
|
|
161
|
+
const output: ShellString = containerTerminal.execInContainerCommand(readFileCommand);
|
|
162
|
+
Logger.debug(`Restored file content: ${output.stdout}`);
|
|
163
|
+
expect(output.stdout.trim()).to.equal(testFileContent);
|
|
164
|
+
});
|
|
165
|
+
test('Delete the workspace', async function (): Promise<void> {
|
|
166
|
+
await dashboard.openDashboard();
|
|
167
|
+
await dashboard.waitPage();
|
|
168
|
+
await dashboard.deleteStoppedWorkspaceByUI(workspaceName);
|
|
169
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
170
|
+
});
|
|
171
|
+
test('Open backups page', async function (): Promise<void> {
|
|
172
|
+
await workspaces.openBackupsPage();
|
|
173
|
+
await workspaces.waitWorkspaceListItem(workspaceName);
|
|
174
|
+
await workspaces.waitBackupStatus(workspaceName, 'Success');
|
|
175
|
+
});
|
|
176
|
+
test('Restore workspace from backup image URL ', async function (): Promise<void> {
|
|
177
|
+
const parentGUID: string = await browserTabsUtil.getCurrentWindowHandle();
|
|
178
|
+
await workspaces.clickCreateFromBackupButton(workspaceName);
|
|
179
|
+
await workspaces.restoreWorkspaceFromExternalRegistry(backupImageUrl, workspaceName2);
|
|
180
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
181
|
+
});
|
|
182
|
+
test('Obtain workspace name after second restore', async function (): Promise<void> {
|
|
183
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
184
|
+
const obtainedName: string = WorkspaceHandlingTests.getWorkspaceName();
|
|
185
|
+
Logger.info(`Obtained workspace name after second restore: '${obtainedName}'`);
|
|
186
|
+
});
|
|
187
|
+
test('Register second restored workspace', function (): void {
|
|
188
|
+
registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
|
|
189
|
+
});
|
|
190
|
+
test('Wait workspace readiness after second restore', async function (): Promise<void> {
|
|
191
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
192
|
+
await projectAndFileTests.performTrustDialogs();
|
|
193
|
+
projectSection = await projectAndFileTests.getProjectViewSession();
|
|
194
|
+
});
|
|
195
|
+
test('Setup workspace context for API operations after second restore', function (): void {
|
|
196
|
+
workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
197
|
+
Logger.info(`Workspace name for API setup after second restore: '${workspaceName}'`);
|
|
198
|
+
expect(workspaceName, 'Workspace name should not be empty after second restore').not.empty;
|
|
199
|
+
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
200
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
201
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
202
|
+
});
|
|
203
|
+
test('Verify project folder exists after second restore', async function (): Promise<void> {
|
|
204
|
+
await projectAndFileTests.expandProjectTreeItem(projectSection, projectName);
|
|
205
|
+
expect(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not restored').not.undefined;
|
|
206
|
+
});
|
|
207
|
+
test('Verify test file content is intact after second restore via API', function (): void {
|
|
208
|
+
Logger.debug(`Verifying restored file content: /projects/${projectName}/${testFileName}`);
|
|
209
|
+
const readFileCommand: string = `cat /projects/${projectName}/${testFileName}`;
|
|
210
|
+
const output: ShellString = containerTerminal.execInContainerCommand(readFileCommand);
|
|
211
|
+
Logger.debug(`Restored file content: ${output.stdout}`);
|
|
212
|
+
expect(output.stdout.trim()).to.equal(testFileContent);
|
|
213
|
+
});
|
|
214
|
+
suiteTeardown('Open dashboard and close all other tabs', async function (): Promise<void> {
|
|
215
|
+
await dashboard.openDashboard();
|
|
216
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
217
|
+
});
|
|
218
|
+
suiteTeardown('Stop and delete workspace by API', async function (): Promise<void> {
|
|
219
|
+
await testWorkspaceUtil.stopAndDeleteWorkspaceByName(workspaceName);
|
|
220
|
+
});
|
|
221
|
+
suiteTeardown('Unregister running workspace', function (): void {
|
|
222
|
+
registerRunningWorkspace('');
|
|
223
|
+
});
|
|
224
|
+
});
|
|
@@ -243,4 +243,14 @@ export class ProjectAndFileTests {
|
|
|
243
243
|
|
|
244
244
|
throw new Error(`File "${fileName}" was not opened in the editor after ${maxAttempts} attempts`);
|
|
245
245
|
}
|
|
246
|
+
|
|
247
|
+
async expandProjectTreeItem(projectSection: ViewSection, projectName: string): Promise<void> {
|
|
248
|
+
Logger.debug(`${projectName}`);
|
|
249
|
+
const projectTreeItem: ViewItem | undefined = await projectSection.findItem(projectName, 2);
|
|
250
|
+
if (!projectTreeItem) {
|
|
251
|
+
throw new Error(`Project tree item "${projectName}" not found`);
|
|
252
|
+
}
|
|
253
|
+
await projectTreeItem.click();
|
|
254
|
+
await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT);
|
|
255
|
+
}
|
|
246
256
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** *******************************************************************
|
|
2
|
-
* copyright (c) 2023-
|
|
2
|
+
* copyright (c) 2023-2026 Red Hat, Inc.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made
|
|
5
5
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -78,21 +78,68 @@ export class KubernetesCommandLineToolsExecutor implements IKubernetesCommandLin
|
|
|
78
78
|
|
|
79
79
|
getContainerName(): string {
|
|
80
80
|
Logger.debug(`${this.kubernetesCommandLineTool} - get container name.`);
|
|
81
|
+
Logger.debug(`Getting container name for pod: '${KubernetesCommandLineToolsExecutor.pod}' in namespace: ${this.namespace}`);
|
|
81
82
|
|
|
82
83
|
const output: ShellString = this.shellExecutor.executeCommand(
|
|
83
|
-
`${this.kubernetesCommandLineTool} get ${KubernetesCommandLineToolsExecutor.pod} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`
|
|
84
|
+
`${this.kubernetesCommandLineTool} get pod ${KubernetesCommandLineToolsExecutor.pod} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`
|
|
84
85
|
);
|
|
85
86
|
echo('\n');
|
|
86
|
-
|
|
87
|
+
const containerName: string = output.stderr ? output.stderr : output.stdout;
|
|
88
|
+
Logger.debug(`Found container name: '${containerName}'`);
|
|
89
|
+
return containerName;
|
|
87
90
|
}
|
|
88
91
|
|
|
89
92
|
getWorkspacePodName(): string {
|
|
90
93
|
Logger.debug(`${this.kubernetesCommandLineTool} - get workspace pod name.`);
|
|
94
|
+
Logger.debug(
|
|
95
|
+
`Looking for pod with label: controller.devfile.io/devworkspace_name=${this.workspaceName} in namespace: ${this.namespace}`
|
|
96
|
+
);
|
|
91
97
|
|
|
92
98
|
const output: ShellString = this.shellExecutor.executeCommand(
|
|
93
99
|
`${this.kubernetesCommandLineTool} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`
|
|
94
100
|
);
|
|
95
|
-
|
|
101
|
+
let podName: string = output.stderr ? output.stderr : output.stdout.replace('\n', '');
|
|
102
|
+
Logger.debug(`Found pod name (before removing prefix): '${podName}'`);
|
|
103
|
+
|
|
104
|
+
// if pod not found, try to find by workspace name prefix (for restored workspaces with suffix)
|
|
105
|
+
if (!podName || podName.trim() === '') {
|
|
106
|
+
Logger.warn(`No pod found with exact label controller.devfile.io/devworkspace_name=${this.workspaceName}`);
|
|
107
|
+
Logger.debug(`Trying to find pod with workspace name starting with: ${this.workspaceName}`);
|
|
108
|
+
|
|
109
|
+
// get all pods and filter by label prefix
|
|
110
|
+
const allPodsOutput: ShellString = this.shellExecutor.executeCommand(
|
|
111
|
+
`${this.kubernetesCommandLineTool} get pods -n ${this.namespace} -o jsonpath='{range .items[*]}{.metadata.name}{"\\t"}{.metadata.labels.controller\\.devfile\\.io/devworkspace_name}{"\\n"}{end}'`
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
if (allPodsOutput.stdout && this.workspaceName) {
|
|
115
|
+
const lines: string[] = allPodsOutput.stdout.split('\n').filter((line: string): boolean => line.trim() !== '');
|
|
116
|
+
for (const line of lines) {
|
|
117
|
+
const [name, label] = line.split('\t');
|
|
118
|
+
if (label && this.workspaceName && label.startsWith(this.workspaceName)) {
|
|
119
|
+
Logger.info(`Found pod by prefix match: ${name} with label ${label}`);
|
|
120
|
+
podName = name;
|
|
121
|
+
// update workspace name to the actual one with suffix
|
|
122
|
+
this._workspaceName = label;
|
|
123
|
+
Logger.info(`Updated workspace name to: ${this._workspaceName}`);
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// if still not found, list all pods for debugging
|
|
130
|
+
if (!podName || podName.trim() === '') {
|
|
131
|
+
Logger.warn('Listing all pods in namespace for debugging:');
|
|
132
|
+
const debugPods: ShellString = this.shellExecutor.executeCommand(
|
|
133
|
+
`${this.kubernetesCommandLineTool} get pods -n ${this.namespace} --show-labels`
|
|
134
|
+
);
|
|
135
|
+
Logger.warn(`All pods:\n${debugPods.stdout}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// remove 'pod/' prefix if present (oc get -o name returns 'pod/podname')
|
|
140
|
+
const cleanPodName: string = podName.replace(/^pod\//, '');
|
|
141
|
+
Logger.debug(`Clean pod name (after removing prefix): '${cleanPodName}'`);
|
|
142
|
+
return cleanPodName;
|
|
96
143
|
}
|
|
97
144
|
|
|
98
145
|
deleteDevWorkspace(devfileName?: string): void {
|