Skip to content

Commit 4aef6c5

Browse files
committed
ARTESCA-14623 // implement Metalk8sVolumeProvider
1 parent 7da7fea commit 4aef6c5

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

ui/rspack.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ const config: Configuration = {
103103
'./platformLibrary': './src/services/platformlibrary/k8s.ts',
104104
'./AlertsNavbarUpdater':
105105
'./src/components/AlertNavbarUpdaterComponent.tsx',
106+
'./Metalk8sLocalVolumeProvider':
107+
'./src/services/k8s/Metalk8sLocalVolumeProvider.ts',
106108
},
107109
remotes: !isProduction
108110
? {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { CustomObjectsApi } from '@kubernetes/client-node';
2+
import { Config } from '@kubernetes/client-node/dist/browser/config';
3+
import {
4+
Metalk8sV1alpha1VolumeClient,
5+
Metalk8sV1alpha1VolumeList,
6+
} from './Metalk8sVolumeClient.generated';
7+
8+
interface K8SLocalVolumeAdapter {
9+
listVolumes: () => Promise<Metalk8sV1alpha1VolumeList | { error: Error }>;
10+
}
11+
12+
export default class Metalk8sLocalVolumeProvider
13+
implements K8SLocalVolumeAdapter
14+
{
15+
k8sClient: Metalk8sV1alpha1VolumeClient;
16+
constructor(url: string, token: string) {
17+
console.log('url', url);
18+
console.log('token', token);
19+
const config = new Config(url, token);
20+
this.k8sClient = new Metalk8sV1alpha1VolumeClient(
21+
config.makeApiClient(CustomObjectsApi),
22+
);
23+
}
24+
public async listVolumes(): Promise<
25+
Metalk8sV1alpha1VolumeList | { error: Error }
26+
> {
27+
try {
28+
const metalk8sVolumes =
29+
await this.k8sClient.getMetalk8sV1alpha1VolumeList();
30+
console.log({ metalk8sVolumes });
31+
32+
return metalk8sVolumes;
33+
} catch (error) {
34+
throw new Error(`Failed to fetch volumes: ${error.message}`);
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)