From d784e29237eaf56f8d168ef0ec42df007d2c1892 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 19 Dec 2022 14:36:34 +0200 Subject: [PATCH] added ingress-class store, naming clean up Signed-off-by: Roman --- .../ingress-classes-route.injectable.ts | 25 +++++++++++++++++++ src/extensions/renderer-api/k8s-api.ts | 3 ++- .../ingress-class-store.injectable.ts | 23 +++++++++++++++++ .../+network-ingresses/ingress-class-store.ts | 9 +++++++ ...ectable.ts => ingress-store.injectable.ts} | 2 +- .../{store.ts => ingress-store.ts} | 0 .../+network-ingresses/ingresses.tsx | 4 +-- 7 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 src/common/front-end-routing/routes/cluster/network/ingress-class/ingress-classes-route.injectable.ts create mode 100644 src/renderer/components/+network-ingresses/ingress-class-store.injectable.ts create mode 100644 src/renderer/components/+network-ingresses/ingress-class-store.ts rename src/renderer/components/+network-ingresses/{store.injectable.ts => ingress-store.injectable.ts} (95%) rename src/renderer/components/+network-ingresses/{store.ts => ingress-store.ts} (100%) diff --git a/src/common/front-end-routing/routes/cluster/network/ingress-class/ingress-classes-route.injectable.ts b/src/common/front-end-routing/routes/cluster/network/ingress-class/ingress-classes-route.injectable.ts new file mode 100644 index 0000000000..ff5f9d9b08 --- /dev/null +++ b/src/common/front-end-routing/routes/cluster/network/ingress-class/ingress-classes-route.injectable.ts @@ -0,0 +1,25 @@ +/** + * 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 isAllowedResourceInjectable from "../../../../../utils/is-allowed-resource.injectable"; +import { frontEndRouteInjectionToken } from "../../../../front-end-route-injection-token"; + +const ingressClassesRouteInjectable = getInjectable({ + id: "ingress-classes-route", + + instantiate: (di) => { + const isAllowedResource = di.inject(isAllowedResourceInjectable, "ingressclasses"); + + return { + path: "/ingress-classes", + clusterFrame: true, + isEnabled: isAllowedResource, + }; + }, + + injectionToken: frontEndRouteInjectionToken, +}); + +export default ingressClassesRouteInjectable; diff --git a/src/extensions/renderer-api/k8s-api.ts b/src/extensions/renderer-api/k8s-api.ts index 3401d979f7..a28491cb92 100644 --- a/src/extensions/renderer-api/k8s-api.ts +++ b/src/extensions/renderer-api/k8s-api.ts @@ -107,7 +107,8 @@ export type { PodDisruptionBudgetStore as PodDisruptionBudgetsStore } from "../. export type { PriorityClassStore as PriorityClassStoreStore } from "../../renderer/components/+config-priority-classes/store"; export type { ServiceStore } from "../../renderer/components/+network-services/store"; export type { EndpointsStore as EndpointStore } from "../../renderer/components/+network-endpoints/store"; -export type { IngressStore } from "../../renderer/components/+network-ingresses/store"; +export type { IngressStore } from "../../renderer/components/+network-ingresses/ingress-store"; +export type { IngressClassStore } from "../../renderer/components/+network-ingresses/ingress-class-store"; export type { NetworkPolicyStore } from "../../renderer/components/+network-policies/store"; export type { PersistentVolumeStore as PersistentVolumesStore } from "../../renderer/components/+storage-volumes/store"; export type { PersistentVolumeClaimStore as VolumeClaimStore } from "../../renderer/components/+storage-volume-claims/store"; diff --git a/src/renderer/components/+network-ingresses/ingress-class-store.injectable.ts b/src/renderer/components/+network-ingresses/ingress-class-store.injectable.ts new file mode 100644 index 0000000000..8d0dbf3a10 --- /dev/null +++ b/src/renderer/components/+network-ingresses/ingress-class-store.injectable.ts @@ -0,0 +1,23 @@ +/** + * 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 { + kubeObjectStoreInjectionToken +} from "../../../common/k8s-api/api-manager/manager.injectable"; +import ingressClassApiInjectable + from "../../../common/k8s-api/endpoints/ingress-class.api.injectable"; +import { IngressClassStore } from "./ingress-class-store"; + +const ingressClassStoreInjectable = getInjectable({ + id: "ingress-class-store", + instantiate: (di) => { + return new IngressClassStore( + di.inject(ingressClassApiInjectable), + ); + }, + injectionToken: kubeObjectStoreInjectionToken, +}); + +export default ingressClassStoreInjectable; diff --git a/src/renderer/components/+network-ingresses/ingress-class-store.ts b/src/renderer/components/+network-ingresses/ingress-class-store.ts new file mode 100644 index 0000000000..1467a9427a --- /dev/null +++ b/src/renderer/components/+network-ingresses/ingress-class-store.ts @@ -0,0 +1,9 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store"; +import type { IngressClass, IngressClassApi } from "../../../common/k8s-api/endpoints/ingress-class.api"; + +export class IngressClassStore extends KubeObjectStore { +} diff --git a/src/renderer/components/+network-ingresses/store.injectable.ts b/src/renderer/components/+network-ingresses/ingress-store.injectable.ts similarity index 95% rename from src/renderer/components/+network-ingresses/store.injectable.ts rename to src/renderer/components/+network-ingresses/ingress-store.injectable.ts index 9b95939e9f..4594d0f9d7 100644 --- a/src/renderer/components/+network-ingresses/store.injectable.ts +++ b/src/renderer/components/+network-ingresses/ingress-store.injectable.ts @@ -7,7 +7,7 @@ import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/manager.injectable"; import ingressApiInjectable from "../../../common/k8s-api/endpoints/ingress.api.injectable"; import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; -import { IngressStore } from "./store"; +import { IngressStore } from "./ingress-store"; const ingressStoreInjectable = getInjectable({ id: "ingress-store", diff --git a/src/renderer/components/+network-ingresses/store.ts b/src/renderer/components/+network-ingresses/ingress-store.ts similarity index 100% rename from src/renderer/components/+network-ingresses/store.ts rename to src/renderer/components/+network-ingresses/ingress-store.ts diff --git a/src/renderer/components/+network-ingresses/ingresses.tsx b/src/renderer/components/+network-ingresses/ingresses.tsx index 6956944483..e8c8745926 100644 --- a/src/renderer/components/+network-ingresses/ingresses.tsx +++ b/src/renderer/components/+network-ingresses/ingresses.tsx @@ -13,11 +13,11 @@ import { SiblingsInTabLayout } from "../layout/siblings-in-tab-layout"; import { KubeObjectAge } from "../kube-object/age"; import { computeRouteDeclarations } from "../../../common/k8s-api/endpoints"; import { prevDefault } from "../../utils"; -import type { IngressStore } from "./store"; +import type { IngressStore } from "./ingress-store"; import type { FilterByNamespace } from "../+namespaces/namespace-select-filter-model/filter-by-namespace.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import filterByNamespaceInjectable from "../+namespaces/namespace-select-filter-model/filter-by-namespace.injectable"; -import ingressStoreInjectable from "./store.injectable"; +import ingressStoreInjectable from "./ingress-store.injectable"; enum columnId { name = "name",