@Test(dependsOnMethods = "testCreateVm") public void testCreateLoadBalancerRule() throws Exception { if (networksDisabled) return; int attempts = 0; while (rule == null && attempts < 10) { ip = reuseOrAssociate.apply(network); try { String jobId = client.getLoadBalancerApi().createLoadBalancerRuleForPublicIP(ip.getId(), Algorithm.LEASTCONN, prefix, 22, 22); assertTrue(jobComplete.apply(jobId)); AsyncJob<LoadBalancerRule> asyncJob = client.getAsyncJobApi().getAsyncJob(jobId); LoadBalancerRule result = asyncJob.getResult(); rule = result; } catch (IllegalStateException e) { // very likely an ip conflict, so retry; attempts++; } } assertNotNull(rule, "Failed to get a load balancer rule after " + attempts + " attempts"); assertEquals(rule.getPublicIPId(), ip.getId()); assertEquals(rule.getPublicPort(), 22); assertEquals(rule.getPrivatePort(), 22); assertEquals(rule.getAlgorithm(), Algorithm.LEASTCONN); assertEquals(rule.getName(), prefix); assertEquals(rule.getState(), State.ADD); assertEquals(client.getLoadBalancerApi().listVirtualMachinesAssignedToLoadBalancerRule(rule.getId()).size(), 0); checkRule(rule); }
String jobId = loadBalancerApi.createLoadBalancerRuleForPublicIP(publicIPId, algorithm, lbName, instancePort, loadBalancerPort, options); AsyncJob<Object> job = client.waitForJobSuccess(jobId); LoadBalancerRule rule = (LoadBalancerRule) job.getResult();