public void testSync() throws SecurityException, NoSuchMethodException, InterruptedException, ExecutionException { assert syncClient.getImageServices() != null; assert syncClient.getIpServices() != null; assert syncClient.getJobServices() != null; assert syncClient.getLoadBalancerServices() != null; assert syncClient.getServerServices() != null; }
/** In case anything went wrong during the tests, removes the objects created in the tests. */ @AfterTest public void cleanup() { for (String serverName : serversToDeleteAfterTheTests) { try { client.getServerServices().deleteByName(serverName); } catch (Exception e) { // it's already been deleted - proceed } } for (String loadBalancerName : loadBalancersToDeleteAfterTest) { try { client.getLoadBalancerServices().deleteByName(loadBalancerName); } catch (Exception e) { // it's already been deleted - proceed } } }
/** Tests common load balancer operations. Also verifies IP services and job services. */ @Test(enabled = true) public void testLoadBalancerLifecycle() { int lbCountBeforeTest = client.getLoadBalancerServices().getLoadBalancerList().size(); final String nameOfLoadBalancer = "LoadBalancer" + String.valueOf(new Date().getTime()).substring(6); loadBalancersToDeleteAfterTest.add(nameOfLoadBalancer); Set<Ip> availableIps = client.getIpServices().getUnassignedPublicIpList(); if (availableIps.size() < 4) throw new SkipException("Not enough available IPs (4 needed) to run the test"); Iterator<Ip> ipIterator = availableIps.iterator(); Ip vip = ipIterator.next(); Ip realIp1 = ipIterator.next(); Ip realIp2 = ipIterator.next(); Ip realIp3 = ipIterator.next(); AddLoadBalancerOptions options = new AddLoadBalancerOptions.Builder() .create(LoadBalancerType.LEAST_CONNECTED, LoadBalancerPersistenceType.SOURCE_ADDRESS); LoadBalancer createdLoadBalancer = client .getLoadBalancerServices() .addLoadBalancer( nameOfLoadBalancer, IpPortPair.builder().ip(vip).port(80).build(), Arrays.asList( IpPortPair.builder().ip(realIp1).port(80).build(), IpPortPair.builder().ip(realIp2).port(80).build()), options); assertNotNull(createdLoadBalancer); assert loadBalancerLatestJobCompleted.apply(createdLoadBalancer); // get load balancer by name Set<LoadBalancer> response = client.getLoadBalancerServices().getLoadBalancersByName(nameOfLoadBalancer); assert (response.size() == 1); createdLoadBalancer = Iterables.getOnlyElement(response); assertNotNull(createdLoadBalancer.getRealIpList()); assertEquals(createdLoadBalancer.getRealIpList().size(), 2); assertNotNull(createdLoadBalancer.getVirtualIp()); assertEquals(createdLoadBalancer.getVirtualIp().getIp().getIp(), vip.getIp()); LoadBalancer editedLoadBalancer = client .getLoadBalancerServices() .editLoadBalancerNamed( nameOfLoadBalancer, Arrays.asList(IpPortPair.builder().ip(realIp3).port(8181).build())); assert loadBalancerLatestJobCompleted.apply(editedLoadBalancer); assertNotNull(editedLoadBalancer.getRealIpList()); assertEquals(editedLoadBalancer.getRealIpList().size(), 1); assertEquals( Iterables.getOnlyElement(editedLoadBalancer.getRealIpList()).getIp().getIp(), realIp3.getIp()); int lbCountAfterAddingOneServer = client.getLoadBalancerServices().getLoadBalancerList().size(); assert lbCountAfterAddingOneServer == lbCountBeforeTest + 1 : "There should be +1 increase in the number of load balancers since the test started"; // delete the load balancer client.getLoadBalancerServices().deleteByName(nameOfLoadBalancer); Set<Job> jobs = client.getJobServices().getJobsForObjectName(nameOfLoadBalancer); assert ("DeleteLoadBalancer".equals(Iterables.getLast(jobs).getCommand().getName())); assert loadBalancerLatestJobCompleted.apply(createdLoadBalancer); int lbCountAfterDeletingTheServer = client.getLoadBalancerServices().getLoadBalancerList().size(); assert lbCountAfterDeletingTheServer == lbCountBeforeTest : "There should be the same # of load balancers as since the test started"; }