@alauda-fe/storage 0.0.1

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.
Files changed (44) hide show
  1. package/esm2022/alauda-fe-storage.mjs +5 -0
  2. package/esm2022/index.mjs +23 -0
  3. package/esm2022/lib/components/pvc-delete-dialog/component.mjs +292 -0
  4. package/esm2022/lib/components/pvc-expand-capacity-dialog/component.mjs +193 -0
  5. package/esm2022/lib/components/pvc-form/component.mjs +674 -0
  6. package/esm2022/lib/components/rebuild-volume-dialog/component.mjs +251 -0
  7. package/esm2022/lib/components/source-link/component.mjs +81 -0
  8. package/esm2022/lib/components/spec-form/component.mjs +464 -0
  9. package/esm2022/lib/components/storage-feature-tags/component.mjs +146 -0
  10. package/esm2022/lib/components/storageclass-select/component.mjs +179 -0
  11. package/esm2022/lib/pipes/actual-capacity.pipe.mjs +17 -0
  12. package/esm2022/lib/services/common-util.service.mjs +163 -0
  13. package/esm2022/lib/services/pvc-util.service.mjs +416 -0
  14. package/esm2022/lib/types/commons.mjs +75 -0
  15. package/esm2022/lib/types/internal.mjs +7 -0
  16. package/esm2022/lib/types/k8s.mjs +2 -0
  17. package/esm2022/lib/types/resource-definition.mjs +13 -0
  18. package/esm2022/lib/types/resource-exports.mjs +8 -0
  19. package/esm2022/lib/types/resource-internals.mjs +2 -0
  20. package/esm2022/lib/utils/constants.mjs +202 -0
  21. package/esm2022/lib/utils/resource-exports.mjs +65 -0
  22. package/esm2022/lib/utils/util.mjs +132 -0
  23. package/index.d.ts +17 -0
  24. package/lib/components/pvc-delete-dialog/component.d.ts +33 -0
  25. package/lib/components/pvc-expand-capacity-dialog/component.d.ts +36 -0
  26. package/lib/components/pvc-form/component.d.ts +106 -0
  27. package/lib/components/rebuild-volume-dialog/component.d.ts +28 -0
  28. package/lib/components/source-link/component.d.ts +17 -0
  29. package/lib/components/spec-form/component.d.ts +71 -0
  30. package/lib/components/storage-feature-tags/component.d.ts +25 -0
  31. package/lib/components/storageclass-select/component.d.ts +26 -0
  32. package/lib/pipes/actual-capacity.pipe.d.ts +8 -0
  33. package/lib/services/common-util.service.d.ts +48 -0
  34. package/lib/services/pvc-util.service.d.ts +130 -0
  35. package/lib/types/commons.d.ts +85 -0
  36. package/lib/types/internal.d.ts +4 -0
  37. package/lib/types/k8s.d.ts +105 -0
  38. package/lib/types/resource-definition.d.ts +18 -0
  39. package/lib/types/resource-exports.d.ts +16 -0
  40. package/lib/types/resource-internals.d.ts +20 -0
  41. package/lib/utils/constants.d.ts +37 -0
  42. package/lib/utils/resource-exports.d.ts +12 -0
  43. package/lib/utils/util.d.ts +19 -0
  44. package/package.json +38 -0
@@ -0,0 +1,18 @@
1
+ export declare const VOLUME_SNAPSHOT_GROUP = "snapshot.storage.k8s.io";
2
+ export declare const StorageResourceDefinitions: {
3
+ readonly VOLUME_SNAPSHOT: {
4
+ readonly type: "volumesnapshots";
5
+ readonly apiGroup: "snapshot.storage.k8s.io";
6
+ readonly apiVersion: "v1";
7
+ };
8
+ };
9
+ export declare const STORAGE_RESOURCE_DEFINITIONS: {
10
+ readonly VOLUME_SNAPSHOT: {
11
+ readonly type: "volumesnapshots";
12
+ readonly apiGroup: "snapshot.storage.k8s.io";
13
+ readonly apiVersion: "v1";
14
+ };
15
+ };
16
+ export declare const STORAGE_RESOURCE_TYPES: {
17
+ readonly VOLUME_SNAPSHOT: "VOLUME_SNAPSHOT";
18
+ };
@@ -0,0 +1,16 @@
1
+ import { ResourceModel } from './resource-internals';
2
+ export interface ResourceSizeTip {
3
+ size: ResourceSize;
4
+ tip: string;
5
+ }
6
+ export interface ResourceSpecification {
7
+ size: ResourceSize;
8
+ limits?: ResourceModel;
9
+ requests?: ResourceModel;
10
+ }
11
+ export declare enum ResourceSize {
12
+ SMALL = "small",
13
+ MEDIUM = "medium",
14
+ LARGE = "large",
15
+ CUSTOMIZE = "customize"
16
+ }
@@ -0,0 +1,20 @@
1
+ export interface ResourceRequirements {
2
+ limits?: {
3
+ cpu: string;
4
+ memory: string;
5
+ };
6
+ requests?: {
7
+ cpu: string;
8
+ memory: string;
9
+ };
10
+ }
11
+ export interface ResourceModel {
12
+ cpu: {
13
+ value: number;
14
+ unit: 'core' | 'm';
15
+ };
16
+ memory: {
17
+ value: number;
18
+ unit: 'Gi' | 'Mi';
19
+ };
20
+ }
@@ -0,0 +1,37 @@
1
+ import { GenericStatusColor, GenericStatusIcon } from '@alauda-fe/common';
2
+ import { StorageOption, StorageProvisioner } from '../types/commons';
3
+ export declare const AccessModeTranslateKey: {
4
+ ReadWriteOnce: string;
5
+ ReadOnlyMany: string;
6
+ ReadWriteMany: string;
7
+ };
8
+ export declare const VolumeModeTranslateKey: {
9
+ Filesystem: string;
10
+ Block: string;
11
+ };
12
+ export declare const IS_DEFAULT_STORAGECLASS_ANNOTATION = "storageclass.kubernetes.io/is-default-class";
13
+ export declare const RESERVED_STORAGECLASS_NAMES: string[];
14
+ export declare const CSI_TOP_SNAPSHOTCLASS_NAME = "csi-topolvm-snapshotclass";
15
+ export declare const CSI_CEPHFS_SNAPSHOTCLASS_NAME = "csi-cephfs-snapshotclass";
16
+ export declare const CSI_RBD_SNAPSHOTCLASS_NAME = "csi-rbd-snapshotclass";
17
+ export declare const OBJECT_STORAGE_FEATURE_GATE = "object-storage";
18
+ export declare const STORAGE_OPTION_MAP: Record<StorageProvisioner, StorageOption>;
19
+ export declare const STORAGECLASS_UNKNOWN: StorageOption;
20
+ export declare enum VolumeSnapshotStatus {
21
+ CREATING = "creating",
22
+ AVAILABLE = "available",
23
+ MALFUNCTION = "malfunction",
24
+ DELETING = "deleting"
25
+ }
26
+ export declare const VolumeSnapshotStatusColorMapper: {
27
+ creating: GenericStatusColor;
28
+ available: GenericStatusColor;
29
+ malfunction: GenericStatusColor;
30
+ deleting: GenericStatusColor;
31
+ };
32
+ export declare const VolumeSnapshotStatusIconMapper: {
33
+ creating: GenericStatusIcon;
34
+ available: GenericStatusIcon;
35
+ malfunction: GenericStatusIcon;
36
+ deleting: GenericStatusIcon;
37
+ };
@@ -0,0 +1,12 @@
1
+ import { LooseValueOf } from '@alauda-fe/common';
2
+ import { ResourceSpecification, ResourceSize } from '../types/resource-exports';
3
+ import { ResourceModel, ResourceRequirements } from '../types/resource-internals';
4
+ export declare const getResourceSpecificationMapper: (specFromModels: ResourceSpecification[]) => Partial<Record<ResourceSize, ResourceSpecification>>;
5
+ export declare const formatResource: ({ value, unit }?: LooseValueOf<ResourceModel>) => string;
6
+ export declare function getResourceSize(resources: ResourceRequirements, resourceDefinitions: ResourceSpecification[]): ResourceSize;
7
+ export declare function getResourceSizeTranslateKey(resources: ResourceRequirements, resourceDefinitions: ResourceSpecification[]): string;
8
+ export declare function getResourceRequirements(resource: {
9
+ cpu: string;
10
+ memory: string;
11
+ }): ResourceModel;
12
+ export declare function getResourceSpecification(resources: ResourceRequirements, resourceDefinitions: ResourceSpecification[]): ResourceSpecification;
@@ -0,0 +1,19 @@
1
+ import { PersistentVolumeClaim, PersistentVolumeClaimStatus, Translation, VolumeMode } from '@alauda-fe/common';
2
+ import { PvcStatusEnum, PvStatusEnum, StorageOption, StorageProvisioner } from '../types/commons';
3
+ import { CommonStorageClass, PersistentVolume, StorageClass, VolumeSnapshot, VolumeSnapshotClass } from '../types/k8s';
4
+ import { VolumeSnapshotStatus } from './constants';
5
+ export declare function getProvisioner(sc: CommonStorageClass | StorageOption): StorageProvisioner;
6
+ export declare function getProvisionerDisplay(sc: CommonStorageClass | StorageOption): Translation;
7
+ export declare function getProvisionerType(provisioner: StorageProvisioner): "file_storage" | "object_storage" | "block_storage" | "unknown";
8
+ export declare function getStorageclassVolumeModes(provisioner: StorageProvisioner): ("Filesystem" | "Block")[];
9
+ export declare function getStorageclassAccessModes(provisioner: StorageProvisioner, isFromSnapshot?: boolean): ("ReadWriteOnce" | "ReadOnlyMany" | "ReadWriteMany")[];
10
+ export declare function isDefaultStorageclass(data: CommonStorageClass): boolean;
11
+ export declare function isStorageClassSupportSnapshot(sc: StorageClass, vscList: VolumeSnapshotClass[]): boolean;
12
+ export declare function buildPvcResource({ namespace, snapshot, volumeMode, }: {
13
+ namespace: string;
14
+ snapshot?: string;
15
+ volumeMode?: VolumeMode;
16
+ }, pvc?: PersistentVolumeClaim): PersistentVolumeClaim;
17
+ export declare function getVolumeSnapshotStatus(resource: VolumeSnapshot): VolumeSnapshotStatus;
18
+ export declare function getPvcStatus(status: PersistentVolumeClaimStatus, refStorageclass?: StorageClass): PvcStatusEnum;
19
+ export declare function getPvStatus(pv: PersistentVolume): PvStatusEnum;
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@alauda-fe/storage",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@alauda/ui": "^8.0.0",
6
+ "@alauda-fe/i18n": "1.0.10",
7
+ "@alauda-fe/common": "1.4.4",
8
+ "@angular/common": "18.1.1",
9
+ "@angular/core": "18.1.1",
10
+ "@angular/router": "18.1.1",
11
+ "@angular/forms": "18.1.1",
12
+ "lodash-es": "^4.17.21",
13
+ "ng-resource-form-util": "^6.1.0",
14
+ "rxjs": "^7.8.1",
15
+ "ramda": "^0.29.0"
16
+ },
17
+ "dependencies": {
18
+ "tslib": "^2.3.0"
19
+ },
20
+ "sideEffects": false,
21
+ "private": false,
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "module": "esm2022/alauda-fe-storage.mjs",
26
+ "typings": "index.d.ts",
27
+ "exports": {
28
+ "./package.json": {
29
+ "default": "./package.json"
30
+ },
31
+ ".": {
32
+ "types": "./index.d.ts",
33
+ "esm2022": "./esm2022/alauda-fe-storage.mjs",
34
+ "esm": "./esm2022/alauda-fe-storage.mjs",
35
+ "default": "./esm2022/alauda-fe-storage.mjs"
36
+ }
37
+ }
38
+ }