This is an automated email from the ASF dual-hosted git repository.

min pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-ops.git


The following commit(s) were added to refs/heads/develop by this push:
     new d7f0551  add application scope validation
d7f0551 is described below

commit d7f055154ceda446a25fa77e5885e16a2fe85057
Author: nzomkxia <[email protected]>
AuthorDate: Thu Jan 10 16:30:01 2019 +0800

    add application scope validation
---
 .../dubbo/admin/controller/AccessesController.java    | 10 +++++++++-
 .../dubbo/admin/controller/LoadBalanceController.java | 19 +++++++++----------
 .../dubbo/admin/controller/WeightController.java      | 10 +++++++++-
 3 files changed, 27 insertions(+), 12 deletions(-)

diff --git 
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
 
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
index c5e2351..ac350c5 100644
--- 
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
+++ 
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
@@ -16,8 +16,10 @@
  */
 package org.apache.dubbo.admin.controller;
 
+import org.apache.dubbo.admin.common.exception.VersionValidationException;
 import org.apache.dubbo.admin.common.util.Constants;
 import org.apache.dubbo.admin.model.dto.ConditionRouteDTO;
+import org.apache.dubbo.admin.service.ProviderService;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.commons.lang3.StringUtils;
@@ -38,10 +40,12 @@ public class AccessesController {
     private static final Logger logger = 
LoggerFactory.getLogger(AccessesController.class);
 
     private final RouteService routeService;
+    private final ProviderService providerService;
 
     @Autowired
-    public AccessesController(RouteService routeService) {
+    public AccessesController(RouteService routeService, ProviderService 
providerService) {
         this.routeService = routeService;
+        this.providerService = providerService;
     }
 
     @RequestMapping(method = RequestMethod.GET)
@@ -84,6 +88,10 @@ public class AccessesController {
         if (StringUtils.isBlank(accessDTO.getService()) && 
StringUtils.isBlank(accessDTO.getApplication())) {
             throw new ParamValidationException("Either Service or application 
is required.");
         }
+        String application = accessDTO.getApplication();
+        if (StringUtils.isNotEmpty(application) && 
this.providerService.findVersionInApplication(application).equals("2.6")) {
+            throw new VersionValidationException("dubbo 2.6 does not support 
application scope blackwhite list config");
+        }
         if (accessDTO.getBlacklist() == null && accessDTO.getWhitelist() == 
null) {
             throw new ParamValidationException("One of Blacklist/Whitelist is 
required.");
         }
diff --git 
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
 
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
index 816e6b9..a803527 100644
--- 
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
+++ 
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
@@ -20,9 +20,11 @@ package org.apache.dubbo.admin.controller;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.admin.common.exception.ParamValidationException;
 import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
+import org.apache.dubbo.admin.common.exception.VersionValidationException;
 import org.apache.dubbo.admin.common.util.Constants;
 import org.apache.dubbo.admin.model.dto.BalancingDTO;
 import org.apache.dubbo.admin.service.OverrideService;
+import org.apache.dubbo.admin.service.ProviderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
@@ -36,10 +38,12 @@ import java.util.List;
 public class LoadBalanceController {
 
     private final OverrideService overrideService;
+    private final ProviderService providerService;
 
     @Autowired
-    public LoadBalanceController(OverrideService overrideService) {
+    public LoadBalanceController(OverrideService overrideService, 
ProviderService providerService) {
         this.overrideService = overrideService;
+        this.providerService = providerService;
     }
 
     @RequestMapping(method = RequestMethod.POST)
@@ -48,16 +52,11 @@ public class LoadBalanceController {
         if (StringUtils.isBlank(balancingDTO.getService()) && 
StringUtils.isBlank(balancingDTO.getApplication())) {
             throw new ParamValidationException("Either Service or application 
is required.");
         }
+        String application = balancingDTO.getApplication();
+        if (StringUtils.isNotEmpty(application) && 
this.providerService.findVersionInApplication(application).equals("2.6")) {
+            throw new VersionValidationException("dubbo 2.6 does not support 
application scope load balancing config");
+        }
         overrideService.saveBalance(balancingDTO);
-//        String serviceName = balancingDTO.getService();
-//        if (StringUtils.isEmpty(serviceName)) {
-//            throw new ParamValidationException("serviceName is Empty!");
-//        }
-//        LoadBalance loadBalance = new LoadBalance();
-//        loadBalance.setService(serviceName);
-//        
loadBalance.setMethod(formatMethodName(balancingDTO.getMethodName()));
-//        loadBalance.setStrategy(balancingDTO.getStrategy());
-//        
overrideService.saveOverride(OverrideUtils.loadBalanceToOverride(loadBalance));
         return true;
     }
 
diff --git 
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
 
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
index 62c4ce4..2146a01 100644
--- 
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
+++ 
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
@@ -20,6 +20,7 @@ package org.apache.dubbo.admin.controller;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.admin.common.exception.ParamValidationException;
 import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
+import org.apache.dubbo.admin.common.exception.VersionValidationException;
 import org.apache.dubbo.admin.common.util.Constants;
 import org.apache.dubbo.admin.common.util.ConvertUtil;
 import org.apache.dubbo.admin.model.dto.AccessDTO;
@@ -28,6 +29,7 @@ import org.apache.dubbo.admin.service.OverrideService;
 import org.apache.dubbo.admin.model.domain.Override;
 import org.apache.dubbo.admin.model.domain.Weight;
 import org.apache.dubbo.admin.common.util.OverrideUtils;
+import org.apache.dubbo.admin.service.ProviderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
@@ -40,10 +42,12 @@ import java.util.List;
 public class WeightController {
 
     private final OverrideService overrideService;
+    private final ProviderService providerService;
 
     @Autowired
-    public WeightController(OverrideService overrideService) {
+    public WeightController(OverrideService overrideService, ProviderService 
providerService) {
         this.overrideService = overrideService;
+        this.providerService = providerService;
     }
 
     @RequestMapping(method = RequestMethod.POST)
@@ -52,6 +56,10 @@ public class WeightController {
         if (StringUtils.isBlank(weightDTO.getService()) && 
StringUtils.isBlank(weightDTO.getApplication())) {
             throw new ParamValidationException("Either Service or application 
is required.");
         }
+        String application = weightDTO.getApplication();
+        if (StringUtils.isNotEmpty(application) && 
this.providerService.findVersionInApplication(application).equals("2.6")) {
+            throw new VersionValidationException("dubbo 2.6 does not support 
application scope blackwhite list config");
+        }
         overrideService.saveWeight(weightDTO);
         return true;
     }

Reply via email to