mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fix statefulset.store.test.ts
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
d216b8915b
commit
1008d4e10b
@ -98,7 +98,7 @@ export type { PodStore as PodsStore } from "../../renderer/components/+workloads
|
|||||||
export type { NodesStore } from "../../renderer/components/+nodes/nodes.store";
|
export type { NodesStore } from "../../renderer/components/+nodes/nodes.store";
|
||||||
export type { DeploymentStore } from "../../renderer/components/+workloads-deployments/store";
|
export type { DeploymentStore } from "../../renderer/components/+workloads-deployments/store";
|
||||||
export type { DaemonSetStore } from "../../renderer/components/+workloads-daemonsets/store";
|
export type { DaemonSetStore } from "../../renderer/components/+workloads-daemonsets/store";
|
||||||
export type { StatefulSetStore } from "../../renderer/components/+workloads-statefulsets/statefulset.store";
|
export type { StatefulSetStore } from "../../renderer/components/+workloads-statefulsets/store";
|
||||||
export type { JobStore } from "../../renderer/components/+workloads-jobs/store";
|
export type { JobStore } from "../../renderer/components/+workloads-jobs/store";
|
||||||
export type { CronJobStore } from "../../renderer/components/+workloads-cronjobs/store";
|
export type { CronJobStore } from "../../renderer/components/+workloads-cronjobs/store";
|
||||||
export type { ConfigMapStore as ConfigMapsStore } from "../../renderer/components/+config-maps/config-maps.store";
|
export type { ConfigMapStore as ConfigMapsStore } from "../../renderer/components/+config-maps/config-maps.store";
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import React from "react";
|
|||||||
import { disposeOnUnmount, observer } from "mobx-react";
|
import { disposeOnUnmount, observer } from "mobx-react";
|
||||||
import { eventStore } from "../+events/event.store";
|
import { eventStore } from "../+events/event.store";
|
||||||
import type { DeploymentStore } from "../+workloads-deployments/store";
|
import type { DeploymentStore } from "../+workloads-deployments/store";
|
||||||
import { statefulSetStore } from "../+workloads-statefulsets/statefulset.store";
|
import type { StatefulSetStore } from "../+workloads-statefulsets/store";
|
||||||
import type { JobStore } from "../+workloads-jobs/store";
|
import type { JobStore } from "../+workloads-jobs/store";
|
||||||
import type { CronJobStore } from "../+workloads-cronjobs/store";
|
import type { CronJobStore } from "../+workloads-cronjobs/store";
|
||||||
import type { IComputedValue } from "mobx";
|
import type { IComputedValue } from "mobx";
|
||||||
@ -33,6 +33,7 @@ import replicaSetStoreInjectable from "../+workloads-replicasets/store.injectabl
|
|||||||
import cronJobStoreInjectable from "../+workloads-cronjobs/store.injectable";
|
import cronJobStoreInjectable from "../+workloads-cronjobs/store.injectable";
|
||||||
import deploymentStoreInjectable from "../+workloads-deployments/store.injectable";
|
import deploymentStoreInjectable from "../+workloads-deployments/store.injectable";
|
||||||
import jobStoreInjectable from "../+workloads-jobs/store.injectable";
|
import jobStoreInjectable from "../+workloads-jobs/store.injectable";
|
||||||
|
import statefulSetStoreInjectable from "../+workloads-statefulsets/store.injectable";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
detailComponents: IComputedValue<React.ComponentType<{}>[]>;
|
detailComponents: IComputedValue<React.ComponentType<{}>[]>;
|
||||||
@ -44,6 +45,7 @@ interface Dependencies {
|
|||||||
deploymentStore: DeploymentStore;
|
deploymentStore: DeploymentStore;
|
||||||
jobStore: JobStore;
|
jobStore: JobStore;
|
||||||
cronJobStore: CronJobStore;
|
cronJobStore: CronJobStore;
|
||||||
|
statefulSetStore: StatefulSetStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
@ -65,7 +67,7 @@ class NonInjectedWorkloadsOverview extends React.Component<Dependencies> {
|
|||||||
this.props.jobStore,
|
this.props.jobStore,
|
||||||
this.props.podStore,
|
this.props.podStore,
|
||||||
this.props.replicaSetStore,
|
this.props.replicaSetStore,
|
||||||
statefulSetStore,
|
this.props.statefulSetStore,
|
||||||
], {
|
], {
|
||||||
onLoadFailure: error => this.loadErrors.push(String(error)),
|
onLoadFailure: error => this.loadErrors.push(String(error)),
|
||||||
}),
|
}),
|
||||||
@ -127,5 +129,6 @@ export const WorkloadsOverview = withInjectables<Dependencies>(NonInjectedWorklo
|
|||||||
cronJobStore: di.inject(cronJobStoreInjectable),
|
cronJobStore: di.inject(cronJobStoreInjectable),
|
||||||
deploymentStore: di.inject(deploymentStoreInjectable),
|
deploymentStore: di.inject(deploymentStoreInjectable),
|
||||||
jobStore: di.inject(jobStoreInjectable),
|
jobStore: di.inject(jobStoreInjectable),
|
||||||
|
statefulSetStore: di.inject(statefulSetStoreInjectable),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { workloadInjectionToken } from "../workload-injection-token";
|
|||||||
import { ResourceNames } from "../../../../utils/rbac";
|
import { ResourceNames } from "../../../../utils/rbac";
|
||||||
import navigateToPodsInjectable from "../../../../../common/front-end-routing/routes/cluster/workloads/deployments/navigate-to-deployments.injectable";
|
import navigateToPodsInjectable from "../../../../../common/front-end-routing/routes/cluster/workloads/deployments/navigate-to-deployments.injectable";
|
||||||
import namespaceStoreInjectable from "../../../+namespaces/namespace-store/namespace-store.injectable";
|
import namespaceStoreInjectable from "../../../+namespaces/namespace-store/namespace-store.injectable";
|
||||||
import statefulsetsStoreInjectable from "../../../+workloads-statefulsets/statefulsets-store.injectable";
|
import statefulsetsStoreInjectable from "../../../+workloads-statefulsets/store.injectable";
|
||||||
import { computed } from "mobx";
|
import { computed } from "mobx";
|
||||||
|
|
||||||
const statefulsetsWorkloadInjectable = getInjectable({
|
const statefulsetsWorkloadInjectable = getInjectable({
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { asLegacyGlobalForExtensionApi } from "../../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api";
|
||||||
|
import statefulSetStoreInjectable from "./store.injectable";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use `di.inject(statefulSetStoreInjectable)` instead
|
||||||
|
*/
|
||||||
|
export const statefulSetStore = asLegacyGlobalForExtensionApi(statefulSetStoreInjectable);
|
||||||
@ -10,11 +10,11 @@ import { StatefulSet } from "../../../../common/k8s-api/endpoints";
|
|||||||
import { StatefulSetScaleDialog } from "./dialog";
|
import { StatefulSetScaleDialog } from "./dialog";
|
||||||
import { waitFor, fireEvent } from "@testing-library/react";
|
import { waitFor, fireEvent } from "@testing-library/react";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import type { OpenStatefulSetScaleDialog } from "./open.injectable";
|
import type { OpenStatefulSetScaleDialog } from "./open-dialog.injectable";
|
||||||
import { getDiForUnitTesting } from "../../../getDiForUnitTesting";
|
import { getDiForUnitTesting } from "../../../getDiForUnitTesting";
|
||||||
import statefulSetApiInjectable from "../../../../common/k8s-api/endpoints/stateful-set.api.injectable";
|
import statefulSetApiInjectable from "../../../../common/k8s-api/endpoints/stateful-set.api.injectable";
|
||||||
import createStoresAndApisInjectable from "../../../create-stores-apis.injectable";
|
import createStoresAndApisInjectable from "../../../create-stores-apis.injectable";
|
||||||
import openStatefulSetScaleDialogInjectable from "./open.injectable";
|
import openStatefulSetScaleDialogInjectable from "./open-dialog.injectable";
|
||||||
import { type DiRender, renderFor } from "../../test-utils/renderFor";
|
import { type DiRender, renderFor } from "../../test-utils/renderFor";
|
||||||
|
|
||||||
const dummyStatefulSet = new StatefulSet({
|
const dummyStatefulSet = new StatefulSet({
|
||||||
@ -19,7 +19,7 @@ import { Notifications } from "../../notifications";
|
|||||||
import { cssNames } from "../../../utils";
|
import { cssNames } from "../../../utils";
|
||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import statefulSetApiInjectable from "../../../../common/k8s-api/endpoints/stateful-set.api.injectable";
|
import statefulSetApiInjectable from "../../../../common/k8s-api/endpoints/stateful-set.api.injectable";
|
||||||
import statefulSetDialogStateInjectable from "./state.injectable";
|
import statefulSetDialogStateInjectable from "./dialog-state.injectable";
|
||||||
|
|
||||||
export interface StatefulSetScaleDialogProps extends Partial<DialogProps> {
|
export interface StatefulSetScaleDialogProps extends Partial<DialogProps> {
|
||||||
}
|
}
|
||||||
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import type { StatefulSet } from "../../../../common/k8s-api/endpoints";
|
import type { StatefulSet } from "../../../../common/k8s-api/endpoints";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import statefulSetDialogStateInjectable from "./state.injectable";
|
import statefulSetDialogStateInjectable from "./dialog-state.injectable";
|
||||||
|
|
||||||
export type OpenStatefulSetScaleDialog = (obj: StatefulSet) => void;
|
export type OpenStatefulSetScaleDialog = (obj: StatefulSet) => void;
|
||||||
|
|
||||||
@ -7,9 +7,9 @@ import type { KubeObjectMenuProps } from "../kube-object-menu";
|
|||||||
import type { StatefulSet } from "../../../common/k8s-api/endpoints";
|
import type { StatefulSet } from "../../../common/k8s-api/endpoints";
|
||||||
import { MenuItem } from "../menu";
|
import { MenuItem } from "../menu";
|
||||||
import { Icon } from "../icon";
|
import { Icon } from "../icon";
|
||||||
import type { OpenStatefulSetScaleDialog } from "./dialog/open.injectable";
|
import type { OpenStatefulSetScaleDialog } from "./scale/open-dialog.injectable";
|
||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import openStatefulSetScaleDialogInjectable from "./dialog/open.injectable";
|
import openStatefulSetScaleDialogInjectable from "./scale/open-dialog.injectable";
|
||||||
|
|
||||||
export interface StatefulSetMenuProps extends KubeObjectMenuProps<StatefulSet> {}
|
export interface StatefulSetMenuProps extends KubeObjectMenuProps<StatefulSet> {}
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { DrawerItem } from "../drawer";
|
|||||||
import { PodDetailsStatuses } from "../+workloads-pods/pod-details-statuses";
|
import { PodDetailsStatuses } from "../+workloads-pods/pod-details-statuses";
|
||||||
import { PodDetailsTolerations } from "../+workloads-pods/pod-details-tolerations";
|
import { PodDetailsTolerations } from "../+workloads-pods/pod-details-tolerations";
|
||||||
import { PodDetailsAffinities } from "../+workloads-pods/pod-details-affinities";
|
import { PodDetailsAffinities } from "../+workloads-pods/pod-details-affinities";
|
||||||
import { statefulSetStore } from "./statefulset.store";
|
import type { StatefulSetStore } from "./store";
|
||||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||||
import type { PodMetricData } from "../../../common/k8s-api/endpoints";
|
import type { PodMetricData } from "../../../common/k8s-api/endpoints";
|
||||||
import { getMetricsForStatefulSets, StatefulSet } from "../../../common/k8s-api/endpoints";
|
import { getMetricsForStatefulSets, StatefulSet } from "../../../common/k8s-api/endpoints";
|
||||||
@ -29,6 +29,7 @@ import type { SubscribeStores } from "../../kube-watch-api/kube-watch-api";
|
|||||||
import subscribeStoresInjectable from "../../kube-watch-api/subscribe-stores.injectable";
|
import subscribeStoresInjectable from "../../kube-watch-api/subscribe-stores.injectable";
|
||||||
import type { PodStore } from "../+workloads-pods/store";
|
import type { PodStore } from "../+workloads-pods/store";
|
||||||
import podStoreInjectable from "../+workloads-pods/store.injectable";
|
import podStoreInjectable from "../+workloads-pods/store.injectable";
|
||||||
|
import statefulSetStoreInjectable from "./store.injectable";
|
||||||
|
|
||||||
export interface StatefulSetDetailsProps extends KubeObjectDetailsProps<StatefulSet> {
|
export interface StatefulSetDetailsProps extends KubeObjectDetailsProps<StatefulSet> {
|
||||||
}
|
}
|
||||||
@ -36,6 +37,7 @@ export interface StatefulSetDetailsProps extends KubeObjectDetailsProps<Stateful
|
|||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
subscribeStores: SubscribeStores;
|
subscribeStores: SubscribeStores;
|
||||||
podStore: PodStore;
|
podStore: PodStore;
|
||||||
|
statefulSetStore: StatefulSetStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
@ -66,7 +68,7 @@ class NonInjectedStatefulSetDetails extends React.Component<StatefulSetDetailsPr
|
|||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { object: statefulSet, podStore } = this.props;
|
const { object: statefulSet, podStore, statefulSetStore } = this.props;
|
||||||
|
|
||||||
if (!statefulSet) {
|
if (!statefulSet) {
|
||||||
return null;
|
return null;
|
||||||
@ -137,6 +139,7 @@ export const StatefulSetDetails = withInjectables<Dependencies, StatefulSetDetai
|
|||||||
...props,
|
...props,
|
||||||
subscribeStores: di.inject(subscribeStoresInjectable),
|
subscribeStores: di.inject(subscribeStoresInjectable),
|
||||||
podStore: di.inject(podStoreInjectable),
|
podStore: di.inject(podStoreInjectable),
|
||||||
|
statefulSetStore: di.inject(statefulSetStoreInjectable),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
|
||||||
import { statefulSetStore } from "./statefulset.store";
|
|
||||||
|
|
||||||
const statefulsetsStoreInjectable = getInjectable({
|
|
||||||
id: "statefulset-store",
|
|
||||||
instantiate: () => statefulSetStore,
|
|
||||||
causesSideEffects: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
export default statefulsetsStoreInjectable;
|
|
||||||
@ -9,7 +9,7 @@ import React from "react";
|
|||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import type { StatefulSet } from "../../../common/k8s-api/endpoints";
|
import type { StatefulSet } from "../../../common/k8s-api/endpoints";
|
||||||
import { podStore } from "../+workloads-pods/legacy-store";
|
import { podStore } from "../+workloads-pods/legacy-store";
|
||||||
import { statefulSetStore } from "./statefulset.store";
|
import { statefulSetStore } from "./legacy-store";
|
||||||
import { eventStore } from "../+events/event.store";
|
import { eventStore } from "../+events/event.store";
|
||||||
import { KubeObjectListLayout } from "../kube-object-list-layout";
|
import { KubeObjectListLayout } from "../kube-object-list-layout";
|
||||||
import { KubeObjectStatusIcon } from "../kube-object-status-icon";
|
import { KubeObjectStatusIcon } from "../kube-object-status-icon";
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import assert from "assert";
|
||||||
|
import getPodsByOwnerIdInjectable from "../+workloads-pods/get-pods-by-owner-id.injectable";
|
||||||
|
import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable";
|
||||||
|
import statefulSetApiInjectable from "../../../common/k8s-api/endpoints/stateful-set.api.injectable";
|
||||||
|
import createStoresAndApisInjectable from "../../create-stores-apis.injectable";
|
||||||
|
import { StatefulSetStore } from "./store";
|
||||||
|
|
||||||
|
const statefulSetStoreInjectable = getInjectable({
|
||||||
|
id: "stateful-set-store",
|
||||||
|
instantiate: (di) => {
|
||||||
|
assert(di.inject(createStoresAndApisInjectable), "statefulSetStore is only available in certain environment");
|
||||||
|
|
||||||
|
const api = di.inject(statefulSetApiInjectable);
|
||||||
|
const apiManager = di.inject(apiManagerInjectable);
|
||||||
|
const store = new StatefulSetStore({
|
||||||
|
getPodsByOwnerId: di.inject(getPodsByOwnerIdInjectable),
|
||||||
|
}, api);
|
||||||
|
|
||||||
|
apiManager.registerStore(store);
|
||||||
|
|
||||||
|
return store;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default statefulSetStoreInjectable;
|
||||||
@ -3,16 +3,23 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { podStore } from "../+workloads-pods/legacy-store";
|
import type { GetPodsByOwnerId } from "../+workloads-pods/get-pods-by-owner-id.injectable";
|
||||||
import { apiManager } from "../../../common/k8s-api/api-manager";
|
|
||||||
import type { StatefulSet, StatefulSetApi } from "../../../common/k8s-api/endpoints";
|
import type { StatefulSet, StatefulSetApi } from "../../../common/k8s-api/endpoints";
|
||||||
import { PodStatusPhase, statefulSetApi } from "../../../common/k8s-api/endpoints";
|
import { PodStatusPhase } from "../../../common/k8s-api/endpoints";
|
||||||
|
import type { KubeObjectStoreOptions } from "../../../common/k8s-api/kube-object.store";
|
||||||
import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store";
|
import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store";
|
||||||
import { isClusterPageContext } from "../../utils";
|
|
||||||
|
interface Dependencies {
|
||||||
|
getPodsByOwnerId: GetPodsByOwnerId;
|
||||||
|
}
|
||||||
|
|
||||||
export class StatefulSetStore extends KubeObjectStore<StatefulSet, StatefulSetApi> {
|
export class StatefulSetStore extends KubeObjectStore<StatefulSet, StatefulSetApi> {
|
||||||
|
constructor(protected readonly dependencies: Dependencies, api: StatefulSetApi, opts?: KubeObjectStoreOptions) {
|
||||||
|
super(api, opts);
|
||||||
|
}
|
||||||
|
|
||||||
getChildPods(statefulSet: StatefulSet) {
|
getChildPods(statefulSet: StatefulSet) {
|
||||||
return podStore.getPodsByOwnerId(statefulSet.getId());
|
return this.dependencies.getPodsByOwnerId(statefulSet.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
getStatuses(statefulSets: StatefulSet[]) {
|
getStatuses(statefulSets: StatefulSet[]) {
|
||||||
@ -33,11 +40,3 @@ export class StatefulSetStore extends KubeObjectStore<StatefulSet, StatefulSetAp
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const statefulSetStore = isClusterPageContext()
|
|
||||||
? new StatefulSetStore(statefulSetApi)
|
|
||||||
: undefined as never;
|
|
||||||
|
|
||||||
if (isClusterPageContext()) {
|
|
||||||
apiManager.registerStore(statefulSetStore);
|
|
||||||
}
|
|
||||||
@ -4,9 +4,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { observable } from "mobx";
|
import { observable } from "mobx";
|
||||||
import { podStore } from "../+workloads-pods/legacy-store";
|
import podStoreInjectable from "../+workloads-pods/store.injectable";
|
||||||
import { statefulSetStore } from "../+workloads-statefulsets/statefulset.store";
|
import type { StatefulSetStore } from "../+workloads-statefulsets/store";
|
||||||
|
import statefulSetStoreInjectable from "../+workloads-statefulsets/store.injectable";
|
||||||
import { StatefulSet, Pod } from "../../../common/k8s-api/endpoints";
|
import { StatefulSet, Pod } from "../../../common/k8s-api/endpoints";
|
||||||
|
import createStoresAndApisInjectable from "../../create-stores-apis.injectable";
|
||||||
|
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||||
|
|
||||||
const runningStatefulSet = new StatefulSet({
|
const runningStatefulSet = new StatefulSet({
|
||||||
apiVersion: "foo",
|
apiVersion: "foo",
|
||||||
@ -128,7 +131,17 @@ const failedPod = new Pod({
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("StatefulSet Store tests", () => {
|
describe("StatefulSet Store tests", () => {
|
||||||
beforeAll(() => {
|
let statefulSetStore: StatefulSetStore;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
const di = getDiForUnitTesting({ doGeneralOverrides: true });
|
||||||
|
|
||||||
|
di.override(createStoresAndApisInjectable, () => true);
|
||||||
|
|
||||||
|
statefulSetStore = di.inject(statefulSetStoreInjectable);
|
||||||
|
|
||||||
|
const podStore = di.inject(podStoreInjectable);
|
||||||
|
|
||||||
// Add pods to pod store
|
// Add pods to pod store
|
||||||
podStore.items = observable.array([
|
podStore.items = observable.array([
|
||||||
runningPod,
|
runningPod,
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import { Redirect } from "react-router";
|
|||||||
import { ConfirmDialog } from "../../components/confirm-dialog";
|
import { ConfirmDialog } from "../../components/confirm-dialog";
|
||||||
import { DeploymentScaleDialog } from "../../components/+workloads-deployments/scale/dialog";
|
import { DeploymentScaleDialog } from "../../components/+workloads-deployments/scale/dialog";
|
||||||
import { CronJobTriggerDialog } from "../../components/+workloads-cronjobs/cronjob-trigger-dialog";
|
import { CronJobTriggerDialog } from "../../components/+workloads-cronjobs/cronjob-trigger-dialog";
|
||||||
import { StatefulSetScaleDialog } from "../../components/+workloads-statefulsets/dialog/dialog";
|
import { StatefulSetScaleDialog } from "../../components/+workloads-statefulsets/scale/dialog";
|
||||||
import { ReplicaSetScaleDialog } from "../../components/+workloads-replicasets/scale-dialog/dialog";
|
import { ReplicaSetScaleDialog } from "../../components/+workloads-replicasets/scale-dialog/dialog";
|
||||||
import { CommandContainer } from "../../components/command-palette/command-container";
|
import { CommandContainer } from "../../components/command-palette/command-container";
|
||||||
import { ErrorBoundary } from "../../components/error-boundary";
|
import { ErrorBoundary } from "../../components/error-boundary";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user