raledong пре 7 година
родитељ
комит
d00837d839

+ 6 - 2
config.yml

@@ -24,7 +24,7 @@ moocoder:
     username: root
     token: 113cb5bd4a6fea342892a08c8d2e07dc68
   docker:
-    nexus: 10.1.1.243:10082
+    nexus: 10.1.1.243:18082
   mail:
     from: noreply@moocoder.cn
   storage:
@@ -39,4 +39,8 @@ moocoder:
     public-mysql-url: jdbc:mysql://mysql.group24.svc.cluster.local:3306
     public-mysql-pod: mysql-7b688cf578-l7pxs
     public-mysql-username: root
-    public-mysql-password: password
+    public-mysql-password: password
+  registry:
+    host: http://10.1.1.243:18082
+    username: admin
+    password: admin123

+ 25 - 3
src/main/java/nju/seec/SEECdemo/logic/service/impl/project/ProjectServiceImpl.java → src/main/java/nju/seec/SEECdemo/logic/service/impl/ProjectServiceImpl.java

@@ -1,11 +1,14 @@
-package nju.seec.SEECdemo.logic.service.impl.project;
+package nju.seec.SEECdemo.logic.service.impl;
 
 import nju.seec.SEECdemo.logic.api.k8s.NamespaceApi;
+import nju.seec.SEECdemo.logic.api.k8s.SecretApi;
 import nju.seec.SEECdemo.logic.api.k8s.exception.K8sApiException;
 import nju.seec.SEECdemo.logic.api.k8s.vo.Namespace;
+import nju.seec.SEECdemo.logic.service.DBService;
 import nju.seec.SEECdemo.logic.service.ProjectService;
 import nju.seec.SEECdemo.logic.vo.ProjectVO;
 import nju.seec.SEECdemo.logic.vo.projecttemplate.ProjectTemplate;
+import nju.seec.SEECdemo.util.ApplicationProperties;
 import nju.seec.SEECdemo.util.DateUtil;
 import nju.seec.SEECdemo.util.LoggerUtil;
 import org.slf4j.Logger;
@@ -27,21 +30,40 @@ public class ProjectServiceImpl implements ProjectService{
     @Autowired
     private ProjectTemplate seecIITemplate;
 
+    @Autowired
+    private SecretApi secretApi;
+
+    @Autowired
+    private DBService dbService;
+
+    @Autowired
+    private ApplicationProperties applicationProperties;
+
     @Override
     public ProjectVO createSeecIIProject(String projectName, String description, LocalDate startsAt, LocalDate endsAt) {
         try {
             if (namespaceApi.exists(projectName)){
-                System.out.println("该项目已经存在");
-                return null;
+                LoggerUtil.error(logger, "该项目已经存在,projectName={}", projectName);
+                //抛出异常
             }
 
             String type = seecIITemplate.getName();
             Namespace namespace = buildNamespace(projectName, type, description, startsAt, endsAt);
             namespaceApi.create(namespace);
 
+            //为命名空间配置私有仓库密钥
+            ApplicationProperties.Registry registry = applicationProperties.getRegistry();
+            secretApi.createPrivateRegistrySecret(projectName, registry.getHost(), registry.getUsername(), registry.getPassword());
 
+            ApplicationProperties.K8s k8s = applicationProperties
         } catch (K8sApiException e) {
+            LoggerUtil.error(logger, e, "创建项目失败,projectName={}, projectType={}", projectName, seecIITemplate.getName());
+
+            if (e.getCode() == K8sApiException.NAMESPACE_NOT_EXIST) {
 
+            }else {
+
+            }
         }
 
 

+ 14 - 0
src/main/java/nju/seec/SEECdemo/util/ApplicationProperties.java

@@ -34,6 +34,8 @@ public class ApplicationProperties {
 	private Storage storage = new Storage();
 	@Valid
 	private K8s k8s = new K8s();
+    @Valid
+    private Registry registry = new Registry();
 
 	@Data
 	public static class Gitlab {
@@ -108,4 +110,16 @@ public class ApplicationProperties {
 
 		private String publicMysqlPassword;
 	}
+
+	@Data
+    public static class Registry{
+	    @NotEmpty
+	    private String host;
+
+	    @NotEmpty
+	    private String username;
+
+	    @NotEmpty
+	    private String password;
+    }
 }

+ 5 - 1
src/main/resources/application-dev.yml

@@ -76,4 +76,8 @@ moocoder:
     public-mysql-url: jdbc:mysql://mysql.group24.svc.cluster.local:3306
     public-mysql-pod: mysql-7b688cf578-l7pxs
     public-mysql-username: root
-    public-mysql-password: password
+    public-mysql-password: password
+  registry:
+    host: http://10.1.1.243:18082
+    username: admin
+    password: admin123