1
0
wanghongkai 5 سال پیش
والد
کامیت
623c540006

+ 3 - 3
src/main/java/cn/seecoder/paas/service/facade/k8s/impl/ConfigMapApiImpl.java

@@ -149,14 +149,14 @@ public class ConfigMapApiImpl implements ConfigMapApi {
             LoggerUtil.error(logger, e, "查找configMap失败,namespace = {}, response={}",
                     request.getNamespace(), e.getResponseBody());
             if (e.getCode() == NOT_FOUND) {
-                throw new K8sApiException(NOT_FOUND);
+                return Collections.emptyList();
             }else {
-                throw K8s_SYSTEM_ERROR_EXCEPTION;
+                return Collections.emptyList();
             }
         } catch (Exception e) {
             LoggerUtil.error(logger, e, "查找configMap失败,namespace = {}, name={}",
                     request.getNamespace());
-            throw K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         }
     }
 

+ 4 - 4
src/main/java/cn/seecoder/paas/service/facade/k8s/impl/DeploymentApiImpl.java

@@ -57,7 +57,7 @@ public class DeploymentApiImpl implements DeploymentApi {
         try {
             V1Deployment v1Deployment = deployment.toK8sObject();
             V1Deployment result = appsV1Api.createNamespacedDeployment(deployment.getNamespace(),v1Deployment, PRETTY_FORMAT, null, null);
-            return v1Deployment == null ? null : new Deployment(result);
+            return result == null ? null : new Deployment(result);
         } catch (ApiException e) {
             LoggerUtil.error(logger, e, "deployment创建失败, deployment={}, response={}", deployment, e.getResponseBody());
 
@@ -175,14 +175,14 @@ public class DeploymentApiImpl implements DeploymentApi {
             LoggerUtil.error(logger, e, "查找deployment失败,namespace = {}, response={}",
                     request.getNamespace(), e.getResponseBody());
             if (e.getCode() == NOT_FOUND) {
-                throw new K8sApiException(NOT_FOUND);
+                return Collections.emptyList();
             }else {
-                throw K8s_SYSTEM_ERROR_EXCEPTION;
+                return Collections.emptyList();
             }
         } catch (Exception e) {
             LoggerUtil.error(logger, e, "查找deployment失败,namespace = {}, name={}",
                     request.getNamespace());
-            throw K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         }
     }
 

+ 4 - 4
src/main/java/cn/seecoder/paas/service/facade/k8s/impl/IngressApiImpl.java

@@ -176,14 +176,14 @@ public class IngressApiImpl implements IngressApi {
             LoggerUtil.error(logger, e, "查找ingresses失败,namespace = {}, response={}",
                     request.getNamespace(), e.getResponseBody());
             if (e.getCode() == NOT_FOUND) {
-                throw new K8sApiException(NOT_FOUND);
-            }else {
-                throw K8s_SYSTEM_ERROR_EXCEPTION;
+                return Collections.emptyList();
+            } else {
+                return Collections.emptyList();
             }
         } catch (Exception e) {
             LoggerUtil.error(logger, e, "查找ingresses失败,namespace = {}, name={}",
                     request.getNamespace());
-            throw K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         }
     }
 }

+ 2 - 2
src/main/java/cn/seecoder/paas/service/facade/k8s/impl/NamespaceApiImpl.java

@@ -134,10 +134,10 @@ public class NamespaceApiImpl implements NamespaceApi {
             return namespaces;
         } catch (ApiException e) {
             LoggerUtil.error(logger, e, "获取全部Namespace异常, response={}", e.getResponseBody());
-            throw K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         } catch (Exception e) {
             LoggerUtil.error(logger, e, "查询所有Namespace失败");
-            throw K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         }
     }
 

+ 3 - 3
src/main/java/cn/seecoder/paas/service/facade/k8s/impl/PodApiImpl.java

@@ -121,14 +121,14 @@ public class PodApiImpl implements PodApi {
             LoggerUtil.error(logger, e, "查找pod失败,namespace = {}, response={}",
                     request.getNamespace(), e.getResponseBody());
             if (e.getCode() == NOT_FOUND) {
-                throw new K8sApiException(NOT_FOUND);
+                return Collections.emptyList();
             }else {
-                throw K8s_SYSTEM_ERROR_EXCEPTION;
+                return Collections.emptyList();
             }
         } catch (Exception e) {
             LoggerUtil.error(logger, e, "查找pod失败,namespace = {}, name={}",
                     request.getNamespace());
-            throw K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         }
     }
 

+ 3 - 3
src/main/java/cn/seecoder/paas/service/facade/k8s/impl/ServiceApiImpl.java

@@ -150,14 +150,14 @@ public class ServiceApiImpl implements ServiceApi {
             LoggerUtil.error(logger, e, "查找pod失败,namespace = {}, response={}",
                     request.getNamespace(), e.getResponseBody());
             if (e.getCode() == NOT_FOUND) {
-                throw new K8sApiException(NOT_FOUND);
+                return Collections.emptyList();
             }else {
-                throw K8s_SYSTEM_ERROR_EXCEPTION;
+                return Collections.emptyList();
             }
         } catch (Exception e) {
             LoggerUtil.error(logger, e, "查找pod失败,namespace = {}, name={}",
                     request.getNamespace());
-            throw K8s_SYSTEM_ERROR_EXCEPTION;
+            return Collections.emptyList();
         }
     }
 

+ 5 - 5
src/main/java/cn/seecoder/paas/service/facade/k8s/model/Container.java

@@ -74,10 +74,10 @@ public class Container implements K8sObjectTransformer<V1Container> {
     public Container(V1Container v1Container) {
         this.name = v1Container.getName();
         this.image = v1Container.getImage();
-        this.ports = v1Container.getPorts().stream().map(ContainerPort::new).collect(Collectors.toSet());
+        this.ports = v1Container.getPorts() == null ? null : v1Container.getPorts().stream().map(ContainerPort::new).collect(Collectors.toSet());
         this.args = v1Container.getArgs();
         this.command = v1Container.getCommand();
-        this.volumeMounts = v1Container.getVolumeMounts().stream().map(VolumeMount::new).collect(Collectors.toList());
+        this.volumeMounts = v1Container.getVolumeMounts() != null ? v1Container.getVolumeMounts().stream().map(VolumeMount::new).collect(Collectors.toList()) : null;
         if (v1Container.getEnv() != null && !v1Container.getEnv().isEmpty()) {
             this.env = v1Container.getEnv().stream().collect(Collectors.toMap(V1EnvVar::getName, V1EnvVar::getValue));
         }
@@ -91,9 +91,9 @@ public class Container implements K8sObjectTransformer<V1Container> {
                 .withImagePullPolicy(IMAGE_PULL_POLICY)
                 .withArgs(args)
                 .withCommand(command)
-                .withPorts(ports.stream().map(ContainerPort::toK8sObject).collect(Collectors.toList()))
-                .withVolumeMounts(this.volumeMounts.stream().map(VolumeMount::toK8sObject).collect(Collectors.toList()))
-                .withEnv(env
+                .withPorts(ports == null ? null : ports.stream().map(ContainerPort::toK8sObject).collect(Collectors.toList()))
+                .withVolumeMounts(volumeMounts == null ? null : this.volumeMounts.stream().map(VolumeMount::toK8sObject).collect(Collectors.toList()))
+                .withEnv(env == null ? null : env
                         .entrySet()
                         .stream()
                         .map(entry ->

+ 7 - 7
src/main/java/cn/seecoder/paas/service/facade/k8s/model/Deployment.java

@@ -56,9 +56,9 @@ public class Deployment extends K8sAbstractObject<V1Deployment> {
 
     public Deployment(V1Deployment v1Deployment) {
         super(v1Deployment);
-        this.containers = v1Deployment.getSpec().getTemplate().getSpec().getContainers()
+        this.containers = v1Deployment.getSpec().getTemplate().getSpec().getContainers() == null ? null : v1Deployment.getSpec().getTemplate().getSpec().getContainers()
                 .stream().map(Container::new).collect(Collectors.toList());
-        this.imagePullSecrets = v1Deployment.getSpec().getTemplate().getSpec().getImagePullSecrets()
+        this.imagePullSecrets = v1Deployment.getSpec().getTemplate().getSpec().getImagePullSecrets() == null ? null : v1Deployment.getSpec().getTemplate().getSpec().getImagePullSecrets()
                 .stream().map(V1LocalObjectReference::getName).collect(Collectors.toList());
         this.replicas = v1Deployment.getSpec().getReplicas();
         this.timeout = v1Deployment.getSpec().getProgressDeadlineSeconds();
@@ -78,12 +78,12 @@ public class Deployment extends K8sAbstractObject<V1Deployment> {
                 .withLabels(getLabels())
                 .withAnnotations(getAnnotations())
                 .build();
-        List<V1LocalObjectReference> references = imagePullSecrets
+        List<V1LocalObjectReference> references = imagePullSecrets == null ? null : imagePullSecrets
                 .stream()
                 .map(secret -> new V1LocalObjectReference().name(secret))
                 .collect(Collectors.toList());
         V1PodSpec v1PodSpec = new V1PodSpecBuilder()
-                .addAllToContainers(containers.stream().map(Container::toK8sObject).collect(Collectors.toList()))
+                .addAllToContainers(containers == null ? null : containers.stream().map(Container::toK8sObject).collect(Collectors.toList()))
                 .withImagePullSecrets(references)
                 .withVolumes(volumes)
                 .build();
@@ -120,10 +120,10 @@ public class Deployment extends K8sAbstractObject<V1Deployment> {
         v1Deployment.getSpec().setReplicas(this.replicas);
         v1Deployment.getSpec().setProgressDeadlineSeconds(timeout);
         v1Deployment.getSpec().setRevisionHistoryLimit(revisionHistoryLimit);
-        v1Deployment.getSpec().getTemplate().getSpec().setContainers(this.containers.stream().map(Container::toK8sObject).collect(Collectors.toList()));
-        v1Deployment.getSpec().getTemplate().getSpec().setVolumes(this.volumes);
+        v1Deployment.getSpec().getTemplate().getSpec().setContainers(containers == null ? null : this.containers.stream().map(Container::toK8sObject).collect(Collectors.toList()));
+        v1Deployment.getSpec().getTemplate().getSpec().setVolumes(volumes == null ? null : this.volumes);
         v1Deployment.getSpec().getTemplate().getSpec().setImagePullSecrets(
-                this.imagePullSecrets
+                imagePullSecrets == null ? null : this.imagePullSecrets
                 .stream()
                 .map(secret -> new V1LocalObjectReference().name(secret))
                 .collect(Collectors.toList()));

+ 4 - 3
src/main/java/cn/seecoder/paas/service/facade/k8s/model/Ingress.java

@@ -113,17 +113,18 @@ public class Ingress extends K8sAbstractObject<ExtensionsV1beta1Ingress> {
         public IngressRule(ExtensionsV1beta1IngressRule ExtensionsV1beta1IngressRule) {
             this.host = ExtensionsV1beta1IngressRule.getHost();
             if (ExtensionsV1beta1IngressRule.getHttp() != null) {
-                this.ruleValues = ExtensionsV1beta1IngressRule.getHttp()
+                this.ruleValues = ExtensionsV1beta1IngressRule.getHttp() != null && ExtensionsV1beta1IngressRule.getHttp()
+                        .getPaths() != null ? ExtensionsV1beta1IngressRule.getHttp()
                         .getPaths()
                         .stream()
                         .map(IngressPath::new)
-                        .collect(Collectors.toSet());
+                        .collect(Collectors.toSet()) : null;
             }
 
         }
 
         private ExtensionsV1beta1HTTPIngressRuleValue toV1beta1HTTPIngressRuleValue() {
-            List<ExtensionsV1beta1HTTPIngressPath> paths = ruleValues.stream()
+            List<ExtensionsV1beta1HTTPIngressPath> paths = ruleValues == null ? null : ruleValues.stream()
                     .map(IngressPath::toK8sObject)
                     .collect(Collectors.toList());
 

+ 3 - 3
src/main/java/cn/seecoder/paas/service/facade/k8s/model/Service.java

@@ -34,21 +34,21 @@ public class Service extends K8sAbstractObject<V1Service> {
 
     public Service(V1Service v1Service) {
         super(v1Service);
-        this.servicePorts = v1Service.getSpec().getPorts().stream().map(ServicePort::new).collect(Collectors.toSet());
+        this.servicePorts = v1Service.getSpec().getPorts() == null ? null : v1Service.getSpec().getPorts().stream().map(ServicePort::new).collect(Collectors.toSet());
         this.selectors = v1Service.getSpec().getSelector();
     }
 
     public void merge(V1Service v1Service) {
         v1Service.getMetadata().setNamespace(this.namespace);
         v1Service.getMetadata().setName(this.name);
-        v1Service.getSpec().setPorts(servicePorts.stream().map(ServicePort::toV1ServicePort).collect(Collectors.toList()));
+        v1Service.getSpec().setPorts(servicePorts == null ? null : servicePorts.stream().map(ServicePort::toV1ServicePort).collect(Collectors.toList()));
         v1Service.getSpec().setSelector(this.selectors);
     }
 
     private V1ServiceSpec toV1ServiceSpec() {
         V1ServiceSpec serviceSpec = new V1ServiceSpecBuilder()
                 .withSelector(selectors)
-                .withPorts(servicePorts.stream().map(ServicePort::toV1ServicePort).collect(Collectors.toList()))
+                .withPorts(servicePorts == null ? null : servicePorts.stream().map(ServicePort::toV1ServicePort).collect(Collectors.toList()))
                 .build();
         return serviceSpec;
     }

+ 1 - 1
src/main/java/cn/seecoder/paas/service/facade/k8s/model/ServicePort.java

@@ -37,7 +37,7 @@ public class ServicePort {
     public ServicePort(V1ServicePort v1ServicePort) {
         this.name = v1ServicePort.getName();
         this.port = v1ServicePort.getPort();
-        this.targetPort = v1ServicePort.getTargetPort().getIntValue();
+        this.targetPort = v1ServicePort.getTargetPort() == null ? -1 : v1ServicePort.getTargetPort().getIntValue();
     }
 
     public V1ServicePort toV1ServicePort(){

+ 4 - 1
src/main/java/cn/seecoder/paas/service/impl/EnvironmentServiceImpl.java

@@ -191,7 +191,7 @@ public class EnvironmentServiceImpl implements EnvironmentService {
         if (result == null) {
             throw ServiceException.BAD_REQUEST;
         }
-        if (result.getBuildStatus() == BuildStatus.BUILDING || result.getDeployStatus() == DeployStatus.DEPLOYING) {
+        if (result.getBuildStatus() == BuildStatus.BUILDING || result.getDeployStatus() == DeployStatus.DEPLOYING || result.getDeployStatus() == DeployStatus.RESTARTING) {
             throw new ServiceException("101", "存在正在进行的构建或部署!");
         }
         Config config = configDAO.findByConfigBelongsAndAndEntityId(ConfigBelongsToType.ENVIRONMENT, id);
@@ -243,6 +243,9 @@ public class EnvironmentServiceImpl implements EnvironmentService {
         if (result == null) {
             throw ServiceException.BAD_REQUEST;
         }
+        if (result.getBuildStatus() == BuildStatus.BUILDING || result.getDeployStatus() == DeployStatus.DEPLOYING || result.getDeployStatus() == DeployStatus.RESTARTING) {
+            throw new ServiceException("101", "存在正在进行的构建或部署!");
+        }
         Pod pod = new Pod();
         pod.setName(podName);
         pod.setNamespace(applicationProperties.getDeploymentNamespace());