@podman-desktop/tests-playwright 1.25.0-next.202512191018-9361f9c → 1.25.0-next.202512191332-1cae7cf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +35 -35
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -356,7 +356,7 @@ class Y extends Bt {
|
|
|
356
356
|
return await this.card.getByLabel(t, { exact: !0 }).textContent() ?? "";
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
-
class
|
|
359
|
+
class L extends I {
|
|
360
360
|
heading;
|
|
361
361
|
featuredProviderResources;
|
|
362
362
|
constructor(t) {
|
|
@@ -386,7 +386,7 @@ class at {
|
|
|
386
386
|
cliToolsTab;
|
|
387
387
|
kubernetesTab;
|
|
388
388
|
constructor(t) {
|
|
389
|
-
this.page = t, this.settingsNavBar = t.getByRole("navigation", { name: "PreferencesNavigation" }), this.resourcesTab = this.settingsNavBar.getByRole("link", { name: "Resources" }), this.proxyTab = this.settingsNavBar.getByRole("link", { name: "Proxy" }), this.registriesTab = this.settingsNavBar.getByRole("link", { name: "Registries" }), this.authenticationTab = this.settingsNavBar.getByRole("link", { name: "Authentication" }), this.cliToolsTab = this.settingsNavBar.getByRole("link", { name: "CLI Tools" }), this.kubernetesTab = this.settingsNavBar.getByRole("link", { name: "Kubernetes" }), this.preferencesTab = this.settingsNavBar.
|
|
389
|
+
this.page = t, this.settingsNavBar = t.getByRole("navigation", { name: "PreferencesNavigation" }), this.resourcesTab = this.settingsNavBar.getByRole("link", { name: "Resources" }), this.proxyTab = this.settingsNavBar.getByRole("link", { name: "Proxy" }), this.registriesTab = this.settingsNavBar.getByRole("link", { name: "Registries" }), this.authenticationTab = this.settingsNavBar.getByRole("link", { name: "Authentication" }), this.cliToolsTab = this.settingsNavBar.getByRole("link", { name: "CLI Tools" }), this.kubernetesTab = this.settingsNavBar.getByRole("link", { name: "Kubernetes" }), this.preferencesTab = this.settingsNavBar.getByRole("link", { name: "preferences" });
|
|
390
390
|
}
|
|
391
391
|
async openTabPage(t) {
|
|
392
392
|
return B.step(`Open ${t.name} tab from Settings`, async () => {
|
|
@@ -736,7 +736,7 @@ async function ia(i, t) {
|
|
|
736
736
|
return s.step("Delete Podman machine", async () => {
|
|
737
737
|
const e = "podman", n = new d(i), o = await n.openDashboard();
|
|
738
738
|
await a(o.heading).toBeVisible();
|
|
739
|
-
const l = await (await n.openSettings()).openTabPage(
|
|
739
|
+
const l = await (await n.openSettings()).openTabPage(L);
|
|
740
740
|
await a(l.heading).toBeVisible({ timeout: 1e4 }), await a.poll(async () => await l.resourceCardIsVisible(e), { timeout: 15e3 }).toBeTruthy();
|
|
741
741
|
const c = new Y(i, e, t);
|
|
742
742
|
if (await a(c.providerConnections).toBeVisible({ timeout: 1e4 }), !await y(async () => await c.resourceElement.isVisible(), {
|
|
@@ -988,7 +988,7 @@ class oe extends w {
|
|
|
988
988
|
return s.step("Rename image", async () => {
|
|
989
989
|
if (!t)
|
|
990
990
|
throw Error("Provide name is invalid!");
|
|
991
|
-
return await a(this.saveButton).toBeVisible(), await this.imageName.clear(), await this.imageName.fill(t), e && (await this.imageTag.clear(), await this.imageTag.fill(e)), await a.poll(async () => this.alertDialog.count()).toBe(0), await a(this.saveButton).toBeEnabled(), await this.saveButton.click(), new
|
|
991
|
+
return await a(this.saveButton).toBeVisible(), await this.imageName.clear(), await this.imageName.fill(t), e && (await this.imageTag.clear(), await this.imageTag.fill(e)), await a.poll(async () => this.alertDialog.count()).toBe(0), await a(this.saveButton).toBeEnabled(), await this.saveButton.click(), new E(this.page);
|
|
992
992
|
});
|
|
993
993
|
}
|
|
994
994
|
}
|
|
@@ -1241,7 +1241,7 @@ class re extends S {
|
|
|
1241
1241
|
return s.step("Open edit image page", async () => (await a(this.editButton).toBeEnabled({ timeout: 3e4 }), await this.editButton.click(), new oe(this.page, this.resourceName)));
|
|
1242
1242
|
}
|
|
1243
1243
|
async deleteImage() {
|
|
1244
|
-
return s.step("Delete image", async () => (await a(this.deleteButton).toBeEnabled({ timeout: 3e4 }), await this.deleteButton.click(), await g(this.page), new
|
|
1244
|
+
return s.step("Delete image", async () => (await a(this.deleteButton).toBeEnabled({ timeout: 3e4 }), await this.deleteButton.click(), await g(this.page), new E(this.page)));
|
|
1245
1245
|
}
|
|
1246
1246
|
async pushImage() {
|
|
1247
1247
|
return s.step("Push image", async () => {
|
|
@@ -1251,7 +1251,7 @@ class re extends S {
|
|
|
1251
1251
|
async saveImage(t) {
|
|
1252
1252
|
if (!t)
|
|
1253
1253
|
throw Error("Path is incorrect or not provided!");
|
|
1254
|
-
return await a(this.saveImagebutton).toBeEnabled(), await this.saveImagebutton.click(), await a(this.saveImageInput).toBeVisible(), await a(this.confirmSaveImages).toBeVisible(), await this.saveImageInput.evaluate((e) => e.removeAttribute("readonly")), await this.confirmSaveImages.evaluate((e) => e.removeAttribute("disabled")), await this.saveImageInput.pressSequentially(t, { delay: 10 }), await this.confirmSaveImages.click(), new
|
|
1254
|
+
return await a(this.saveImagebutton).toBeEnabled(), await this.saveImagebutton.click(), await a(this.saveImageInput).toBeVisible(), await a(this.confirmSaveImages).toBeVisible(), await this.saveImageInput.evaluate((e) => e.removeAttribute("readonly")), await this.confirmSaveImages.evaluate((e) => e.removeAttribute("disabled")), await this.saveImageInput.pressSequentially(t, { delay: 10 }), await this.confirmSaveImages.click(), new E(this.page);
|
|
1255
1255
|
}
|
|
1256
1256
|
async pushImageToKindCluster() {
|
|
1257
1257
|
const t = this.controlActions.getByRole("button", { name: "kebab menu", exact: !0 });
|
|
@@ -1285,7 +1285,7 @@ class le extends w {
|
|
|
1285
1285
|
async pullImage(t, e = "", n = 6e4) {
|
|
1286
1286
|
return s.step(`Pulling image ${t}:${e}`, async () => {
|
|
1287
1287
|
const o = `${t}${e.length === 0 ? "" : ":" + e}`;
|
|
1288
|
-
return await this.imageNameInput.fill(o), await a(this.pullImageButton).toBeEnabled(), await this.pullImageButton.click(), await a(this.doneButton).toBeEnabled({ timeout: n }), await this.doneButton.click(), new
|
|
1288
|
+
return await this.imageNameInput.fill(o), await a(this.pullImageButton).toBeEnabled(), await this.pullImageButton.click(), await a(this.doneButton).toBeEnabled({ timeout: n }), await this.doneButton.click(), new E(this.page);
|
|
1289
1289
|
});
|
|
1290
1290
|
}
|
|
1291
1291
|
async getAllSearchResultsFor(t, e, n = "", o = !0) {
|
|
@@ -1331,7 +1331,7 @@ class le extends w {
|
|
|
1331
1331
|
return s.step("Get first search result from the results table", async () => await this.getFirstResultButtonLocator().innerText());
|
|
1332
1332
|
}
|
|
1333
1333
|
async pullImageFromSearchResults(t, e = 6e4) {
|
|
1334
|
-
return s.step(`Pull image from search results: ${t}`, async () => (await this.selectValueFromSearchResults(t), await a(this.pullImageButton).toBeEnabled(), await this.pullImageButton.click(), await a(this.doneButton).toBeEnabled({ timeout: e }), await this.doneButton.click(), new
|
|
1334
|
+
return s.step(`Pull image from search results: ${t}`, async () => (await this.selectValueFromSearchResults(t), await a(this.pullImageButton).toBeEnabled(), await this.pullImageButton.click(), await a(this.doneButton).toBeEnabled({ timeout: e }), await this.doneButton.click(), new E(this.page)));
|
|
1335
1335
|
}
|
|
1336
1336
|
async selectValueFromSearchResults(t) {
|
|
1337
1337
|
return s.step(`Select value from search results: ${t}`, async () => {
|
|
@@ -1363,7 +1363,7 @@ class le extends w {
|
|
|
1363
1363
|
});
|
|
1364
1364
|
}
|
|
1365
1365
|
}
|
|
1366
|
-
class
|
|
1366
|
+
class E extends A {
|
|
1367
1367
|
pullImageButton;
|
|
1368
1368
|
pruneImagesButton;
|
|
1369
1369
|
buildImageButton;
|
|
@@ -1527,7 +1527,7 @@ class ft extends w {
|
|
|
1527
1527
|
}), this.arm64Button = this.platformRegion.getByLabel("linux/arm64"), this.amd64Button = this.platformRegion.getByLabel("linux/amd64"), this.arm64checkbox = this.platformRegion.getByLabel("ARM® aarch64 systems"), this.amd64checkbox = this.platformRegion.getByLabel("Intel and AMD x86_64 systems"), this.archMoreOptionsButton = this.platformRegion.getByRole("button", { name: "Show more options" }), this.archLessOptionsButton = this.platformRegion.getByRole("button", { name: "Show less options" }), this.terminalContent = t.locator(".xterm-rows");
|
|
1528
1528
|
}
|
|
1529
1529
|
async buildImage(t, e, n, o = [N.Default], r = 12e4) {
|
|
1530
|
-
return s.step(`Building image ${t} from ${e} in ${n} with ${o} architecture`, async () => (await this.fillBuildImageForm(t, e, n, o), await a(this.doneButton).toBeEnabled({ timeout: r }), await this.validateBuildLogs(), await this.doneButton.scrollIntoViewIfNeeded(), await this.doneButton.click(), console.log(`Image ${t} has been built successfully!`), new
|
|
1530
|
+
return s.step(`Building image ${t} from ${e} in ${n} with ${o} architecture`, async () => (await this.fillBuildImageForm(t, e, n, o), await a(this.doneButton).toBeEnabled({ timeout: r }), await this.validateBuildLogs(), await this.doneButton.scrollIntoViewIfNeeded(), await this.doneButton.click(), console.log(`Image ${t} has been built successfully!`), new E(this.page)));
|
|
1531
1531
|
}
|
|
1532
1532
|
async cancelBuild(t, e, n, o = [N.Default], r = 200) {
|
|
1533
1533
|
return s.step(`Starting and canceling build for image ${t}`, async () => {
|
|
@@ -2339,7 +2339,7 @@ class d {
|
|
|
2339
2339
|
return s.step("Open Dashboard page", async () => (await a(this.dashboardLink).toBeVisible({ timeout: 1e4 }), await this.dashboardLink.click({ force: !0 }), new kt(this.page)));
|
|
2340
2340
|
}
|
|
2341
2341
|
async openImages() {
|
|
2342
|
-
return s.step("Open Images page", async () => (await a(this.imagesLink).toBeVisible({ timeout: 1e4 }), await this.imagesLink.click({ force: !0 }), new
|
|
2342
|
+
return s.step("Open Images page", async () => (await a(this.imagesLink).toBeVisible({ timeout: 1e4 }), await this.imagesLink.click({ force: !0 }), new E(this.page)));
|
|
2343
2343
|
}
|
|
2344
2344
|
async openContainers() {
|
|
2345
2345
|
return s.step("Open Containers page", async () => (await a(this.containersLink).toBeVisible({ timeout: 1e4 }), await this.containersLink.click({ force: !0 }), new V(this.page)));
|
|
@@ -2896,7 +2896,7 @@ async function ka(i, t, e = 3e5, { configFilePath: n, providerType: o, httpPort:
|
|
|
2896
2896
|
return s.step(`Create Kind cluster with settings: configFilePath=${n},
|
|
2897
2897
|
providerType=${o}, httpPort=${r},
|
|
2898
2898
|
httpsPort=${l}, ingressController=${c}`, async () => {
|
|
2899
|
-
const h = new d(i), b = new Tt(i), R = new Y(i, "kind", t), _ = new fe(i), rt = await (await h.openSettings()).openTabPage(
|
|
2899
|
+
const h = new d(i), b = new Tt(i), R = new Y(i, "kind", t), _ = new fe(i), rt = await (await h.openSettings()).openTabPage(L);
|
|
2900
2900
|
if (await a(rt.heading).toBeVisible({ timeout: 1e4 }), await a.poll(async () => rt.resourceCardIsVisible("kind")).toBeTruthy(), await a(R.createButton).toBeVisible(), await R.doesResourceElementExist())
|
|
2901
2901
|
if (await R.resourceElementConnectionStatus.textContent() !== v.Running)
|
|
2902
2902
|
console.log(`Kind cluster [${t}] already present, but not running. Delete the cluster...`), await Re(i);
|
|
@@ -2924,7 +2924,7 @@ async function Re(i, t = "kind", e = "kind-cluster-control-plane", n = "kind-clu
|
|
|
2924
2924
|
return s.step(`Delete ${t} cluster`, async () => {
|
|
2925
2925
|
const r = await nt(i, e), l = new d(i), c = new Y(i, t, n);
|
|
2926
2926
|
await l.openSettings();
|
|
2927
|
-
const u = new
|
|
2927
|
+
const u = new L(i);
|
|
2928
2928
|
if (await a(u.heading).toBeVisible({ timeout: 1e4 }), !await c.doesResourceElementExist()) {
|
|
2929
2929
|
console.log(`Kind cluster [${n}] not present, skipping deletion.`);
|
|
2930
2930
|
return;
|
|
@@ -2969,7 +2969,7 @@ async function va(i, t, e, n, o, r = 3e4) {
|
|
|
2969
2969
|
try {
|
|
2970
2970
|
await a(c.heading).toBeVisible();
|
|
2971
2971
|
} catch {
|
|
2972
|
-
const h = await (await l.openSettings()).openTabPage(
|
|
2972
|
+
const h = await (await l.openSettings()).openTabPage(L);
|
|
2973
2973
|
await a(h.heading).toBeVisible({ timeout: 1e4 }), await a(t.resourceElementDetailsButton).toBeEnabled(), await t.resourceElementDetailsButton.click();
|
|
2974
2974
|
}
|
|
2975
2975
|
if (await c.performConnectionActionDetails(n), n === f.Restart) {
|
|
@@ -2986,7 +2986,7 @@ async function va(i, t, e, n, o, r = 3e4) {
|
|
|
2986
2986
|
}
|
|
2987
2987
|
async function Pa(i, t = "kind", e = "kind-cluster-control-plane", n = "kind-cluster", o = 3e4) {
|
|
2988
2988
|
return s.step(`Deletes the '${n}' cluster from the details page`, async () => {
|
|
2989
|
-
const r = new d(i), l = await nt(i, e), u = await (await r.openSettings()).openTabPage(
|
|
2989
|
+
const r = new d(i), l = await nt(i, e), u = await (await r.openSettings()).openTabPage(L), h = new Y(i, t, n);
|
|
2990
2990
|
if (await a(u.heading).toBeVisible({ timeout: 1e4 }), !await h.doesResourceElementExist()) {
|
|
2991
2991
|
console.log(`Cluster [${n}] not present, skipping deletion.`);
|
|
2992
2992
|
return;
|
|
@@ -3099,7 +3099,7 @@ async function Ia(i, t, e, n) {
|
|
|
3099
3099
|
await a.poll(async () => u.getRowByName(n), { timeout: 15e3 }).toBeTruthy();
|
|
3100
3100
|
});
|
|
3101
3101
|
}
|
|
3102
|
-
async function
|
|
3102
|
+
async function Ea(i, t, e, n) {
|
|
3103
3103
|
return s.step(`Create ${t} kubernetes resource: ${e}`, async () => {
|
|
3104
3104
|
const o = new d(i);
|
|
3105
3105
|
try {
|
|
@@ -3118,7 +3118,7 @@ async function La(i, t, e, n) {
|
|
|
3118
3118
|
await a(l.heading).toBeVisible(), await a.poll(async () => l.getRowByName(e)).toBeTruthy();
|
|
3119
3119
|
});
|
|
3120
3120
|
}
|
|
3121
|
-
async function
|
|
3121
|
+
async function La(i, t, e, n = 3e4) {
|
|
3122
3122
|
return s.step(`Delete ${t} kubernetes resource: ${e}`, async () => {
|
|
3123
3123
|
const l = await (await new d(i).openKubernetes()).openTabPage(t);
|
|
3124
3124
|
await l.deleteKubernetesResource(e), await g(i), await a.poll(async () => await l.getRowByName(e), { timeout: n }).not.toBeTruthy();
|
|
@@ -3247,22 +3247,22 @@ const Ie = {
|
|
|
3247
3247
|
extensionFullName: "minikube extension",
|
|
3248
3248
|
extensionLabel: "minikube",
|
|
3249
3249
|
extensionFullLabel: "podman-desktop.minikube"
|
|
3250
|
-
},
|
|
3250
|
+
}, Et = {
|
|
3251
3251
|
extensionName: "Podman AI Lab",
|
|
3252
3252
|
extensionFullName: "Podman AI Lab extension",
|
|
3253
3253
|
extensionLabel: "ai-lab",
|
|
3254
3254
|
extensionFullLabel: "redhat.ai-lab"
|
|
3255
|
-
},
|
|
3255
|
+
}, Ee = {
|
|
3256
3256
|
extensionName: "Red Hat Extension Pack",
|
|
3257
3257
|
extensionFullName: "Red Hat Extension Pack extension",
|
|
3258
3258
|
extensionLabel: "redhat-pack",
|
|
3259
3259
|
extensionFullLabel: "redhat.redhat-pack"
|
|
3260
|
-
},
|
|
3260
|
+
}, Lt = {
|
|
3261
3261
|
extensionName: "Bootable Container",
|
|
3262
3262
|
extensionFullName: "Bootable Container extension",
|
|
3263
3263
|
extensionLabel: "bootc",
|
|
3264
3264
|
extensionFullLabel: "redhat.bootc"
|
|
3265
|
-
},
|
|
3265
|
+
}, Le = {
|
|
3266
3266
|
extensionName: "Developer Sandbox",
|
|
3267
3267
|
extensionFullName: "Developer Sandbox extension",
|
|
3268
3268
|
extensionLabel: "redhat-sandbox",
|
|
@@ -3348,21 +3348,21 @@ const Ie = {
|
|
|
3348
3348
|
Me,
|
|
3349
3349
|
Fe,
|
|
3350
3350
|
Oe,
|
|
3351
|
-
|
|
3351
|
+
Et,
|
|
3352
3352
|
_e
|
|
3353
3353
|
], He = [
|
|
3354
3354
|
Ie,
|
|
3355
|
-
Lt,
|
|
3356
|
-
Le,
|
|
3357
3355
|
Et,
|
|
3358
3356
|
Ee,
|
|
3357
|
+
Lt,
|
|
3358
|
+
Le,
|
|
3359
3359
|
St,
|
|
3360
3360
|
At,
|
|
3361
3361
|
Se,
|
|
3362
3362
|
Ae,
|
|
3363
3363
|
Ve
|
|
3364
3364
|
], Ha = [
|
|
3365
|
-
|
|
3365
|
+
Lt,
|
|
3366
3366
|
At,
|
|
3367
3367
|
Ue,
|
|
3368
3368
|
St
|
|
@@ -3658,7 +3658,7 @@ class Qa extends w {
|
|
|
3658
3658
|
} catch (h) {
|
|
3659
3659
|
console.log("No handling dialog displayed", h);
|
|
3660
3660
|
}
|
|
3661
|
-
return await a(u).toBeEnabled(), await u.click(), new
|
|
3661
|
+
return await a(u).toBeEnabled(), await u.click(), new L(this.page);
|
|
3662
3662
|
});
|
|
3663
3663
|
}
|
|
3664
3664
|
async handleConnectionDialog(t, e) {
|
|
@@ -3816,7 +3816,7 @@ class Za extends I {
|
|
|
3816
3816
|
return (await this.getContextRowByName(t)).getByLabel("Set as Current Context");
|
|
3817
3817
|
}
|
|
3818
3818
|
}
|
|
3819
|
-
class tn extends
|
|
3819
|
+
class tn extends L {
|
|
3820
3820
|
podmanMachineName;
|
|
3821
3821
|
podmanMachineStatus;
|
|
3822
3822
|
podmanMachineConnectionActions;
|
|
@@ -3935,7 +3935,7 @@ export {
|
|
|
3935
3935
|
re as ImageDetailsPage,
|
|
3936
3936
|
oe as ImageEditPage,
|
|
3937
3937
|
Gt as ImageState,
|
|
3938
|
-
|
|
3938
|
+
E as ImagesPage,
|
|
3939
3939
|
Za as KubeContextPage,
|
|
3940
3940
|
we as KubernetesBar,
|
|
3941
3941
|
de as KubernetesDashboardPage,
|
|
@@ -3970,7 +3970,7 @@ export {
|
|
|
3970
3970
|
Pt as ResourceDetailsPage,
|
|
3971
3971
|
f as ResourceElementActions,
|
|
3972
3972
|
v as ResourceElementState,
|
|
3973
|
-
|
|
3973
|
+
L as ResourcesPage,
|
|
3974
3974
|
xt as RunImagePage,
|
|
3975
3975
|
P as Runner,
|
|
3976
3976
|
Z as RunnerOptions,
|
|
@@ -3984,7 +3984,7 @@ export {
|
|
|
3984
3984
|
tt as VolumeState,
|
|
3985
3985
|
Ce as WelcomePage,
|
|
3986
3986
|
Ht as archType,
|
|
3987
|
-
|
|
3987
|
+
Lt as bootcExtension,
|
|
3988
3988
|
pa as canTestRegistry,
|
|
3989
3989
|
Ra as checkClusterResources,
|
|
3990
3990
|
Sa as checkDeploymentReplicasInfo,
|
|
@@ -3994,21 +3994,21 @@ export {
|
|
|
3994
3994
|
Da as configurePortForwarding,
|
|
3995
3995
|
gt as countKubernetesPodReplicas,
|
|
3996
3996
|
ka as createKindCluster,
|
|
3997
|
-
|
|
3997
|
+
Ea as createKubernetesResource,
|
|
3998
3998
|
ut as createPodmanMachineFromCLI,
|
|
3999
3999
|
pe as delay,
|
|
4000
4000
|
Re as deleteCluster,
|
|
4001
4001
|
Pa as deleteClusterFromDetails,
|
|
4002
4002
|
Ze as deleteContainer,
|
|
4003
4003
|
ta as deleteImage,
|
|
4004
|
-
|
|
4004
|
+
La as deleteKubernetesResource,
|
|
4005
4005
|
na as deleteNetwork,
|
|
4006
4006
|
aa as deletePod,
|
|
4007
4007
|
ia as deletePodmanMachine,
|
|
4008
4008
|
sa as deletePodmanMachineFromCLI,
|
|
4009
4009
|
ea as deleteRegistry,
|
|
4010
4010
|
Ia as deployContainerToCluster,
|
|
4011
|
-
|
|
4011
|
+
Le as developerSandboxExtension,
|
|
4012
4012
|
$e as dockerExtension,
|
|
4013
4013
|
Va as editDeploymentYamlFile,
|
|
4014
4014
|
oa as ensureCliInstalled,
|
|
@@ -4018,7 +4018,7 @@ export {
|
|
|
4018
4018
|
Ua as extensionsBuiltInList,
|
|
4019
4019
|
He as extensionsExternalList,
|
|
4020
4020
|
Ha as extensionsInstallationSmokeList,
|
|
4021
|
-
|
|
4021
|
+
Ee as extensionsPackExtension,
|
|
4022
4022
|
U as fillTextbox,
|
|
4023
4023
|
Ba as findPageWithTitleInBrowser,
|
|
4024
4024
|
Te as getDefaultVirtualizationProvider,
|
|
@@ -4049,7 +4049,7 @@ export {
|
|
|
4049
4049
|
Ue as openshiftDockerExtension,
|
|
4050
4050
|
Ve as openshiftLocalExtension,
|
|
4051
4051
|
ya as performBrowserLogin,
|
|
4052
|
-
|
|
4052
|
+
Et as podmanAILabExtension,
|
|
4053
4053
|
_a as podmanExtension,
|
|
4054
4054
|
At as podmanQuadletExtension,
|
|
4055
4055
|
ha as readFileInVolumeFromCLI,
|