@GET @Path(RMWSConsts.NODES_NODEID_GETLABELS) @Produces({ MediaType.APPLICATION_JSON + "; " + JettyUtils.UTF_8, MediaType.APPLICATION_XML + "; " + JettyUtils.UTF_8 }) @Override public NodeLabelsInfo getLabelsOnNode(@Context HttpServletRequest hsr, @PathParam(RMWSConsts.NODEID) String nodeId) throws IOException { initForReadableEndpoints(); NodeId nid = ConverterUtils.toNodeIdWithDefaultPort(nodeId); List<NodeLabel> labels = new ArrayList<NodeLabel>( rm.getRMContext().getNodeLabelManager().getLabelsInfoByNode(nid)); return new NodeLabelsInfo(labels); }
@GET @Path("/get-node-labels") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeLabelsInfo getClusterNodeLabels(@Context HttpServletRequest hsr) throws IOException { init(); NodeLabelsInfo ret = new NodeLabelsInfo(rm.getRMContext().getNodeLabelManager() .getClusterNodeLabels()); return ret; }
@GET @Path("/get-node-labels") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeLabelsInfo getClusterNodeLabels(@Context HttpServletRequest hsr) throws IOException { init(); NodeLabelsInfo ret = new NodeLabelsInfo(rm.getRMContext().getNodeLabelManager() .getClusterNodeLabels()); return ret; }
@GET @Path("/nodes/{nodeId}/get-labels") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeLabelsInfo getLabelsOnNode(@Context HttpServletRequest hsr, @PathParam("nodeId") String nodeId) throws IOException { init(); NodeId nid = ConverterUtils.toNodeIdWithDefaultPort(nodeId); return new NodeLabelsInfo( rm.getRMContext().getNodeLabelManager().getLabelsOnNode(nid)); }
@GET @Path(RMWSConsts.GET_NODE_LABELS) @Produces({ MediaType.APPLICATION_JSON + "; " + JettyUtils.UTF_8, MediaType.APPLICATION_XML + "; " + JettyUtils.UTF_8 }) @Override public NodeLabelsInfo getClusterNodeLabels(@Context HttpServletRequest hsr) throws IOException { initForReadableEndpoints(); List<NodeLabel> nodeLabels = rm.getRMContext().getNodeLabelManager().getClusterNodeLabels(); NodeLabelsInfo ret = new NodeLabelsInfo(nodeLabels); return ret; }
@GET @Path("/nodes/{nodeId}/get-labels") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeLabelsInfo getLabelsOnNode(@Context HttpServletRequest hsr, @PathParam("nodeId") String nodeId) throws IOException { init(); NodeId nid = ConverterUtils.toNodeIdWithDefaultPort(nodeId); return new NodeLabelsInfo( rm.getRMContext().getNodeLabelManager().getLabelsOnNode(nid)); }
@GET @Path("/get-node-to-labels") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeToLabelsInfo getNodeToLabels(@Context HttpServletRequest hsr) throws IOException { init(); NodeToLabelsInfo ntl = new NodeToLabelsInfo(); HashMap<String, NodeLabelsInfo> ntlMap = ntl.getNodeToLabels(); Map<NodeId, Set<String>> nodeIdToLabels = rm.getRMContext().getNodeLabelManager().getNodeLabels(); for (Map.Entry<NodeId, Set<String>> nitle : nodeIdToLabels.entrySet()) { ntlMap.put(nitle.getKey().toString(), new NodeLabelsInfo(nitle.getValue())); } return ntl; }
@GET @Path("/get-node-to-labels") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeToLabelsInfo getNodeToLabels(@Context HttpServletRequest hsr) throws IOException { init(); NodeToLabelsInfo ntl = new NodeToLabelsInfo(); HashMap<String, NodeLabelsInfo> ntlMap = ntl.getNodeToLabels(); Map<NodeId, Set<String>> nodeIdToLabels = rm.getRMContext().getNodeLabelManager().getNodeLabels(); for (Map.Entry<NodeId, Set<String>> nitle : nodeIdToLabels.entrySet()) { ntlMap.put(nitle.getKey().toString(), new NodeLabelsInfo(nitle.getValue())); } return ntl; }
@GET @Path(RMWSConsts.GET_NODE_TO_LABELS) @Produces({ MediaType.APPLICATION_JSON + "; " + JettyUtils.UTF_8, MediaType.APPLICATION_XML + "; " + JettyUtils.UTF_8 }) @Override public NodeToLabelsInfo getNodeToLabels(@Context HttpServletRequest hsr) throws IOException { initForReadableEndpoints(); NodeToLabelsInfo ntl = new NodeToLabelsInfo(); HashMap<String, NodeLabelsInfo> ntlMap = ntl.getNodeToLabels(); Map<NodeId, Set<NodeLabel>> nodeIdToLabels = rm.getRMContext().getNodeLabelManager().getNodeLabelsInfo(); for (Map.Entry<NodeId, Set<NodeLabel>> nitle : nodeIdToLabels.entrySet()) { List<NodeLabel> labels = new ArrayList<NodeLabel>(nitle.getValue()); ntlMap.put(nitle.getKey().toString(), new NodeLabelsInfo(labels)); } return ntl; }
@Test public void testLabelInvalidAddition() throws UniformInterfaceException, Exception { WebResource r = resource(); ClientResponse response; // Add a invalid label NodeLabelsInfo nlsifo = new NodeLabelsInfo(); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("a&")); response = r.path("ws").path("v1").path("cluster").path("add-node-labels") .queryParam("user.name", userName).accept(MediaType.APPLICATION_JSON) .entity(toJson(nlsifo, NodeLabelsInfo.class), MediaType.APPLICATION_JSON) .post(ClientResponse.class); String expectedmessage = "java.io.IOException: label name should only contains" + " {0-9, a-z, A-Z, -, _} and should not started with" + " {-,_}, now it is= a&"; validateJsonExceptionContent(response, expectedmessage); }
@Test public void testLabelChangeExclusivity() throws Exception, JSONException { WebResource r = resource(); ClientResponse response; NodeLabelsInfo nlsifo = new NodeLabelsInfo(); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("newlabel", true)); response = r.path("ws").path("v1").path("cluster").path("add-node-labels") .queryParam("user.name", userName).accept(MediaType.APPLICATION_JSON) .entity(toJson(nlsifo, NodeLabelsInfo.class), MediaType.APPLICATION_JSON) .post(ClientResponse.class); // new info and change exclusivity NodeLabelsInfo nlsinfo2 = new NodeLabelsInfo(); nlsinfo2.getNodeLabelsInfo().add(new NodeLabelInfo("newlabel", false)); response = r.path("ws").path("v1").path("cluster").path("add-node-labels") .queryParam("user.name", userName).accept(MediaType.APPLICATION_JSON) .entity(toJson(nlsinfo2, NodeLabelsInfo.class), MediaType.APPLICATION_JSON) .post(ClientResponse.class); String expectedmessage = "java.io.IOException: Exclusivity cannot be modified for an existing" + " label with : <newlabel:exclusivity=false>"; validateJsonExceptionContent(response, expectedmessage); }
NodeLabelsInfo nlsifo = new NodeLabelsInfo(); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("a")); response = nlsifo = new NodeLabelsInfo(); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("b", false)); response = nlsifo = new NodeLabelsInfo(); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("x", false)); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("y", false)); nlsifo = new NodeLabelsInfo(); nlsifo.getNodeLabelsInfo().add(new NodeLabelInfo("z", false)); response =
NodeLabelsInfo nli = new NodeLabelsInfo(); nli.getNodeLabels().add("a"); ntli.getNodeToLabels().put("nid:0", nli);