/** * Always close your service when you're done with it. * * <p>Note that closing quietly like this is not necessary in Java 7. You would use * try-with-resources in the main method instead. When jclouds switches to Java 7 the try/catch * block below can be removed. */ public void close() { if (clb != null) { try { clb.close(); } catch (Exception e) { e.printStackTrace(); } } }
private Set<Node> getNodes(LoadBalancer loadBalancer) { NodeApi nodeApi = clb.getNodeApiForZoneAndLoadBalancer(Constants.ZONE, loadBalancer.getId()); Set<Node> nodes = Sets.newHashSet(); for (Node node : nodeApi.list().concat()) { if (node.getAddress().startsWith("10.180.1")) { nodes.add(node); } } return nodes; }
private void init(String[] args) { // The provider configures jclouds To use the Rackspace Cloud (US) // To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudloadbalancers-uk" String provider = "rackspace-cloudloadbalancers-us"; String username = args[0]; String apiKey = args[1]; clb = ContextBuilder.newBuilder(provider) .credentials(username, apiKey) .buildApi(CloudLoadBalancersApi.class); lbApi = clb.getLoadBalancerApiForZone(Constants.ZONE); }
private void removeNodesFromLoadBalancer(Set<Node> nodes, LoadBalancer loadBalancer) throws TimeoutException { System.out.println("Remove Nodes"); NodeApi nodeApi = clb.getNodeApiForZoneAndLoadBalancer(Constants.ZONE, loadBalancer.getId()); Iterable<Integer> nodeIds = Iterables.transform(nodes, new NodeToInteger()); nodeApi.remove(nodeIds); // Wait for the Load Balancer to become Active before moving on // If you want to know what's happening during the polling, enable logging. See // /jclouds-example/rackspace/src/main/java/org/jclouds/examples/rackspace/Logging.java if (!LoadBalancerPredicates.awaitAvailable(lbApi).apply(loadBalancer)) { throw new TimeoutException("Timeout on loadBalancer: " + loadBalancer); } System.out.println(" " + nodeIds); }