mirror of https://github.com/apache/jclouds.git
rename/reorder methods/parameters as per review
This commit is contained in:
parent
42ba8e9de4
commit
6365190448
|
@ -60,25 +60,25 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||||
public interface NodeAsyncClient {
|
public interface NodeAsyncClient {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see NodeClient#addNodes
|
* @see NodeClient#createNodesInLoadBalancer
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@SelectJson("nodes")
|
@SelectJson("nodes")
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
@Path("/loadbalancers/{lbid}/nodes")
|
@Path("/loadbalancers/{lbid}/nodes")
|
||||||
ListenableFuture<Set<Node>> addNodes(@PathParam("lbid") int lbid,
|
ListenableFuture<Set<Node>> createNodesInLoadBalancer(@WrapWith("nodes") Set<NodeRequest> nodes,
|
||||||
@WrapWith("nodes") Set<NodeRequest> nodes);
|
@PathParam("lbid") int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see NodeClient#modifyNode
|
* @see NodeClient#updateAttributesForNodeInLoadBalancer
|
||||||
*/
|
*/
|
||||||
@PUT
|
@PUT
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@Path("/loadbalancers/{lbid}/nodes/{nid}")
|
@Path("/loadbalancers/{lbid}/nodes/{nid}")
|
||||||
ListenableFuture<Void> modifyNode(@PathParam("lbid") int lbid,
|
ListenableFuture<Void> updateAttributesForNodeInLoadBalancer(@WrapWith("node") NodeAttributes attrs,
|
||||||
@PathParam("nid") int nid,
|
@PathParam("nid") int nid,
|
||||||
@WrapWith("node") NodeAttributes attrs);
|
@PathParam("lbid") int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see NodeClient#listNodes
|
* @see NodeClient#listNodes
|
||||||
|
@ -91,35 +91,35 @@ public interface NodeAsyncClient {
|
||||||
ListenableFuture<Set<Node>> listNodes(@PathParam("lbid") int lbid);
|
ListenableFuture<Set<Node>> listNodes(@PathParam("lbid") int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see NodeClient#getNode
|
* @see NodeClient#getNodeInLoadBalancer
|
||||||
*/
|
*/
|
||||||
@GET
|
@GET
|
||||||
@SelectJson("node")
|
@SelectJson("node")
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@Path("/loadbalancers/{lbid}/nodes/{nid}")
|
@Path("/loadbalancers/{lbid}/nodes/{nid}")
|
||||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
ListenableFuture<Node> getNode(@PathParam("lbid") int lbid,
|
ListenableFuture<Node> getNodeInLoadBalancer(@PathParam("nid") int nid,
|
||||||
@PathParam("nid") int nid);
|
@PathParam("lbid") int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see NodeClient#removeNode
|
* @see NodeClient#removeNodeFromLoadBalancer
|
||||||
*/
|
*/
|
||||||
@DELETE
|
@DELETE
|
||||||
@Path("/loadbalancers/{lbid}/nodes/{nid}")
|
@Path("/loadbalancers/{lbid}/nodes/{nid}")
|
||||||
@ExceptionParser(ReturnVoidOnNotFoundOr404.class)
|
@ExceptionParser(ReturnVoidOnNotFoundOr404.class)
|
||||||
@Consumes("*/*")
|
@Consumes("*/*")
|
||||||
ListenableFuture<Void> removeNode(@PathParam("lbid") int lbid,
|
ListenableFuture<Void> removeNodeFromLoadBalancer(@PathParam("nid") int nid,
|
||||||
@PathParam("nid") int nid);
|
@PathParam("lbid") int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see NodeClient#removeNode
|
* @see NodeClient#removeNodesFromLoadBalancer
|
||||||
*/
|
*/
|
||||||
@DELETE
|
@DELETE
|
||||||
@Path("/loadbalancers/{lbid}/nodes")
|
@Path("/loadbalancers/{lbid}/nodes")
|
||||||
@ExceptionParser(ReturnVoidOnNotFoundOr404.class)
|
@ExceptionParser(ReturnVoidOnNotFoundOr404.class)
|
||||||
@Consumes("*/*")
|
@Consumes("*/*")
|
||||||
ListenableFuture<Void> removeNodes(@PathParam("lbid") int lbid,
|
ListenableFuture<Void> removeNodesFromLoadBalancer(@QueryParam("id") Set<Integer> nids,
|
||||||
@QueryParam("id") Set<Integer> nids);
|
@PathParam("lbid") int lbid);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,17 +49,17 @@ public interface NodeClient {
|
||||||
* Internet and ServiceNet; as a result, nodes can either be internal ServiceNet addresses or addresses
|
* Internet and ServiceNet; as a result, nodes can either be internal ServiceNet addresses or addresses
|
||||||
* on the public Internet.
|
* on the public Internet.
|
||||||
*
|
*
|
||||||
* @param lbid
|
* @param nodes
|
||||||
* loadbalancer on which to create the node
|
|
||||||
* @param n
|
|
||||||
* configurations to create
|
* configurations to create
|
||||||
|
* @param lbid
|
||||||
|
* loadbalancer on which to create the nodes
|
||||||
* @return created nodes
|
* @return created nodes
|
||||||
* @throws HttpResponseException
|
* @throws HttpResponseException
|
||||||
* If the corresponding request cannot be fulfilled due to insufficient or invalid
|
* If the corresponding request cannot be fulfilled due to insufficient or invalid
|
||||||
* data
|
* data
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
Set<Node> addNodes(int lbid, Set<NodeRequest> nodes);
|
Set<Node> createNodesInLoadBalancer(Set<NodeRequest> nodes, int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -71,16 +71,16 @@ public interface NodeClient {
|
||||||
* A caller can poll the load balancer with its ID to wait for the changes to be applied and the
|
* A caller can poll the load balancer with its ID to wait for the changes to be applied and the
|
||||||
* load balancer to return to an ACTIVE status.
|
* load balancer to return to an ACTIVE status.
|
||||||
*
|
*
|
||||||
* @param lbid
|
|
||||||
* loadbalancer from which to get the node
|
|
||||||
* @param nid
|
|
||||||
* node to get
|
|
||||||
* @param attrs
|
* @param attrs
|
||||||
* what to change
|
* what to change
|
||||||
|
* @param nid
|
||||||
|
* node to get
|
||||||
|
* @param lbid
|
||||||
|
* loadbalancer from which to get the node
|
||||||
*
|
*
|
||||||
* @see LoadBalancerAttributes#fromLoadBalancer
|
* @see LoadBalancerAttributes#fromLoadBalancer
|
||||||
*/
|
*/
|
||||||
void modifyNode(int lbid, int nid, NodeAttributes attrs);
|
void updateAttributesForNodeInLoadBalancer(NodeAttributes attrs, int nid, int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -94,13 +94,13 @@ public interface NodeClient {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @param lbid
|
|
||||||
* loadbalancer from which to get the node
|
|
||||||
* @param nid
|
* @param nid
|
||||||
* node to get
|
* node to get
|
||||||
|
* @param lbid
|
||||||
|
* loadbalancer from which to get the node
|
||||||
* @return details of the specified node, or null if not found
|
* @return details of the specified node, or null if not found
|
||||||
*/
|
*/
|
||||||
Node getNode(int lbid, int nid);
|
Node getNodeInLoadBalancer(int nid, int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a node from the account.
|
* Remove a node from the account.
|
||||||
|
@ -109,12 +109,12 @@ public interface NodeClient {
|
||||||
* configuration from the account. Any and all configuration data is immediately purged and is
|
* configuration from the account. Any and all configuration data is immediately purged and is
|
||||||
* not recoverable.
|
* not recoverable.
|
||||||
*
|
*
|
||||||
* @param lbid
|
|
||||||
* loadbalancer from which to remove the node
|
|
||||||
* @param nid
|
* @param nid
|
||||||
* node to remove
|
* node to remove
|
||||||
|
* @param lbid
|
||||||
|
* loadbalancer from which to remove the node
|
||||||
*/
|
*/
|
||||||
void removeNode(int lbid, int nid);
|
void removeNodeFromLoadBalancer(int nid, int lbid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Batch-remove nodes from the account.
|
* Batch-remove nodes from the account.
|
||||||
|
@ -124,10 +124,10 @@ public interface NodeClient {
|
||||||
* cannot be removed due to its current status a 400:BadRequest is returned along with the ids
|
* cannot be removed due to its current status a 400:BadRequest is returned along with the ids
|
||||||
* of the ones the system identified as potential failures for this request
|
* of the ones the system identified as potential failures for this request
|
||||||
*
|
*
|
||||||
|
* @param nids
|
||||||
|
* nodes to remove
|
||||||
* @param lbid
|
* @param lbid
|
||||||
* loadbalancer from which to remove the node
|
* loadbalancer from which to remove the node
|
||||||
* @param nid
|
|
||||||
* node to remove
|
|
||||||
*/
|
*/
|
||||||
void removeNodes(int lbid, Set<Integer> nids);
|
void removeNodesFromLoadBalancer(Set<Integer> nids, int lbid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,9 @@ import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.jclouds.cloudloadbalancers.CloudLoadBalancersAsyncClient;
|
import org.jclouds.cloudloadbalancers.CloudLoadBalancersAsyncClient;
|
||||||
import org.jclouds.cloudloadbalancers.CloudLoadBalancersClient;
|
import org.jclouds.cloudloadbalancers.CloudLoadBalancersClient;
|
||||||
|
@ -72,9 +74,9 @@ public class NodeAsyncClientTest extends BaseCloudLoadBalancersAsyncClientTest<N
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetNode() throws SecurityException, NoSuchMethodException, IOException {
|
public void testGetNodeInLoadBalancer() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
Method method = NodeAsyncClient.class.getMethod("getNode", int.class, int.class);
|
Method method = NodeAsyncClient.class.getMethod("getNodeInLoadBalancer", int.class, int.class);
|
||||||
HttpRequest httpRequest = processor.createRequest(method, 2, 3);
|
HttpRequest httpRequest = processor.createRequest(method, 3, 2);
|
||||||
|
|
||||||
assertRequestLineEquals(httpRequest,
|
assertRequestLineEquals(httpRequest,
|
||||||
"GET https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/2/nodes/3 HTTP/1.1");
|
"GET https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/2/nodes/3 HTTP/1.1");
|
||||||
|
@ -89,17 +91,17 @@ public class NodeAsyncClientTest extends BaseCloudLoadBalancersAsyncClientTest<N
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testCreateNodeWithType() throws SecurityException, NoSuchMethodException, IOException {
|
public void createNodesInLoadBalancerWithType() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
Method method = NodeAsyncClient.class.getMethod("createNode", int.class, NodeRequest.class);
|
Method method = NodeAsyncClient.class.getMethod("createNodesInLoadBalancer", Set.class, int.class);
|
||||||
HttpRequest httpRequest = processor.createRequest(method, 3, NodeRequest.builder().
|
HttpRequest httpRequest = processor.createRequest(method, Collections.<NodeRequest>singleton(NodeRequest.builder().
|
||||||
address("192.168.1.1").port(8080).build());
|
address("192.168.1.1").port(8080).build()), 3);
|
||||||
|
|
||||||
assertRequestLineEquals(httpRequest,
|
assertRequestLineEquals(httpRequest,
|
||||||
"POST https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/3/nodes HTTP/1.1");
|
"POST https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/3/nodes HTTP/1.1");
|
||||||
assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
|
assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
|
||||||
assertPayloadEquals(
|
assertPayloadEquals(
|
||||||
httpRequest,
|
httpRequest,
|
||||||
"{\"node\":{\"address\":\"192.168.1.1\",\"port\":8080,\"condition\":\"ENABLED\"}}",
|
"{\"nodes\":[{\"address\":\"192.168.1.1\",\"port\":8080,\"condition\":\"ENABLED\"}]}",
|
||||||
"application/json", false);
|
"application/json", false);
|
||||||
|
|
||||||
assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class);
|
assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class);
|
||||||
|
@ -110,10 +112,10 @@ public class NodeAsyncClientTest extends BaseCloudLoadBalancersAsyncClientTest<N
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testModifyNode() throws SecurityException, NoSuchMethodException, IOException {
|
public void testUpdateAttributesForNodeInLoadBalancer() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
Method method = NodeAsyncClient.class.getMethod("modifyNode", int.class, int.class,
|
Method method = NodeAsyncClient.class.getMethod("updateAttributesForNodeInLoadBalancer", NodeAttributes.class,
|
||||||
NodeAttributes.class);
|
int.class, int.class);
|
||||||
HttpRequest httpRequest = processor.createRequest(method, 7, 8, Builder.condition(Condition.DISABLED).weight(13));
|
HttpRequest httpRequest = processor.createRequest(method, Builder.condition(Condition.DISABLED).weight(13), 8, 7);
|
||||||
|
|
||||||
assertRequestLineEquals(httpRequest,
|
assertRequestLineEquals(httpRequest,
|
||||||
"PUT https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/7/nodes/8 HTTP/1.1");
|
"PUT https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/7/nodes/8 HTTP/1.1");
|
||||||
|
@ -128,9 +130,9 @@ public class NodeAsyncClientTest extends BaseCloudLoadBalancersAsyncClientTest<N
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testRemoveLoadBalancer() throws SecurityException, NoSuchMethodException, IOException {
|
public void testRemoveNodeFromLoadBalancer() throws SecurityException, NoSuchMethodException, IOException {
|
||||||
Method method = NodeAsyncClient.class.getMethod("removeNode", int.class, int.class);
|
Method method = NodeAsyncClient.class.getMethod("removeNodeFromLoadBalancer", int.class, int.class);
|
||||||
HttpRequest httpRequest = processor.createRequest(method, 4, 9);
|
HttpRequest httpRequest = processor.createRequest(method, 9, 4);
|
||||||
|
|
||||||
assertRequestLineEquals(httpRequest,
|
assertRequestLineEquals(httpRequest,
|
||||||
"DELETE https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/4/nodes/9 HTTP/1.1");
|
"DELETE https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers/4/nodes/9 HTTP/1.1");
|
||||||
|
|
|
@ -30,6 +30,7 @@ import java.util.Set;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer;
|
||||||
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancer.Status;
|
||||||
import org.jclouds.cloudloadbalancers.domain.LoadBalancerRequest;
|
import org.jclouds.cloudloadbalancers.domain.LoadBalancerRequest;
|
||||||
import org.jclouds.cloudloadbalancers.domain.Node;
|
import org.jclouds.cloudloadbalancers.domain.Node;
|
||||||
import org.jclouds.cloudloadbalancers.domain.NodeAttributes;
|
import org.jclouds.cloudloadbalancers.domain.NodeAttributes;
|
||||||
|
@ -87,7 +88,7 @@ public class NodeClientLiveTest extends BaseCloudLoadBalancersClientLiveTest {
|
||||||
assert n.getStatus() != null : n;
|
assert n.getStatus() != null : n;
|
||||||
assert n.getWeight() != null : n; //FIXME may fail as can be null (json response doesn't have the attribute)
|
assert n.getWeight() != null : n; //FIXME may fail as can be null (json response doesn't have the attribute)
|
||||||
|
|
||||||
Node getDetails = client.getNodeClient(lb.getRegion()).getNode(lb.getId(), n.getId());
|
Node getDetails = client.getNodeClient(lb.getRegion()).getNodeInLoadBalancer(n.getId(), lb.getId());
|
||||||
System.out.println(n.toString());
|
System.out.println(n.toString());
|
||||||
try {
|
try {
|
||||||
assertEquals(getDetails.getId(), n.getId());
|
assertEquals(getDetails.getId(), n.getId());
|
||||||
|
@ -107,13 +108,13 @@ public class NodeClientLiveTest extends BaseCloudLoadBalancersClientLiveTest {
|
||||||
for (LoadBalancer lb : nodes.keySet()) {
|
for (LoadBalancer lb : nodes.keySet()) {
|
||||||
String region = lb.getRegion();
|
String region = lb.getRegion();
|
||||||
Logger.getAnonymousLogger().info("starting node on loadbalancer "+lb.getId()+" in region "+region);
|
Logger.getAnonymousLogger().info("starting node on loadbalancer "+lb.getId()+" in region "+region);
|
||||||
Set<Node> newNodes = client.getNodeClient(region).addNodes(lb.getId(), Collections.<NodeRequest>singleton(
|
Set<Node> newNodes = client.getNodeClient(region).createNodesInLoadBalancer(Collections.<NodeRequest>singleton(
|
||||||
NodeRequest.builder().address("192.168.1.2").port(8080).build()));
|
NodeRequest.builder().address("192.168.1.2").port(8080).build()), lb.getId());
|
||||||
|
|
||||||
for (Node n : newNodes) {
|
for (Node n : newNodes) {
|
||||||
assertEquals(n.getStatus(), Node.Status.ONLINE);
|
assertEquals(n.getStatus(), Node.Status.ONLINE);
|
||||||
nodes.get(lb).add(n);
|
nodes.get(lb).add(n);
|
||||||
assertEquals(client.getNodeClient(region).getNode(lb.getId(), n.getId()).getStatus(), Node.Status.ONLINE);
|
assertEquals(client.getNodeClient(region).getNodeInLoadBalancer(n.getId(), lb.getId()).getStatus(), Node.Status.ONLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert loadBalancerActive.apply(lb) : lb;
|
assert loadBalancerActive.apply(lb) : lb;
|
||||||
|
@ -125,12 +126,12 @@ public class NodeClientLiveTest extends BaseCloudLoadBalancersClientLiveTest {
|
||||||
for (Entry<LoadBalancer, Set<Node>> entry : nodes.entrySet()) {
|
for (Entry<LoadBalancer, Set<Node>> entry : nodes.entrySet()) {
|
||||||
for (Node n : entry.getValue()) {
|
for (Node n : entry.getValue()) {
|
||||||
String region = entry.getKey().getRegion();
|
String region = entry.getKey().getRegion();
|
||||||
client.getNodeClient(region).modifyNode(entry.getKey().getId(), n.getId(),
|
client.getNodeClient(region).updateAttributesForNodeInLoadBalancer(NodeAttributes.Builder.weight(23),
|
||||||
NodeAttributes.Builder.weight(23));
|
n.getId(), entry.getKey().getId());
|
||||||
assertEquals(client.getNodeClient(region)
|
assertEquals(client.getNodeClient(region)
|
||||||
.getNode(entry.getKey().getId(), n.getId()).getStatus(), Node.Status.ONLINE);
|
.getNodeInLoadBalancer(n.getId(), entry.getKey().getId()).getStatus(), Node.Status.ONLINE);
|
||||||
|
|
||||||
Node newNode = client.getNodeClient(region).getNode(entry.getKey().getId(), n.getId());
|
Node newNode = client.getNodeClient(region).getNodeInLoadBalancer(n.getId(), entry.getKey().getId());
|
||||||
assertEquals(newNode.getStatus(), Node.Status.ONLINE);
|
assertEquals(newNode.getStatus(), Node.Status.ONLINE);
|
||||||
assertEquals(newNode.getWeight(), (Integer)23);
|
assertEquals(newNode.getWeight(), (Integer)23);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue