Repository: hadoop Updated Branches: refs/heads/YARN-3409 acd7729af -> 7ad66e806
YARN-8574. Allow dot in attribute values. Contributed by Bibin A Chundatt. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7ad66e80 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7ad66e80 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7ad66e80 Branch: refs/heads/YARN-3409 Commit: 7ad66e8065fc941136c47a5118d3d5c835a17ef5 Parents: acd7729 Author: Naganarasimha <naganarasimha...@apache.org> Authored: Sun Jul 29 13:52:52 2018 +0800 Committer: Naganarasimha <naganarasimha...@apache.org> Committed: Sun Jul 29 13:54:08 2018 +0800 ---------------------------------------------------------------------- .../hadoop/yarn/nodelabels/NodeLabelUtil.java | 4 +- .../yarn/nodelabels/TestNodeLabelUtil.java | 47 ++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7ad66e80/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/nodelabels/NodeLabelUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/nodelabels/NodeLabelUtil.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/nodelabels/NodeLabelUtil.java index 0dd0755..395ff81 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/nodelabels/NodeLabelUtil.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/nodelabels/NodeLabelUtil.java @@ -38,6 +38,8 @@ public final class NodeLabelUtil { Pattern.compile("^[0-9a-zA-Z][0-9a-zA-Z-_]*"); private static final Pattern PREFIX_PATTERN = Pattern.compile("^[0-9a-zA-Z][0-9a-zA-Z-_\\.]*"); + private static final Pattern ATTRIBUTE_VALUE_PATTERN = + Pattern.compile("^[0-9a-zA-Z][0-9a-zA-Z-_.]*"); public static void checkAndThrowLabelName(String label) throws IOException { if (label == null || label.isEmpty() || label.length() > MAX_LABEL_LENGTH) { @@ -69,7 +71,7 @@ public final class NodeLabelUtil { return; } - boolean match = LABEL_OR_VALUE_PATTERN.matcher(value).matches(); + boolean match = ATTRIBUTE_VALUE_PATTERN.matcher(value).matches(); if (!match) { throw new IOException("attribute value should only contains " http://git-wip-us.apache.org/repos/asf/hadoop/blob/7ad66e80/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/nodelabels/TestNodeLabelUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/nodelabels/TestNodeLabelUtil.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/nodelabels/TestNodeLabelUtil.java new file mode 100644 index 0000000..d43da4f --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/nodelabels/TestNodeLabelUtil.java @@ -0,0 +1,47 @@ +/** + * 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. + */ +package org.apache.hadoop.yarn.nodelabels; + +import static org.junit.Assert.fail; +import org.junit.Test; + +public class TestNodeLabelUtil { + + @Test + public void testAttributeValueAddition() { + String[] values = + new String[] {"1_8", "1.8", "ABZ", "ABZ", "az", "a-z","a_z", "123456789"}; + for (String val : values) { + try { + NodeLabelUtil.checkAndThrowAttributeValue(val); + } catch (Exception e) { + fail("Valid values for NodeAttributeValue :" + val); + } + } + + String[] invalidVals = new String[] {"_18","1,8","1/5",".15","1\\5"}; + for (String val : invalidVals) { + try { + NodeLabelUtil.checkAndThrowAttributeValue(val); + fail("Valid values for NodeAttributeValue :" + val); + } catch (Exception e) { + // IGNORE + } + } + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org