YARN-8107. Give an informative message when incorrect format is used in ATSv2 filter attributes. (Rohith Sharma K S via Haibo Chen)
(cherry picked from commit 024d7c0870
)
This commit is contained in:
parent
58a5ee378a
commit
b232dcab33
|
@ -282,7 +282,12 @@ abstract class TimelineParserForCompareExpr implements TimelineParser {
|
||||||
parseValue(expr.substring(kvStartOffset, offset)));
|
parseValue(expr.substring(kvStartOffset, offset)));
|
||||||
}
|
}
|
||||||
if (filterList == null || filterList.getFilterList().isEmpty()) {
|
if (filterList == null || filterList.getFilterList().isEmpty()) {
|
||||||
|
if (currentFilter == null) {
|
||||||
|
throw new TimelineParseException(
|
||||||
|
"Invalid expression provided for " + exprName);
|
||||||
|
} else {
|
||||||
filterList = new TimelineFilterList(currentFilter);
|
filterList = new TimelineFilterList(currentFilter);
|
||||||
|
}
|
||||||
} else if (currentFilter != null) {
|
} else if (currentFilter != null) {
|
||||||
filterList.addFilter(currentFilter);
|
filterList.addFilter(currentFilter);
|
||||||
}
|
}
|
||||||
|
|
|
@ -325,7 +325,12 @@ abstract class TimelineParserForEqualityExpr implements TimelineParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (filterList == null || filterList.getFilterList().isEmpty()) {
|
if (filterList == null || filterList.getFilterList().isEmpty()) {
|
||||||
|
if (currentFilter == null) {
|
||||||
|
throw new TimelineParseException(
|
||||||
|
"Invalid expression provided for " + exprName);
|
||||||
|
} else {
|
||||||
filterList = new TimelineFilterList(currentFilter);
|
filterList = new TimelineFilterList(currentFilter);
|
||||||
|
}
|
||||||
} else if (currentFilter != null) {
|
} else if (currentFilter != null) {
|
||||||
filterList.addFilter(currentFilter);
|
filterList.addFilter(currentFilter);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineFilte
|
||||||
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineKeyValueFilter;
|
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineKeyValueFilter;
|
||||||
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineKeyValuesFilter;
|
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineKeyValuesFilter;
|
||||||
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelinePrefixFilter;
|
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelinePrefixFilter;
|
||||||
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
@ -520,6 +521,30 @@ public class TestTimelineReaderWebServicesUtils {
|
||||||
);
|
);
|
||||||
verifyFilterList(expr, TimelineReaderWebServicesUtils.
|
verifyFilterList(expr, TimelineReaderWebServicesUtils.
|
||||||
parseKVFilters(expr, false), expectedList);
|
parseKVFilters(expr, false), expectedList);
|
||||||
|
|
||||||
|
expr = "abdeq";
|
||||||
|
try {
|
||||||
|
TimelineReaderWebServicesUtils.parseKVFilters(expr, false);
|
||||||
|
Assert.fail("Expression valuation should throw exception.");
|
||||||
|
} catch (TimelineParseException e) {
|
||||||
|
// expected: do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
expr = "abc gt 234 AND defeq";
|
||||||
|
try {
|
||||||
|
TimelineReaderWebServicesUtils.parseKVFilters(expr, false);
|
||||||
|
Assert.fail("Expression valuation should throw exception.");
|
||||||
|
} catch (TimelineParseException e) {
|
||||||
|
// expected: do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
expr = "((key11 ne 234 AND key12 eq val12) AND (key13eq OR key14 eq va14))";
|
||||||
|
try {
|
||||||
|
TimelineReaderWebServicesUtils.parseKVFilters(expr, false);
|
||||||
|
Assert.fail("Expression valuation should throw exception.");
|
||||||
|
} catch (TimelineParseException e) {
|
||||||
|
// expected: do nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue