|
|
@@ -1,5 +1,11 @@
|
|
|
-package seecoder.devcloud.api.k8s.impl;
|
|
|
+package cn.seecoder.api.k8s.impl;
|
|
|
|
|
|
+import cn.seecoder.api.k8s.K8sConstants;
|
|
|
+import cn.seecoder.api.k8s.NamespaceApi;
|
|
|
+import cn.seecoder.api.k8s.exception.K8sApiException;
|
|
|
+import cn.seecoder.api.k8s.model.K8sObjectRequest;
|
|
|
+import cn.seecoder.api.k8s.model.LabelSelector;
|
|
|
+import cn.seecoder.api.k8s.model.Namespace;
|
|
|
import com.google.gson.JsonSyntaxException;
|
|
|
import io.kubernetes.client.openapi.ApiException;
|
|
|
import io.kubernetes.client.openapi.apis.CoreV1Api;
|
|
|
@@ -10,21 +16,12 @@ import io.kubernetes.client.openapi.models.V1NamespaceList;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import seecoder.devcloud.api.k8s.NamespaceApi;
|
|
|
-import seecoder.devcloud.api.k8s.exception.K8sApiException;
|
|
|
-import seecoder.devcloud.api.k8s.model.K8sObjectRequest;
|
|
|
-import seecoder.devcloud.api.k8s.model.LabelSelector;
|
|
|
-import seecoder.devcloud.api.k8s.model.Namespace;
|
|
|
-import seecoder.devcloud.common.util.LoggerUtil;
|
|
|
+import cn.seecoder.common.util.LoggerUtil;
|
|
|
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static seecoder.devcloud.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
|
|
|
-import static seecoder.devcloud.api.k8s.K8sConstants.PRETTY_FORMAT;
|
|
|
-import static seecoder.devcloud.api.k8s.exception.K8sApiException.*;
|
|
|
-
|
|
|
|
|
|
@Service
|
|
|
public class NamespaceApiImpl implements NamespaceApi {
|
|
|
@@ -49,24 +46,24 @@ public class NamespaceApiImpl implements NamespaceApi {
|
|
|
public Namespace create(Namespace namespace) {
|
|
|
V1Namespace v1Namespace = namespace.toK8sObject();
|
|
|
try {
|
|
|
- V1Namespace result = coreV1Api.createNamespace(v1Namespace, PRETTY_FORMAT, null, null);
|
|
|
+ V1Namespace result = coreV1Api.createNamespace(v1Namespace, K8sConstants.PRETTY_FORMAT, null, null);
|
|
|
return result == null ? null : new Namespace(result);
|
|
|
} catch (ApiException e) {
|
|
|
LoggerUtil.error(logger, e, "Namespace创建失败,namespace={}, v1Namespace={}, response={}", namespace, v1Namespace, e.getResponseBody());
|
|
|
- if (e.getCode() == ALREADY_EXIST) {
|
|
|
- throw new K8sApiException(ALREADY_EXIST);
|
|
|
+ if (e.getCode() == K8sApiException.ALREADY_EXIST) {
|
|
|
+ throw new K8sApiException(K8sApiException.ALREADY_EXIST);
|
|
|
} else {
|
|
|
- throw K8s_SYSTEM_ERROR_EXCEPTION;
|
|
|
+ throw K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
LoggerUtil.error(logger, e, "Namespace创建异常, namespace={}, v1Namespace={}", namespace, v1Namespace);
|
|
|
- throw K8s_SYSTEM_ERROR_EXCEPTION;
|
|
|
+ throw K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Namespace update(Namespace namespace) {
|
|
|
- throw K8s_NOT_SUPPORT_METHOD;
|
|
|
+ throw K8sApiException.K8s_NOT_SUPPORT_METHOD;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -74,19 +71,19 @@ public class NamespaceApiImpl implements NamespaceApi {
|
|
|
try {
|
|
|
V1DeleteOptions v1DeleteOptions = new V1DeleteOptionsBuilder()
|
|
|
.withApiVersion(Namespace.API_VERSION)
|
|
|
- .withPropagationPolicy(FOREGROUND_PROPAGATION_POLICY)
|
|
|
+ .withPropagationPolicy(K8sConstants.FOREGROUND_PROPAGATION_POLICY)
|
|
|
.build();
|
|
|
coreV1Api.deleteNamespace(
|
|
|
namespace.getName(),
|
|
|
- PRETTY_FORMAT,
|
|
|
+ K8sConstants.PRETTY_FORMAT,
|
|
|
null,
|
|
|
null,
|
|
|
null,
|
|
|
- FOREGROUND_PROPAGATION_POLICY,
|
|
|
+ K8sConstants.FOREGROUND_PROPAGATION_POLICY,
|
|
|
v1DeleteOptions);
|
|
|
} catch (ApiException e) {
|
|
|
LoggerUtil.error(logger, e, "Namespace删除失败,name={}, response={}", namespace.getName() , e.getResponseBody());
|
|
|
- if (e.getCode() == NOT_FOUND) {
|
|
|
+ if (e.getCode() == K8sApiException.NOT_FOUND) {
|
|
|
return;
|
|
|
}else {
|
|
|
return;
|
|
|
@@ -105,7 +102,7 @@ public class NamespaceApiImpl implements NamespaceApi {
|
|
|
if (request.getName() != null) {
|
|
|
V1Namespace v1Namespace = coreV1Api.readNamespace(
|
|
|
request.getName(),
|
|
|
- PRETTY_FORMAT,
|
|
|
+ K8sConstants.PRETTY_FORMAT,
|
|
|
null,
|
|
|
null);
|
|
|
return v1Namespace == null ? Collections.emptyList() : Collections.singletonList(new Namespace(v1Namespace));
|
|
|
@@ -121,7 +118,7 @@ public class NamespaceApiImpl implements NamespaceApi {
|
|
|
selector.addAll(request.getLabels());
|
|
|
}
|
|
|
V1NamespaceList v1NamespaceList = coreV1Api.listNamespace(
|
|
|
- PRETTY_FORMAT,
|
|
|
+ K8sConstants.PRETTY_FORMAT,
|
|
|
null,
|
|
|
null,
|
|
|
null,
|