1 package org.edgegallery.example_app.service;
3 import io.kubernetes.client.ApiException;
4 import io.kubernetes.client.apis.CoreV1Api;
5 import io.kubernetes.client.models.V1PersistentVolumeClaim;
6 import io.kubernetes.client.models.V1PersistentVolumeClaimList;
8 import java.util.ArrayList;
10 import org.edgegallery.example_app.model.Pvcs;
11 import org.springframework.stereotype.Service;
14 public class pvcService {
15 private Pvcs pvcsDetail;
17 public List<Pvcs> getPvcsList() {
18 String namespace = "default";
19 CoreV1Api api = new CoreV1Api();
20 V1PersistentVolumeClaimList list = null;
22 /* list = api.listNamespacedPersistentVolumeClaim(namespace, null, null, null,
23 null, null, null, null, null,
25 list = api.listPersistentVolumeClaimForAllNamespaces(null, null, null,
26 null,null,null,null,null,null);
27 } catch (ApiException apie) {
28 System.err.println("Exception when calling CoreV1Api#listNamespacedPersistentVolumeClaim");
29 apie.printStackTrace();
34 System.out.println("Inside- pvcs obj is null");
36 List<Pvcs> pvcslistElement = new ArrayList<Pvcs>();
38 for (V1PersistentVolumeClaim item : list.getItems()) {
39 pvcsDetail = new Pvcs();
40 pvcsDetail.setNamespace(item.getMetadata().getNamespace());
41 pvcsDetail.setName(item.getMetadata().getName());
42 pvcsDetail.setStatus(item.getStatus().getPhase());
44 pvcsDetail.setVolume(item.getSpec().getVolumeName());
45 pvcsDetail.setVolumemode(item.getSpec().getVolumeMode());
46 //TODO: getAccessModes return list of string, need to check
47 // pvcsDetail.setAccessmodes(item.getSpec().getAccessModes());
48 pvcsDetail.setStorageclass(item.getSpec().getStorageClassName());
50 // pvcsDetail.setAge(item.getStatus().getConditions().getLastTransitionTime());
51 //TODO: getCapacity is a map. need to get quantity from map and fill
52 //pvcsDetail.setCapacity(item.getStatus().getCapacity());
53 pvcsDetail.setAge("null");
54 pvcslistElement.add(pvcsDetail);
57 return pvcslistElement;