Repository: eagle Updated Branches: refs/heads/master 0622ae1f4 -> 3523480c4
[EAGLE-851] Add validation for policy name - Add checkPolicyName method to check the length of policy name. https://issues.apache.org/jira/browse/EAGLE-851 Author: r7raul1984 <tangji...@yhd.com> Closes #765 from r7raul1984/EAGLE-851. Project: http://git-wip-us.apache.org/repos/asf/eagle/repo Commit: http://git-wip-us.apache.org/repos/asf/eagle/commit/3523480c Tree: http://git-wip-us.apache.org/repos/asf/eagle/tree/3523480c Diff: http://git-wip-us.apache.org/repos/asf/eagle/diff/3523480c Branch: refs/heads/master Commit: 3523480c458b475763bf27c21c9f65929abeb478 Parents: 0622ae1 Author: r7raul1984 <tangji...@yhd.com> Authored: Fri Jan 13 17:04:54 2017 +0800 Committer: Hao Chen <h...@apache.org> Committed: Fri Jan 13 17:04:54 2017 +0800 ---------------------------------------------------------------------- .../eagle-alert/alert-common/pom.xml | 5 +++++ .../engine/coordinator/PolicyDefinition.java | 8 +++++--- .../metadata/resource/MetadataResource.java | 3 ++- .../app/apps/hadoop_metric/ctrls/overview.js | 1 - .../apps/hadoop_metric/ctrls/regionListCtrl.js | 18 ------------------ .../partials/alert/policyEdit/advancedMode.html | 7 +++++-- .../app/dev/public/js/ctrls/alertEditCtrl.js | 18 +++++++++++++++++- 7 files changed, 34 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-core/eagle-alert-parent/eagle-alert/alert-common/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert/alert-common/pom.xml b/eagle-core/eagle-alert-parent/eagle-alert/alert-common/pom.xml index f5218b7..089955f 100644 --- a/eagle-core/eagle-alert-parent/eagle-alert/alert-common/pom.xml +++ b/eagle-core/eagle-alert-parent/eagle-alert/alert-common/pom.xml @@ -102,6 +102,11 @@ <artifactId>joda-time</artifactId> </dependency> <dependency> + <groupId>io.dropwizard</groupId> + <artifactId>dropwizard-validation</artifactId> + <version>${dropwizard.version}</version> + </dependency> + <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-core</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java b/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java index 02072ad..7398dd5 100644 --- a/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java +++ b/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java @@ -20,6 +20,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.ListUtils; import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.hibernate.validator.constraints.Length; import java.io.Serializable; import java.util.*; @@ -31,6 +32,7 @@ import java.util.*; public class PolicyDefinition implements Serializable { private static final long serialVersionUID = 377581499339572414L; // unique identifier + @Length(min = 1, max = 50, message = "length should between 1 and 50") private String name; private String description; private List<String> inputStreams = new ArrayList<String>(); @@ -226,9 +228,9 @@ public class PolicyDefinition implements Serializable { } Definition another = (Definition) that; if (another.type.equals(this.type) - && another.value.equals(this.value) - && ListUtils.isEqualList(another.inputStreams, this.inputStreams) - && ListUtils.isEqualList(another.outputStreams, this.outputStreams)) { + && another.value.equals(this.value) + && ListUtils.isEqualList(another.inputStreams, this.inputStreams) + && ListUtils.isEqualList(another.outputStreams, this.outputStreams)) { return true; } return false; http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata-service/src/main/java/org/apache/eagle/service/metadata/resource/MetadataResource.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata-service/src/main/java/org/apache/eagle/service/metadata/resource/MetadataResource.java b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata-service/src/main/java/org/apache/eagle/service/metadata/resource/MetadataResource.java index 7bfd2c3..617b4f0 100644 --- a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata-service/src/main/java/org/apache/eagle/service/metadata/resource/MetadataResource.java +++ b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata-service/src/main/java/org/apache/eagle/service/metadata/resource/MetadataResource.java @@ -36,6 +36,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.*; +import javax.validation.Valid; import javax.ws.rs.*; /** @@ -206,7 +207,7 @@ public class MetadataResource { @Path("/policies") @POST - public OpResult addPolicy(PolicyDefinition policy) { + public OpResult addPolicy(@Valid PolicyDefinition policy) { PolicyValidationResult validationResult = this.validatePolicy(policy); if (validationResult.isSuccess()) { return dao.addPolicy(policy); http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/overview.js ---------------------------------------------------------------------- diff --git a/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/overview.js b/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/overview.js index e10a0ce..2c30cb0 100644 --- a/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/overview.js +++ b/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/overview.js @@ -171,4 +171,3 @@ }); }); })(); -//# sourceURL=overview.js http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/regionListCtrl.js ---------------------------------------------------------------------- diff --git a/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/regionListCtrl.js b/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/regionListCtrl.js index bc7abd9..1477e32 100644 --- a/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/regionListCtrl.js +++ b/eagle-hadoop-metric/src/main/webapp/app/apps/hadoop_metric/ctrls/regionListCtrl.js @@ -16,24 +16,6 @@ * limitations under the License. */ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - (function () { /** * `register` without params will load the module which using require http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-server/src/main/webapp/app/dev/partials/alert/policyEdit/advancedMode.html ---------------------------------------------------------------------- diff --git a/eagle-server/src/main/webapp/app/dev/partials/alert/policyEdit/advancedMode.html b/eagle-server/src/main/webapp/app/dev/partials/alert/policyEdit/advancedMode.html index 16e210d..995a8a5 100644 --- a/eagle-server/src/main/webapp/app/dev/partials/alert/policyEdit/advancedMode.html +++ b/eagle-server/src/main/webapp/app/dev/partials/alert/policyEdit/advancedMode.html @@ -102,8 +102,11 @@ <div class="row"> <div class="col-md-12"> - <div class="form-group"> - <label>Name *</label> + <div class="form-group" ng-class="{'has-error': checkPolicyName()}"> + <label> + Name * + <small ng-if="checkPolicyName()">({{checkPolicyName()}})</small> + </label> <input type="text" class="form-control" ng-model="policy.name" ng-readonly="!newPolicy" ng-disabled="policyLock" /> </div> </div> http://git-wip-us.apache.org/repos/asf/eagle/blob/3523480c/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js ---------------------------------------------------------------------- diff --git a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js index 7c8e0b7..f079e76 100644 --- a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js +++ b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js @@ -304,6 +304,15 @@ return false; }; + + $scope.checkPolicyName = function () { + if($scope.policy.name.length > 50) { + return "length should less than 50"; + } + return false; + }; + + $scope.addPublisherConfirm = function () { if($scope.addPublisherType === "exist") { $scope.publisher = $.extend({ @@ -325,6 +334,7 @@ return ( !$scope.saveLock && $scope.policy.name && + !$scope.checkPolicyName() && common.number.parse($scope.policy.parallelismHint) > 0 && $scope.policy.definition.value && $scope.policy.outputStreams.length && @@ -383,9 +393,15 @@ $scope.policyLock = false; }); }, function (res) { + var errormsg = ""; + if(typeof res.data.message !== 'undefined') { + errormsg = res.data.message; + } else { + errormsg = res.data.errors; + } $.dialog({ title: "OPS", - content: "Create policy failed: " + res.data.message + content: "Create policy failed: " + errormsg }); $scope.policyLock = false; });