YARN-8107. Give an informative message when incorrect format is used in ATSv2 filter attributes. (Rohith Sharma K S via Haibo Chen)
This commit is contained in:
parent
b17dc9f5f5
commit
024d7c0870
|
@ -282,7 +282,12 @@ abstract class TimelineParserForCompareExpr implements TimelineParser {
|
|||
parseValue(expr.substring(kvStartOffset, offset)));
|
||||
}
|
||||
if (filterList == null || filterList.getFilterList().isEmpty()) {
|
||||
filterList = new TimelineFilterList(currentFilter);
|
||||
if (currentFilter == null) {
|
||||
throw new TimelineParseException(
|
||||
"Invalid expression provided for " + exprName);
|
||||
} else {
|
||||
filterList = new TimelineFilterList(currentFilter);
|
||||
}
|
||||
} else if (currentFilter != null) {
|
||||
filterList.addFilter(currentFilter);
|
||||
}
|
||||
|
|
|
@ -325,7 +325,12 @@ abstract class TimelineParserForEqualityExpr implements TimelineParser {
|
|||
}
|
||||
}
|
||||
if (filterList == null || filterList.getFilterList().isEmpty()) {
|
||||
filterList = new TimelineFilterList(currentFilter);
|
||||
if (currentFilter == null) {
|
||||
throw new TimelineParseException(
|
||||
"Invalid expression provided for " + exprName);
|
||||
} else {
|
||||
filterList = new TimelineFilterList(currentFilter);
|
||||
}
|
||||
} else if (currentFilter != null) {
|
||||
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.TimelineKeyValuesFilter;
|
||||
import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelinePrefixFilter;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
|
@ -520,6 +521,30 @@ public class TestTimelineReaderWebServicesUtils {
|
|||
);
|
||||
verifyFilterList(expr, TimelineReaderWebServicesUtils.
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue