|
@@ -4,10 +4,14 @@ import cn.seecoder.paas.service.facade.k8s.PodApi;
|
|
|
import cn.seecoder.paas.service.facade.k8s.exception.K8sApiException;
|
|
import cn.seecoder.paas.service.facade.k8s.exception.K8sApiException;
|
|
|
import cn.seecoder.paas.service.facade.k8s.model.K8sObjectRequest;
|
|
import cn.seecoder.paas.service.facade.k8s.model.K8sObjectRequest;
|
|
|
import cn.seecoder.paas.service.facade.k8s.model.LabelSelector;
|
|
import cn.seecoder.paas.service.facade.k8s.model.LabelSelector;
|
|
|
|
|
+import cn.seecoder.paas.service.facade.k8s.model.Namespace;
|
|
|
import cn.seecoder.paas.service.facade.k8s.model.Pod;
|
|
import cn.seecoder.paas.service.facade.k8s.model.Pod;
|
|
|
import cn.seecoder.paas.util.LoggerUtil;
|
|
import cn.seecoder.paas.util.LoggerUtil;
|
|
|
|
|
+import com.google.gson.JsonSyntaxException;
|
|
|
import io.kubernetes.client.openapi.ApiException;
|
|
import io.kubernetes.client.openapi.ApiException;
|
|
|
import io.kubernetes.client.openapi.apis.CoreV1Api;
|
|
import io.kubernetes.client.openapi.apis.CoreV1Api;
|
|
|
|
|
+import io.kubernetes.client.openapi.models.V1DeleteOptions;
|
|
|
|
|
+import io.kubernetes.client.openapi.models.V1DeleteOptionsBuilder;
|
|
|
import io.kubernetes.client.openapi.models.V1Pod;
|
|
import io.kubernetes.client.openapi.models.V1Pod;
|
|
|
import io.kubernetes.client.openapi.models.V1PodList;
|
|
import io.kubernetes.client.openapi.models.V1PodList;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -18,6 +22,7 @@ import java.util.Collections;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
+import static cn.seecoder.paas.service.facade.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
|
|
|
import static cn.seecoder.paas.service.facade.k8s.K8sConstants.PRETTY_FORMAT;
|
|
import static cn.seecoder.paas.service.facade.k8s.K8sConstants.PRETTY_FORMAT;
|
|
|
import static cn.seecoder.paas.service.facade.k8s.exception.K8sApiException.*;
|
|
import static cn.seecoder.paas.service.facade.k8s.exception.K8sApiException.*;
|
|
|
|
|
|
|
@@ -49,7 +54,33 @@ public class PodApiImpl implements PodApi {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void delete(Pod pod) {
|
|
public void delete(Pod pod) {
|
|
|
- throw K8s_NOT_SUPPORT_METHOD;
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ V1DeleteOptions v1DeleteOptions = new V1DeleteOptionsBuilder()
|
|
|
|
|
+ .withApiVersion(Namespace.API_VERSION)
|
|
|
|
|
+ .withPropagationPolicy(FOREGROUND_PROPAGATION_POLICY)
|
|
|
|
|
+ .build();
|
|
|
|
|
+ coreV1Api.deleteNamespacedPod(
|
|
|
|
|
+ pod.getName(),
|
|
|
|
|
+ pod.getNamespace(),
|
|
|
|
|
+ PRETTY_FORMAT,
|
|
|
|
|
+ null,
|
|
|
|
|
+ null,
|
|
|
|
|
+ null,
|
|
|
|
|
+ FOREGROUND_PROPAGATION_POLICY,
|
|
|
|
|
+ v1DeleteOptions);
|
|
|
|
|
+ } catch (ApiException e) {
|
|
|
|
|
+ LoggerUtil.error(logger, e, "Pod删除失败,name={}, response={}", pod.getName() , e.getResponseBody());
|
|
|
|
|
+ if (e.getCode() == NOT_FOUND) {
|
|
|
|
|
+ throw K8s_NAMESPACE_NOT_EXIST;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ throw K8s_SYSTEM_ERROR_EXCEPTION;
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (JsonSyntaxException e){
|
|
|
|
|
+ //do nothing
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ LoggerUtil.error(logger, e, "Pod删除异常, name={}", pod.getName());
|
|
|
|
|
+ throw K8s_SYSTEM_ERROR_EXCEPTION;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|