@eclipse-che/che-e2e 7.121.0-next-38dc0b7 → 7.121.0-next-0ae5289

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.
@@ -27,6 +27,7 @@ export const TIMEOUT_CONSTANTS: {
27
27
  TS_SELENIUM_WAIT_FOR_URL: number;
28
28
  TS_WAIT_LOADER_ABSENCE_TIMEOUT: number;
29
29
  TS_WAIT_LOADER_PRESENCE_TIMEOUT: number;
30
+ TS_WAIT_BACKUP_STATUS_TIMEOUT: number;
30
31
  } = {
31
32
  /**
32
33
  * default amount of tries, "5" by default.
@@ -88,10 +89,15 @@ export const TIMEOUT_CONSTANTS: {
88
89
  TS_CLICK_DASHBOARD_ITEM_TIMEOUT: Number(process.env.TS_CLICK_DASHBOARD_ITEM_TIMEOUT) || 2_000,
89
90
 
90
91
  /**
91
- * timeout for workspace stopped status, "30 000" by default
92
+ * timeout for workspace stopped status, "60 000" by default
92
93
  */
93
94
  TS_DASHBOARD_WORKSPACE_STOP_TIMEOUT: Number(process.env.TS_DASHBOARD_WORKSPACE_STOP_TIMEOUT) || 60_000,
94
95
 
96
+ /**
97
+ * timeout for waiting for backup status, "360 000" by default
98
+ */
99
+ TS_WAIT_BACKUP_STATUS_TIMEOUT: Number(process.env.TS_WAIT_BACKUP_STATUS_TIMEOUT) || 360_000,
100
+
95
101
  // -------------------------------------------- PROJECT TREE --------------------------------------------
96
102
 
97
103
  /**
@@ -102,7 +108,7 @@ export const TIMEOUT_CONSTANTS: {
102
108
  // -------------------------------------------- EDITOR --------------------------------------------
103
109
 
104
110
  /**
105
- * timeout for interactions with editor tab - wait, click, select, "8 000" by default.
111
+ * timeout for interactions with editor tab - wait, click, select, "20 000" by default.
106
112
  */
107
113
  TS_EDITOR_TAB_INTERACTION_TIMEOUT: Number(process.env.TS_OPEN_PROJECT_TREE_TIMEOUT) || 20_000,
108
114
 
@@ -58,9 +58,13 @@ exports.TIMEOUT_CONSTANTS = {
58
58
  */
59
59
  TS_CLICK_DASHBOARD_ITEM_TIMEOUT: Number(process.env.TS_CLICK_DASHBOARD_ITEM_TIMEOUT) || 2000,
60
60
  /**
61
- * timeout for workspace stopped status, "30 000" by default
61
+ * timeout for workspace stopped status, "60 000" by default
62
62
  */
63
63
  TS_DASHBOARD_WORKSPACE_STOP_TIMEOUT: Number(process.env.TS_DASHBOARD_WORKSPACE_STOP_TIMEOUT) || 60000,
64
+ /**
65
+ * timeout for waiting for backup status, "360 000" by default
66
+ */
67
+ TS_WAIT_BACKUP_STATUS_TIMEOUT: Number(process.env.TS_WAIT_BACKUP_STATUS_TIMEOUT) || 360000,
64
68
  // -------------------------------------------- PROJECT TREE --------------------------------------------
65
69
  /**
66
70
  * expand item in project tree, "10 000" by default.
@@ -68,7 +72,7 @@ exports.TIMEOUT_CONSTANTS = {
68
72
  TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT: Number(process.env.TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT) || 10000,
69
73
  // -------------------------------------------- EDITOR --------------------------------------------
70
74
  /**
71
- * timeout for interactions with editor tab - wait, click, select, "8 000" by default.
75
+ * timeout for interactions with editor tab - wait, click, select, "20 000" by default.
72
76
  */
73
77
  TS_EDITOR_TAB_INTERACTION_TIMEOUT: Number(process.env.TS_OPEN_PROJECT_TREE_TIMEOUT) || 20000,
74
78
  // -------------------------------------------- IDE --------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"TIMEOUT_CONSTANTS.js","sourceRoot":"","sources":["../../constants/TIMEOUT_CONSTANTS.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;wEAQwE;AAC3D,QAAA,iBAAiB,GAoB1B;IACH;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC;IAEnF;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,IAAI;IAEpF,mHAAmH;IAEnH;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAM;IAEhF;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAM;IAEtE;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,MAAO;IAEzE;;OAEG;IACH,mCAAmC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,MAAO;IAEvG;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,KAAM;IAE1F;;OAEG;IACH,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,KAAM;IAE5F;;OAEG;IACH,+BAA+B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,KAAM;IAE9F,sGAAsG;IAEtG;;OAEG;IACH,gCAAgC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,IAAK;IAE/F;;OAEG;IACH,+BAA+B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,IAAK;IAE7F;;OAEG;IACH,mCAAmC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,KAAM;IAEtG,yGAAyG;IAEzG;;OAEG;IACH,mCAAmC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,KAAM;IAEtG,mGAAmG;IAEnG;;OAEG;IACH,iCAAiC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,KAAM;IAE7F,gGAAgG;IAEhG;;OAEG;IACH,gCAAgC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,KAAM;IAEhG;;OAEG;IACH,iCAAiC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,IAAK;IAEjG;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,KAAM;IAExF,8FAA8F;IAE9F;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,KAAM;IAE1F;;OAEG;IACH,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,KAAM;CAC5F,CAAC"}
1
+ {"version":3,"file":"TIMEOUT_CONSTANTS.js","sourceRoot":"","sources":["../../constants/TIMEOUT_CONSTANTS.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;wEAQwE;AAC3D,QAAA,iBAAiB,GAqB1B;IACH;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC;IAEnF;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,IAAI;IAEpF,mHAAmH;IAEnH;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAM;IAEhF;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAM;IAEtE;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,MAAO;IAEzE;;OAEG;IACH,mCAAmC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,MAAO;IAEvG;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,KAAM;IAE1F;;OAEG;IACH,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,KAAM;IAE5F;;OAEG;IACH,+BAA+B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,KAAM;IAE9F,sGAAsG;IAEtG;;OAEG;IACH,gCAAgC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,IAAK;IAE/F;;OAEG;IACH,+BAA+B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,IAAK;IAE7F;;OAEG;IACH,mCAAmC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,KAAM;IAEtG;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,MAAO;IAE3F,yGAAyG;IAEzG;;OAEG;IACH,mCAAmC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,KAAM;IAEtG,mGAAmG;IAEnG;;OAEG;IACH,iCAAiC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,KAAM;IAE7F,gGAAgG;IAEhG;;OAEG;IACH,gCAAgC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,KAAM;IAEhG;;OAEG;IACH,iCAAiC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,IAAK;IAEjG;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,KAAM;IAExF,8FAA8F;IAE9F;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,KAAM;IAE1F;;OAEG;IACH,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,KAAM;CAC5F,CAAC"}
@@ -149,6 +149,45 @@ let Workspaces = Workspaces_1 = class Workspaces {
149
149
  Logger_1.Logger.debug();
150
150
  return await this.driverHelper.waitAndGetElementAttribute(Workspaces_1.LEARN_MORE_DOC_LINK, 'href');
151
151
  }
152
+ async waitBackupStatus(workspaceName, status, timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_WAIT_BACKUP_STATUS_TIMEOUT) {
153
+ Logger_1.Logger.debug(`Backup status for the "${workspaceName}" list item`);
154
+ await this.driverHelper.waitVisibility(this.getBackupStatusLocator(workspaceName, status), timeout);
155
+ }
156
+ async openBackupsPage(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_CLICK_DASHBOARD_ITEM_TIMEOUT) {
157
+ Logger_1.Logger.debug();
158
+ await this.driverHelper.waitAndClick(Workspaces_1.BACKUPS_BUTTON, timeout);
159
+ }
160
+ async clickCreateFromBackupButton(workspaceName, timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
161
+ Logger_1.Logger.debug(`"${workspaceName}"`);
162
+ await this.driverHelper.waitAndClick(this.getActionsRestoreWorkspaceButtonLocator(workspaceName), timeout);
163
+ await this.driverHelper.waitAndClick(Workspaces_1.CREATE_FROM_BACKUP_BUTTON, timeout);
164
+ }
165
+ async restoreWorkspaceFromDefaultRegistry() {
166
+ Logger_1.Logger.debug();
167
+ await this.driverHelper.waitAndClick(Workspaces_1.RESTORE_WORKSPACE_BUTTON);
168
+ await this.driverHelper.waitAndClick(Workspaces_1.RESTORE_CONFIRM_BUTTON);
169
+ }
170
+ async restoreWorkspaceFromExternalRegistry(backupImageUrl, workspaceName) {
171
+ Logger_1.Logger.debug();
172
+ await this.driverHelper.waitAndClick(Workspaces_1.EXTERNAL_REGISTRY_MODE_BUTTON);
173
+ await this.setBackupImageUrlValue(backupImageUrl);
174
+ await this.setWorkspaceNameValue(workspaceName);
175
+ await this.driverHelper.waitAndClick(Workspaces_1.RESTORE_WORKSPACE_BUTTON);
176
+ }
177
+ async getBackupImageUrlValue() {
178
+ Logger_1.Logger.debug();
179
+ return await this.driverHelper.waitAndGetValue(Workspaces_1.BACKUP_IMAGE, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT);
180
+ }
181
+ async setBackupImageUrlValue(backupImageUrl) {
182
+ Logger_1.Logger.debug();
183
+ await this.driverHelper.clear(Workspaces_1.BACKUP_IMAGE_URL_INPUT);
184
+ await this.driverHelper.type(Workspaces_1.BACKUP_IMAGE_URL_INPUT, backupImageUrl);
185
+ }
186
+ async setWorkspaceNameValue(workspaceName) {
187
+ Logger_1.Logger.debug();
188
+ await this.driverHelper.clear(Workspaces_1.WORKSPACE_NAME_INPUT);
189
+ await this.driverHelper.type(Workspaces_1.WORKSPACE_NAME_INPUT, workspaceName);
190
+ }
152
191
  getWorkspaceListItemLocator(workspaceName) {
153
192
  return selenium_webdriver_1.By.xpath(`//tr[td//span[text()='${workspaceName}']]`);
154
193
  }
@@ -172,6 +211,12 @@ let Workspaces = Workspaces_1 = class Workspaces {
172
211
  getOpenWorkspaceDetailsLinkLocator(workspaceName) {
173
212
  return selenium_webdriver_1.By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//span[text()='${workspaceName}']`);
174
213
  }
214
+ getActionsRestoreWorkspaceButtonLocator(workspaceName) {
215
+ return selenium_webdriver_1.By.xpath(`//tr[td//span[text()='${workspaceName}']]//button[@aria-label='Actions for ${workspaceName}']`);
216
+ }
217
+ getBackupStatusLocator(workspaceName, status) {
218
+ return selenium_webdriver_1.By.xpath(`//tr[td//span[text()='${workspaceName}']]//span[@aria-label="Backup status: ${status}"]`);
219
+ }
175
220
  };
176
221
  Workspaces.ADD_WORKSPACE_BUTTON = selenium_webdriver_1.By.css('button[aria-label="Add Workspace"]');
177
222
  Workspaces.WORKSPACE_ITEM_TABLE_NAME_SECTION = selenium_webdriver_1.By.xpath('//td[@data-label="Name"]/span/a');
@@ -180,6 +225,14 @@ Workspaces.WORKSPACE_ACTION_POPUP = selenium_webdriver_1.By.css('div[class*="wor
180
225
  Workspaces.DELETE_CONFIRMATION_CHECKBOX = selenium_webdriver_1.By.xpath('//input[@data-testid="confirmation-checkbox"]');
181
226
  Workspaces.CONFIRMATION_WINDOW = selenium_webdriver_1.By.xpath('//div[@aria-label="Delete workspaces confirmation window"]');
182
227
  Workspaces.LEARN_MORE_DOC_LINK = selenium_webdriver_1.By.xpath('//div/p/a');
228
+ Workspaces.BACKUPS_BUTTON = selenium_webdriver_1.By.id('view-backups');
229
+ Workspaces.BACKUP_IMAGE = selenium_webdriver_1.By.css('input[aria-label="Copyable input"]');
230
+ Workspaces.CREATE_FROM_BACKUP_BUTTON = selenium_webdriver_1.By.xpath('//span[text()="Create from Backup"]');
231
+ Workspaces.RESTORE_WORKSPACE_BUTTON = selenium_webdriver_1.By.xpath('//span[text()="Restore Workspace"]');
232
+ Workspaces.RESTORE_CONFIRM_BUTTON = selenium_webdriver_1.By.xpath('//span[text()="Restore"]');
233
+ Workspaces.EXTERNAL_REGISTRY_MODE_BUTTON = selenium_webdriver_1.By.xpath('//span[text()="External registry"]');
234
+ Workspaces.BACKUP_IMAGE_URL_INPUT = selenium_webdriver_1.By.css('input[aria-label="Backup image URL"]');
235
+ Workspaces.WORKSPACE_NAME_INPUT = selenium_webdriver_1.By.css('input[aria-label="Workspace name"]');
183
236
  Workspaces = Workspaces_1 = __decorate([
184
237
  (0, inversify_1.injectable)(),
185
238
  __param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
@@ -1 +1 @@
1
- {"version":3,"file":"Workspaces.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/Workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Workspaces.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/Workspaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /** *******************************************************************
4
+ * copyright (c) 2026 Red Hat, Inc.
5
+ *
6
+ * This program and the accompanying materials are made
7
+ * available under the terms of the Eclipse Public License 2.0
8
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
9
+ *
10
+ * SPDX-License-Identifier: EPL-2.0
11
+ **********************************************************************/
12
+ const inversify_config_1 = require("../../configs/inversify.config");
13
+ const inversify_types_1 = require("../../configs/inversify.types");
14
+ const chai_1 = require("chai");
15
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
16
+ const MochaHooks_1 = require("../MochaHooks");
17
+ const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
18
+ const FACTORY_TEST_CONSTANTS_1 = require("../../constants/FACTORY_TEST_CONSTANTS");
19
+ const Logger_1 = require("../../utils/Logger");
20
+ const StringUtil_1 = require("../../utils/StringUtil");
21
+ const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
22
+ const factoryUrl = FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://gh.crw-qe.com/test-automation-only/python-hello-world.git';
23
+ const testFileName = 'backup-test.txt';
24
+ const testFileContent = 'This is a test file for backup verification';
25
+ suite(`"Restore workspace from backup" test ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
26
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
27
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
28
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
29
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
30
+ const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
31
+ const workspaces = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Workspaces);
32
+ const testWorkspaceUtil = inversify_config_1.e2eContainer.get(inversify_types_1.TYPES.WorkspaceUtil);
33
+ const workspaceDetails = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceDetails);
34
+ const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
35
+ const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
36
+ const workspaceName2 = 'test-workspace-2';
37
+ let projectSection;
38
+ let workspaceName;
39
+ let backupImageUrl;
40
+ let projectName;
41
+ async function openWorkspaceDetailsBackup(workspaceName) {
42
+ await workspaces.clickWorkspaceListItemLink(workspaceName);
43
+ await workspaceDetails.waitWorkspaceTitle(workspaceName);
44
+ await workspaceDetails.waitLoaderDisappearance();
45
+ await workspaceDetails.selectTab('Backup');
46
+ }
47
+ suiteSetup('Login', async function () {
48
+ await loginTests.loginIntoChe();
49
+ });
50
+ test(`Create and open new workspace from factory:${factoryUrl}`, async function () {
51
+ await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
52
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
53
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
54
+ });
55
+ test('Wait workspace readiness and project folder has been created', async function () {
56
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
57
+ });
58
+ test('Check a project folder has been created', async function () {
59
+ projectName = FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_PROJECT_NAME || StringUtil_1.StringUtil.getProjectNameFromGitUrl(factoryUrl);
60
+ projectSection = await projectAndFileTests.getProjectViewSession();
61
+ (0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not imported').not.undefined;
62
+ await projectAndFileTests.performTrustDialogs();
63
+ });
64
+ test('Setup workspace context for API operations', function () {
65
+ workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
66
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
67
+ kubernetesCommandLineToolsExecutor.loginToOcp();
68
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
69
+ });
70
+ test('Create test file via API', function () {
71
+ Logger_1.Logger.debug(`Creating test file: /projects/${projectName}/${testFileName}`);
72
+ const createFileCommand = `echo "${testFileContent}" > /projects/${projectName}/${testFileName}`;
73
+ const output = containerTerminal.execInContainerCommand(createFileCommand);
74
+ Logger_1.Logger.debug(`File creation output: ${output.stdout}`);
75
+ (0, chai_1.expect)(output.code).to.equal(0);
76
+ });
77
+ test('Verify test file content via API', function () {
78
+ Logger_1.Logger.debug(`Verifying test file content: /projects/${projectName}/${testFileName}`);
79
+ const readFileCommand = `cat /projects/${projectName}/${testFileName}`;
80
+ const output = containerTerminal.execInContainerCommand(readFileCommand);
81
+ Logger_1.Logger.debug(`File content: ${output.stdout}`);
82
+ (0, chai_1.expect)(output.stdout.trim()).to.equal(testFileContent);
83
+ });
84
+ test('Stop the workspace', async function () {
85
+ (0, chai_1.expect)(workspaceName, 'Workspace name not available').not.empty;
86
+ await dashboard.openDashboard();
87
+ await dashboard.waitPage();
88
+ await dashboard.stopWorkspaceByUI(workspaceName);
89
+ await browserTabsUtil.closeAllTabsExceptCurrent();
90
+ await workspaces.waitWorkspaceWithStoppedStatus(workspaceName);
91
+ await workspaces.waitBackupStatus(workspaceName, 'Never');
92
+ });
93
+ test('Wait for backup completion', async function () {
94
+ await workspaces.waitWorkspaceListItem(workspaceName);
95
+ await workspaces.waitBackupStatus(workspaceName, 'Success');
96
+ });
97
+ test('Get backup image URL', async function () {
98
+ await openWorkspaceDetailsBackup(workspaceName);
99
+ backupImageUrl = await workspaces.getBackupImageUrlValue();
100
+ Logger_1.Logger.info(`Retrieved backup image URL: ${backupImageUrl}`);
101
+ });
102
+ test('Delete the workspace', async function () {
103
+ await dashboard.deleteStoppedWorkspaceByUI(workspaceName);
104
+ });
105
+ test('Open backups page', async function () {
106
+ await workspaces.openBackupsPage();
107
+ await workspaces.waitWorkspaceListItem(workspaceName);
108
+ await workspaces.waitBackupStatus(workspaceName, 'Success');
109
+ });
110
+ test('Restore workspace from default registry', async function () {
111
+ const parentGUID = await browserTabsUtil.getCurrentWindowHandle();
112
+ await workspaces.clickCreateFromBackupButton(workspaceName);
113
+ await workspaces.restoreWorkspaceFromDefaultRegistry();
114
+ await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
115
+ });
116
+ test('Obtain workspace name after restore', async function () {
117
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
118
+ const obtainedName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
119
+ Logger_1.Logger.info(`Obtained workspace name after first restore: '${obtainedName}'`);
120
+ });
121
+ test('Register restored workspace', function () {
122
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
123
+ });
124
+ test('Wait workspace readiness after restore', async function () {
125
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
126
+ await projectAndFileTests.performTrustDialogs();
127
+ projectSection = await projectAndFileTests.getProjectViewSession();
128
+ });
129
+ test('Setup workspace context for API operations after restore', function () {
130
+ workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
131
+ Logger_1.Logger.info(`Workspace name for API setup after first restore: '${workspaceName}'`);
132
+ (0, chai_1.expect)(workspaceName, 'Workspace name should not be empty after restore').not.empty;
133
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
134
+ kubernetesCommandLineToolsExecutor.loginToOcp();
135
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
136
+ });
137
+ test('Verify project folder exists after restore', async function () {
138
+ await projectAndFileTests.expandProjectTreeItem(projectSection, projectName);
139
+ (0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not restored').not.undefined;
140
+ });
141
+ test('Verify test file content is intact after restore via API', function () {
142
+ Logger_1.Logger.debug(`Verifying restored file content: /projects/${projectName}/${testFileName}`);
143
+ const readFileCommand = `cat /projects/${projectName}/${testFileName}`;
144
+ const output = containerTerminal.execInContainerCommand(readFileCommand);
145
+ Logger_1.Logger.debug(`Restored file content: ${output.stdout}`);
146
+ (0, chai_1.expect)(output.stdout.trim()).to.equal(testFileContent);
147
+ });
148
+ test('Delete the workspace', async function () {
149
+ await dashboard.openDashboard();
150
+ await dashboard.waitPage();
151
+ await dashboard.deleteStoppedWorkspaceByUI(workspaceName);
152
+ await browserTabsUtil.closeAllTabsExceptCurrent();
153
+ });
154
+ test('Open backups page', async function () {
155
+ await workspaces.openBackupsPage();
156
+ await workspaces.waitWorkspaceListItem(workspaceName);
157
+ await workspaces.waitBackupStatus(workspaceName, 'Success');
158
+ });
159
+ test('Restore workspace from backup image URL ', async function () {
160
+ const parentGUID = await browserTabsUtil.getCurrentWindowHandle();
161
+ await workspaces.clickCreateFromBackupButton(workspaceName);
162
+ await workspaces.restoreWorkspaceFromExternalRegistry(backupImageUrl, workspaceName2);
163
+ await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
164
+ });
165
+ test('Obtain workspace name after second restore', async function () {
166
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
167
+ const obtainedName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
168
+ Logger_1.Logger.info(`Obtained workspace name after second restore: '${obtainedName}'`);
169
+ });
170
+ test('Register second restored workspace', function () {
171
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
172
+ });
173
+ test('Wait workspace readiness after second restore', async function () {
174
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
175
+ await projectAndFileTests.performTrustDialogs();
176
+ projectSection = await projectAndFileTests.getProjectViewSession();
177
+ });
178
+ test('Setup workspace context for API operations after second restore', function () {
179
+ workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
180
+ Logger_1.Logger.info(`Workspace name for API setup after second restore: '${workspaceName}'`);
181
+ (0, chai_1.expect)(workspaceName, 'Workspace name should not be empty after second restore').not.empty;
182
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
183
+ kubernetesCommandLineToolsExecutor.loginToOcp();
184
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
185
+ });
186
+ test('Verify project folder exists after second restore', async function () {
187
+ await projectAndFileTests.expandProjectTreeItem(projectSection, projectName);
188
+ (0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not restored').not.undefined;
189
+ });
190
+ test('Verify test file content is intact after second restore via API', function () {
191
+ Logger_1.Logger.debug(`Verifying restored file content: /projects/${projectName}/${testFileName}`);
192
+ const readFileCommand = `cat /projects/${projectName}/${testFileName}`;
193
+ const output = containerTerminal.execInContainerCommand(readFileCommand);
194
+ Logger_1.Logger.debug(`Restored file content: ${output.stdout}`);
195
+ (0, chai_1.expect)(output.stdout.trim()).to.equal(testFileContent);
196
+ });
197
+ suiteTeardown('Open dashboard and close all other tabs', async function () {
198
+ await dashboard.openDashboard();
199
+ await browserTabsUtil.closeAllTabsExceptCurrent();
200
+ });
201
+ suiteTeardown('Stop and delete workspace by API', async function () {
202
+ await testWorkspaceUtil.stopAndDeleteWorkspaceByName(workspaceName);
203
+ });
204
+ suiteTeardown('Unregister running workspace', function () {
205
+ (0, MochaHooks_1.registerRunningWorkspace)('');
206
+ });
207
+ });
208
+ //# sourceMappingURL=WorkspaceBackupRestore.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceBackupRestore.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/WorkspaceBackupRestore.spec.ts"],"names":[],"mappings":"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"}
@@ -201,6 +201,15 @@ let ProjectAndFileTests = ProjectAndFileTests_1 = class ProjectAndFileTests {
201
201
  }
202
202
  throw new Error(`File "${fileName}" was not opened in the editor after ${maxAttempts} attempts`);
203
203
  }
204
+ async expandProjectTreeItem(projectSection, projectName) {
205
+ Logger_1.Logger.debug(`${projectName}`);
206
+ const projectTreeItem = await projectSection.findItem(projectName, 2);
207
+ if (!projectTreeItem) {
208
+ throw new Error(`Project tree item "${projectName}" not found`);
209
+ }
210
+ await projectTreeItem.click();
211
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT);
212
+ }
204
213
  };
205
214
  ProjectAndFileTests.BRANCH_NAME_XPATH = monaco_page_objects_1.By.xpath('//a[contains(@aria-label,"Checkout Branch/Tag...")]');
206
215
  ProjectAndFileTests.TRUST_PUBLISHER_BOX = monaco_page_objects_1.By.xpath('//*[@class="dialog-message-text" and contains(text(), "publisher")]');
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectAndFileTests.js","sourceRoot":"","sources":["../../tests-library/ProjectAndFileTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectAndFileTests.js","sourceRoot":"","sources":["../../tests-library/ProjectAndFileTests.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ var KubernetesCommandLineToolsExecutor_1;
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.ContainerTerminal = exports.KubernetesCommandLineToolsExecutor = void 0;
40
40
  /** *******************************************************************
41
- * copyright (c) 2023-2025 Red Hat, Inc.
41
+ * copyright (c) 2023-2026 Red Hat, Inc.
42
42
  *
43
43
  * This program and the accompanying materials are made
44
44
  * available under the terms of the Eclipse Public License 2.0
@@ -104,14 +104,50 @@ let KubernetesCommandLineToolsExecutor = KubernetesCommandLineToolsExecutor_1 =
104
104
  }
105
105
  getContainerName() {
106
106
  Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - get container name.`);
107
- const output = this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} get ${KubernetesCommandLineToolsExecutor_1.pod} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
107
+ Logger_1.Logger.debug(`Getting container name for pod: '${KubernetesCommandLineToolsExecutor_1.pod}' in namespace: ${this.namespace}`);
108
+ const output = this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} get pod ${KubernetesCommandLineToolsExecutor_1.pod} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
108
109
  (0, shelljs_1.echo)('\n');
109
- return output.stderr ? output.stderr : output.stdout;
110
+ const containerName = output.stderr ? output.stderr : output.stdout;
111
+ Logger_1.Logger.debug(`Found container name: '${containerName}'`);
112
+ return containerName;
110
113
  }
111
114
  getWorkspacePodName() {
112
115
  Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - get workspace pod name.`);
116
+ Logger_1.Logger.debug(`Looking for pod with label: controller.devfile.io/devworkspace_name=${this.workspaceName} in namespace: ${this.namespace}`);
113
117
  const output = this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
114
- return output.stderr ? output.stderr : output.stdout.replace('\n', '');
118
+ let podName = output.stderr ? output.stderr : output.stdout.replace('\n', '');
119
+ Logger_1.Logger.debug(`Found pod name (before removing prefix): '${podName}'`);
120
+ // if pod not found, try to find by workspace name prefix (for restored workspaces with suffix)
121
+ if (!podName || podName.trim() === '') {
122
+ Logger_1.Logger.warn(`No pod found with exact label controller.devfile.io/devworkspace_name=${this.workspaceName}`);
123
+ Logger_1.Logger.debug(`Trying to find pod with workspace name starting with: ${this.workspaceName}`);
124
+ // get all pods and filter by label prefix
125
+ const allPodsOutput = this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} get pods -n ${this.namespace} -o jsonpath='{range .items[*]}{.metadata.name}{"\\t"}{.metadata.labels.controller\\.devfile\\.io/devworkspace_name}{"\\n"}{end}'`);
126
+ if (allPodsOutput.stdout && this.workspaceName) {
127
+ const lines = allPodsOutput.stdout.split('\n').filter((line) => line.trim() !== '');
128
+ for (const line of lines) {
129
+ const [name, label] = line.split('\t');
130
+ if (label && this.workspaceName && label.startsWith(this.workspaceName)) {
131
+ Logger_1.Logger.info(`Found pod by prefix match: ${name} with label ${label}`);
132
+ podName = name;
133
+ // update workspace name to the actual one with suffix
134
+ this._workspaceName = label;
135
+ Logger_1.Logger.info(`Updated workspace name to: ${this._workspaceName}`);
136
+ break;
137
+ }
138
+ }
139
+ }
140
+ // if still not found, list all pods for debugging
141
+ if (!podName || podName.trim() === '') {
142
+ Logger_1.Logger.warn('Listing all pods in namespace for debugging:');
143
+ const debugPods = this.shellExecutor.executeCommand(`${this.kubernetesCommandLineTool} get pods -n ${this.namespace} --show-labels`);
144
+ Logger_1.Logger.warn(`All pods:\n${debugPods.stdout}`);
145
+ }
146
+ }
147
+ // remove 'pod/' prefix if present (oc get -o name returns 'pod/podname')
148
+ const cleanPodName = podName.replace(/^pod\//, '');
149
+ Logger_1.Logger.debug(`Clean pod name (after removing prefix): '${cleanPodName}'`);
150
+ return cleanPodName;
115
151
  }
116
152
  deleteDevWorkspace(devfileName) {
117
153
  Logger_1.Logger.debug(`${this.kubernetesCommandLineTool} - delete '${this.workspaceName}' devWorkspace`);
@@ -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-2023 Red Hat, Inc.
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
- return `${await this.getWorkspacesApiUrl()}/${workspaceName}`;
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,aAAa,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,mBAAmB;QACxB,MAAM,SAAS,GAAW,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3D,OAAO,GAAG,gBAAc,CAAC,iBAAiB,IAAI,SAAS,gBAAgB,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAChC,eAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,eAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,MAAM,kBAAkB,GAAkB,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAc,CAAC,kBAAkB,CAAC,CAAC;YAClH,IAAI,kBAAkB,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtC,MAAM,IAAI,KAAK,CACd,wDAAwD,kBAAkB,CAAC,MAAM,UAAU,kBAAkB,CAAC,IAAI,EAAE,CACpH,CAAC;aACF;YACD,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,eAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;;AAjCuB,gCAAiB,GAAW,yBAAyB,CAAC;AACtD,iCAAkB,GAAW,0BAA0B,CAAC;AAFpE,cAAc;IAD1B,IAAA,sBAAU,GAAE;IAQV,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,oBAAoB,CAAC,CAAA;qCACG,2CAAoB;GARjD,cAAc,CAmC1B;AAnCY,wCAAc"}
1
+ {"version":3,"file":"ApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/ApiUrlResolver.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.121.0-next-38dc0b7",
3
+ "version": "7.121.0-next-0ae5289",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -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
  }
@@ -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-2025 Red Hat, Inc.
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
- return output.stderr ? output.stderr : output.stdout;
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
- return output.stderr ? output.stderr : output.stdout.replace('\n', '');
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 {
@@ -1,5 +1,5 @@
1
1
  /** *******************************************************************
2
- * copyright (c) 2019-2023 Red Hat, Inc.
2
+ * copyright (c) 2019-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
@@ -26,7 +26,8 @@ export class ApiUrlResolver {
26
26
  ) {}
27
27
 
28
28
  async getWorkspaceApiUrl(workspaceName: string): Promise<string> {
29
- return `${await this.getWorkspacesApiUrl()}/${workspaceName}`;
29
+ const actualWorkspaceName: string = await this.resolveWorkspaceName(workspaceName);
30
+ return `${await this.getWorkspacesApiUrl()}/${actualWorkspaceName}`;
30
31
  }
31
32
 
32
33
  async getWorkspacesApiUrl(): Promise<string> {
@@ -34,6 +35,66 @@ export class ApiUrlResolver {
34
35
  return `${ApiUrlResolver.DASHBOARD_API_URL}/${namespace}/devworkspaces`;
35
36
  }
36
37
 
38
+ /**
39
+ * resolves the actual DevWorkspace name from the API.
40
+ * If the exact workspace name exists, returns it as is.
41
+ * If not found, searches for a workspace whose name matches the pattern: workspaceName + '-' + random suffix
42
+ * (to handle cases where DevWorkspace has a random suffix like '-4fnq' after backup/restore).
43
+ * @param workspaceName - The workspace name to search for
44
+ * @returns The actual DevWorkspace name from the API
45
+ * @throws Error if no matching workspace is found
46
+ */
47
+ private async resolveWorkspaceName(workspaceName: string): Promise<string> {
48
+ Logger.debug(`Resolving workspace name: ${workspaceName}`);
49
+
50
+ try {
51
+ // first, try to get the workspace directly by the provided name
52
+ const directUrl: string = `${await this.getWorkspacesApiUrl()}/${workspaceName}`;
53
+ const directResponse: AxiosResponse = await this.processRequestHandler.get(directUrl);
54
+ if (directResponse.status === 200) {
55
+ Logger.debug(`Found exact match: ${workspaceName}`);
56
+ return workspaceName;
57
+ }
58
+ } catch (error) {
59
+ // workspace not found by exact name, will search by prefix with suffix pattern
60
+ Logger.debug(`Exact match not found for ${workspaceName}, searching by prefix with suffix`);
61
+ }
62
+
63
+ // if exact match not found, get all workspaces and search by prefix + dash + suffix pattern
64
+ const allWorkspacesResponse: AxiosResponse = await this.processRequestHandler.get(await this.getWorkspacesApiUrl());
65
+ if (allWorkspacesResponse.status !== 200) {
66
+ throw new Error(`Cannot get workspaces list. Code: ${allWorkspacesResponse.status} Data: ${allWorkspacesResponse.data}`);
67
+ }
68
+
69
+ const workspaces: Array<{ metadata: { name: string } }> = allWorkspacesResponse.data.items || [];
70
+ // look for workspace with pattern: workspaceName + '-' + suffix (e.g., 'test-workspace-2-4fnq')
71
+ // this ensures we don't match 'test-workspace-20' when looking for 'test-workspace-2'
72
+ const matchingWorkspaces: Array<{ metadata: { name: string } }> = workspaces.filter((ws): boolean => {
73
+ const dwName: string = ws.metadata.name;
74
+ // check if name starts with workspaceName followed by a dash
75
+ if (dwName.startsWith(workspaceName + '-')) {
76
+ // verify that what follows the dash looks like a random suffix (lowercase letters/numbers)
77
+ const suffix: string = dwName.substring(workspaceName.length + 1);
78
+ return suffix.length > 0 && /^[a-z0-9]+$/.test(suffix);
79
+ }
80
+ return false;
81
+ });
82
+
83
+ if (matchingWorkspaces.length === 1) {
84
+ Logger.debug(`Found workspace by prefix: ${matchingWorkspaces[0].metadata.name} (requested: ${workspaceName})`);
85
+ return matchingWorkspaces[0].metadata.name;
86
+ }
87
+
88
+ if (matchingWorkspaces.length > 1) {
89
+ const names: string = matchingWorkspaces.map((ws): string => ws.metadata.name).join(', ');
90
+ throw new Error(
91
+ `Multiple workspaces found matching '${workspaceName}': ${names}. Please use exact DevWorkspace name or delete duplicates.`
92
+ );
93
+ }
94
+
95
+ throw new Error(`Workspace not found: ${workspaceName} (tried exact match and prefix search)`);
96
+ }
97
+
37
98
  private async obtainUserNamespace(): Promise<string> {
38
99
  Logger.debug(`${this.userNamespace}`);
39
100
  if (this.userNamespace.length === 0) {