|
@@ -60,6 +60,7 @@ import org.apache.hadoop.yarn.api.records.ResourceRequest;
|
|
import org.apache.hadoop.yarn.api.records.impl.pb.ResourceRequestPBImpl;
|
|
import org.apache.hadoop.yarn.api.records.impl.pb.ResourceRequestPBImpl;
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
import org.apache.hadoop.yarn.event.EventHandler;
|
|
import org.apache.hadoop.yarn.event.EventHandler;
|
|
|
|
+import org.apache.hadoop.yarn.exceptions.InvalidLabelResourceRequestException;
|
|
import org.apache.hadoop.yarn.exceptions.InvalidResourceBlacklistRequestException;
|
|
import org.apache.hadoop.yarn.exceptions.InvalidResourceBlacklistRequestException;
|
|
import org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException;
|
|
import org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException;
|
|
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
|
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
|
@@ -191,7 +192,7 @@ public class TestSchedulerUtils {
|
|
assertEquals(2048, ask.getCapability().getMemory());
|
|
assertEquals(2048, ask.getCapability().getMemory());
|
|
}
|
|
}
|
|
|
|
|
|
- @Test (timeout = 30000)
|
|
|
|
|
|
+ @Test(timeout = 30000)
|
|
public void testValidateResourceRequestWithErrorLabelsPermission()
|
|
public void testValidateResourceRequestWithErrorLabelsPermission()
|
|
throws IOException {
|
|
throws IOException {
|
|
// mock queue and scheduler
|
|
// mock queue and scheduler
|
|
@@ -336,7 +337,7 @@ public class TestSchedulerUtils {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
fail("Should be valid when request labels is empty");
|
|
fail("Should be valid when request labels is empty");
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ boolean invalidlabelexception=false;
|
|
// queue doesn't have label, failed (when request any label)
|
|
// queue doesn't have label, failed (when request any label)
|
|
try {
|
|
try {
|
|
// set queue accessible node labels to empty
|
|
// set queue accessible node labels to empty
|
|
@@ -354,12 +355,15 @@ public class TestSchedulerUtils {
|
|
SchedulerUtils.normalizeAndvalidateRequest(resReq, maxResource, "queue",
|
|
SchedulerUtils.normalizeAndvalidateRequest(resReq, maxResource, "queue",
|
|
scheduler, rmContext);
|
|
scheduler, rmContext);
|
|
fail("Should fail");
|
|
fail("Should fail");
|
|
|
|
+ } catch (InvalidLabelResourceRequestException e) {
|
|
|
|
+ invalidlabelexception=true;
|
|
} catch (InvalidResourceRequestException e) {
|
|
} catch (InvalidResourceRequestException e) {
|
|
} finally {
|
|
} finally {
|
|
rmContext.getNodeLabelManager().removeFromClusterNodeLabels(
|
|
rmContext.getNodeLabelManager().removeFromClusterNodeLabels(
|
|
Arrays.asList("x"));
|
|
Arrays.asList("x"));
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ Assert.assertTrue("InvalidLabelResourceRequestException excpeted",
|
|
|
|
+ invalidlabelexception);
|
|
// queue is "*", always succeeded
|
|
// queue is "*", always succeeded
|
|
try {
|
|
try {
|
|
// set queue accessible node labels to empty
|
|
// set queue accessible node labels to empty
|