/
timpson
/
k8_loader_vaadin
Обзор
Документация
Войти
/
timpson
/
k8_loader_vaadin
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/web/kubernetes/controllers/DeploymentController.java
96 строк
4 KB
root
added deployment and daemonset and pods info views
07 июн 2022, 16:45
07 июн 2022, 16:45
d2b94c4
Код
Авторство
О чём код?
package web.kubernetes.controllers; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.vaadin.flow.server.VaadinService; import io.kubernetes.client.openapi.JSON; import io.kubernetes.client.openapi.models.V1Deployment; import io.kubernetes.client.openapi.models.V1Pod; import io.kubernetes.client.openapi.models.V1StatefulSet; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import web.kubernetes.model.PodShort; import web.kubernetes.payloads.responses.*; import web.kubernetes.utils.CookieUtils; import web.kubernetes.utils.JsonUtils; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.ArrayList; import java.util.HashMap; @Component public class DeploymentController { JSON json; @Value("${k8s.url}") private String SERVER; CommonController<V1Deployment> commonController = new CommonController(); CommonController<V1Pod> commonPodController = new CommonController(); private final String DEPLOYMENTS_URL_PATH = "/deployments"; private final String DEPLOYMENT_URL_PATH = "/deployment"; private final String DEPLOYMENT_SCALE_URL_PATH = "/scaledeployment"; private final String DEPLOYMENT_DELETE_URL_PATH = "/deletedeployment"; private final String PODS_SHORT_BY_SELECTOR = "/podsbyselectorshort"; private final String PODS_BY_DEPLOYMENT = "/podsbydeployment"; public CommonObjectsResponse<V1Deployment> getDeploymentsByNamespace(String namespace) { return commonController.getObjectsByNamespace(namespace, SERVER + DEPLOYMENTS_URL_PATH, V1Deployment.class); } public CommonObjectsResponse<V1Pod> getPodsByDeployment(String name,String namespace) { return commonPodController.getObjectsByObjects(name,namespace, SERVER + PODS_BY_DEPLOYMENT, V1Pod.class); } public CommonObjectResponse<V1Deployment> getDeploymentByName(String name, String namespace) { return commonController.getObjectByName(name, namespace, SERVER + DEPLOYMENT_URL_PATH, V1Deployment.class); } public CommonObjectResponse<V1Deployment> scaleDeploymentByName(String name, String namespace, int replicas) { return commonController.scaleObjectByName(name, namespace, replicas, SERVER + DEPLOYMENT_SCALE_URL_PATH, V1Deployment.class); } public CommonDeleteResponse deleteDeploymentByName(String name, String namespace) { return commonController.deleteObjectByName(name, namespace, SERVER + DEPLOYMENT_DELETE_URL_PATH, V1Deployment.class); } public PodShortResponse getPodsShortBySelector(String key, String value) { HttpClient client = HttpClient.newHttpClient(); String authStr = CookieUtils.getAuth(VaadinService.getCurrentRequest()); HttpRequest request = HttpRequest .newBuilder(URI.create(SERVER + PODS_SHORT_BY_SELECTOR + "?key=" + key + "&value="+value)) .header("accept", "application/json") .header("Authorization", authStr) .GET().build(); try { HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); int status = response.statusCode(); if (status == 200) { ArrayList<PodShort> list = JsonUtils.parseStrToJsonList(response.body().toString(), PodShort.class); return new PodShortResponse(status, "", list); } else if (status == 401) { return new PodShortResponse(status, "Authorization error", null); } else { return new PodShortResponse(status, "Unknown response", null); } } catch (Exception e) { return new PodShortResponse(0, e.getMessage(), null); } } }