|
@@ -1407,8 +1407,10 @@ public class TestClientRMService {
|
|
|
};
|
|
|
};
|
|
|
rm.start();
|
|
|
+ NodeLabel labelX = NodeLabel.newInstance("x", false);
|
|
|
+ NodeLabel labelY = NodeLabel.newInstance("y");
|
|
|
RMNodeLabelsManager labelsMgr = rm.getRMContext().getNodeLabelManager();
|
|
|
- labelsMgr.addToCluserNodeLabelsWithDefaultExclusivity(ImmutableSet.of("x", "y"));
|
|
|
+ labelsMgr.addToCluserNodeLabels(ImmutableSet.of(labelX, labelY));
|
|
|
|
|
|
NodeId node1 = NodeId.newInstance("host1", 1234);
|
|
|
NodeId node2 = NodeId.newInstance("host2", 1234);
|
|
@@ -1422,25 +1424,37 @@ public class TestClientRMService {
|
|
|
YarnRPC rpc = YarnRPC.create(conf);
|
|
|
InetSocketAddress rmAddress = rm.getClientRMService().getBindAddress();
|
|
|
LOG.info("Connecting to ResourceManager at " + rmAddress);
|
|
|
- ApplicationClientProtocol client =
|
|
|
- (ApplicationClientProtocol) rpc.getProxy(
|
|
|
- ApplicationClientProtocol.class, rmAddress, conf);
|
|
|
+ ApplicationClientProtocol client = (ApplicationClientProtocol) rpc
|
|
|
+ .getProxy(ApplicationClientProtocol.class, rmAddress, conf);
|
|
|
|
|
|
// Get node labels collection
|
|
|
- GetClusterNodeLabelsResponse response =
|
|
|
- client.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
|
|
+ GetClusterNodeLabelsResponse response = client
|
|
|
+ .getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
|
|
Assert.assertTrue(response.getNodeLabels().containsAll(
|
|
|
- Arrays.asList(NodeLabel.newInstance("x"), NodeLabel.newInstance("y"))));
|
|
|
+ Arrays.asList(labelX, labelY)));
|
|
|
|
|
|
// Get node labels mapping
|
|
|
- GetNodesToLabelsResponse response1 =
|
|
|
- client.getNodeToLabels(GetNodesToLabelsRequest.newInstance());
|
|
|
- Map<NodeId, Set<String>> nodeToLabels = response1.getNodeToLabels();
|
|
|
+ GetNodesToLabelsResponse response1 = client
|
|
|
+ .getNodeToLabels(GetNodesToLabelsRequest.newInstance());
|
|
|
+ Map<NodeId, Set<NodeLabel>> nodeToLabels = response1.getNodeToLabels();
|
|
|
Assert.assertTrue(nodeToLabels.keySet().containsAll(
|
|
|
Arrays.asList(node1, node2)));
|
|
|
- Assert.assertTrue(nodeToLabels.get(node1).containsAll(Arrays.asList("x")));
|
|
|
- Assert.assertTrue(nodeToLabels.get(node2).containsAll(Arrays.asList("y")));
|
|
|
-
|
|
|
+ Assert.assertTrue(nodeToLabels.get(node1)
|
|
|
+ .containsAll(Arrays.asList(labelX)));
|
|
|
+ Assert.assertTrue(nodeToLabels.get(node2)
|
|
|
+ .containsAll(Arrays.asList(labelY)));
|
|
|
+ // Verify whether labelX's exclusivity is false
|
|
|
+ for (NodeLabel x : nodeToLabels.get(node1)) {
|
|
|
+ Assert.assertFalse(x.isExclusive());
|
|
|
+ }
|
|
|
+ // Verify whether labelY's exclusivity is true
|
|
|
+ for (NodeLabel y : nodeToLabels.get(node2)) {
|
|
|
+ Assert.assertTrue(y.isExclusive());
|
|
|
+ }
|
|
|
+ // Below label "x" is not present in the response as exclusivity is true
|
|
|
+ Assert.assertFalse(nodeToLabels.get(node1).containsAll(
|
|
|
+ Arrays.asList(NodeLabel.newInstance("x"))));
|
|
|
+
|
|
|
rpc.stopProxy(client, conf);
|
|
|
rm.close();
|
|
|
}
|
|
@@ -1456,8 +1470,12 @@ public class TestClientRMService {
|
|
|
};
|
|
|
};
|
|
|
rm.start();
|
|
|
+
|
|
|
+ NodeLabel labelX = NodeLabel.newInstance("x", false);
|
|
|
+ NodeLabel labelY = NodeLabel.newInstance("y", false);
|
|
|
+ NodeLabel labelZ = NodeLabel.newInstance("z", false);
|
|
|
RMNodeLabelsManager labelsMgr = rm.getRMContext().getNodeLabelManager();
|
|
|
- labelsMgr.addToCluserNodeLabelsWithDefaultExclusivity(ImmutableSet.of("x", "y", "z"));
|
|
|
+ labelsMgr.addToCluserNodeLabels(ImmutableSet.of(labelX, labelY, labelZ));
|
|
|
|
|
|
NodeId node1A = NodeId.newInstance("host1", 1234);
|
|
|
NodeId node1B = NodeId.newInstance("host1", 5678);
|
|
@@ -1477,43 +1495,49 @@ public class TestClientRMService {
|
|
|
YarnRPC rpc = YarnRPC.create(conf);
|
|
|
InetSocketAddress rmAddress = rm.getClientRMService().getBindAddress();
|
|
|
LOG.info("Connecting to ResourceManager at " + rmAddress);
|
|
|
- ApplicationClientProtocol client =
|
|
|
- (ApplicationClientProtocol) rpc.getProxy(
|
|
|
- ApplicationClientProtocol.class, rmAddress, conf);
|
|
|
+ ApplicationClientProtocol client = (ApplicationClientProtocol) rpc
|
|
|
+ .getProxy(ApplicationClientProtocol.class, rmAddress, conf);
|
|
|
|
|
|
// Get node labels collection
|
|
|
- GetClusterNodeLabelsResponse response =
|
|
|
- client.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
|
|
+ GetClusterNodeLabelsResponse response = client
|
|
|
+ .getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
|
|
Assert.assertTrue(response.getNodeLabels().containsAll(
|
|
|
- Arrays.asList(NodeLabel.newInstance("x"), NodeLabel.newInstance("y"),
|
|
|
- NodeLabel.newInstance("z"))));
|
|
|
+ Arrays.asList(labelX, labelY, labelZ)));
|
|
|
|
|
|
// Get labels to nodes mapping
|
|
|
- GetLabelsToNodesResponse response1 =
|
|
|
- client.getLabelsToNodes(GetLabelsToNodesRequest.newInstance());
|
|
|
- Map<String, Set<NodeId>> labelsToNodes = response1.getLabelsToNodes();
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.keySet().containsAll(Arrays.asList("x", "y", "z")));
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.get("x").containsAll(Arrays.asList(node1A)));
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.get("y").containsAll(Arrays.asList(node2A, node3A)));
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.get("z").containsAll(Arrays.asList(node1B, node3B)));
|
|
|
+ GetLabelsToNodesResponse response1 = client
|
|
|
+ .getLabelsToNodes(GetLabelsToNodesRequest.newInstance());
|
|
|
+ Map<NodeLabel, Set<NodeId>> labelsToNodes = response1.getLabelsToNodes();
|
|
|
+ // Verify whether all NodeLabel's exclusivity are false
|
|
|
+ for (Map.Entry<NodeLabel, Set<NodeId>> nltn : labelsToNodes.entrySet()) {
|
|
|
+ Assert.assertFalse(nltn.getKey().isExclusive());
|
|
|
+ }
|
|
|
+ Assert.assertTrue(labelsToNodes.keySet().containsAll(
|
|
|
+ Arrays.asList(labelX, labelY, labelZ)));
|
|
|
+ Assert.assertTrue(labelsToNodes.get(labelX).containsAll(
|
|
|
+ Arrays.asList(node1A)));
|
|
|
+ Assert.assertTrue(labelsToNodes.get(labelY).containsAll(
|
|
|
+ Arrays.asList(node2A, node3A)));
|
|
|
+ Assert.assertTrue(labelsToNodes.get(labelZ).containsAll(
|
|
|
+ Arrays.asList(node1B, node3B)));
|
|
|
|
|
|
// Get labels to nodes mapping for specific labels
|
|
|
- Set<String> setlabels =
|
|
|
- new HashSet<String>(Arrays.asList(new String[]{"x", "z"}));
|
|
|
- GetLabelsToNodesResponse response2 =
|
|
|
- client.getLabelsToNodes(GetLabelsToNodesRequest.newInstance(setlabels));
|
|
|
+ Set<String> setlabels = new HashSet<String>(Arrays.asList(new String[]{"x",
|
|
|
+ "z"}));
|
|
|
+ GetLabelsToNodesResponse response2 = client
|
|
|
+ .getLabelsToNodes(GetLabelsToNodesRequest.newInstance(setlabels));
|
|
|
labelsToNodes = response2.getLabelsToNodes();
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.keySet().containsAll(Arrays.asList("x", "z")));
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.get("x").containsAll(Arrays.asList(node1A)));
|
|
|
- Assert.assertTrue(
|
|
|
- labelsToNodes.get("z").containsAll(Arrays.asList(node1B, node3B)));
|
|
|
- Assert.assertEquals(labelsToNodes.get("y"), null);
|
|
|
+ // Verify whether all NodeLabel's exclusivity are false
|
|
|
+ for (Map.Entry<NodeLabel, Set<NodeId>> nltn : labelsToNodes.entrySet()) {
|
|
|
+ Assert.assertFalse(nltn.getKey().isExclusive());
|
|
|
+ }
|
|
|
+ Assert.assertTrue(labelsToNodes.keySet().containsAll(
|
|
|
+ Arrays.asList(labelX, labelZ)));
|
|
|
+ Assert.assertTrue(labelsToNodes.get(labelX).containsAll(
|
|
|
+ Arrays.asList(node1A)));
|
|
|
+ Assert.assertTrue(labelsToNodes.get(labelZ).containsAll(
|
|
|
+ Arrays.asList(node1B, node3B)));
|
|
|
+ Assert.assertEquals(labelsToNodes.get(labelY), null);
|
|
|
|
|
|
rpc.stopProxy(client, conf);
|
|
|
rm.close();
|