@Test(dependsOnMethods = "testCreatePortForwardingRule") public void testCreateFirewallRule() { if (networksDisabled) return; AsyncCreateResponse job = client.getFirewallClient().createFirewallRuleForIpAndProtocol( ip.getId(), FirewallRule.Protocol.TCP, CreateFirewallRuleOptions.Builder.startPort(30).endPort(35)); assertTrue(jobComplete.apply(job.getJobId())); firewallRule = client.getFirewallClient().getFirewallRule(job.getId()); assertEquals(firewallRule.getStartPort(), 30); assertEquals(firewallRule.getEndPort(), 35); assertEquals(firewallRule.getProtocol(), FirewallRule.Protocol.TCP); checkFirewallRule(firewallRule); }
public Set<String> deleteFirewallRulesForVMAndReturnDistinctIPs(String virtualMachineId) { // immutable doesn't permit duplicates Set<String> ipAddresses = Sets.newLinkedHashSet(); String publicIpId = client.getVirtualMachineClient().getVirtualMachine(virtualMachineId).getPublicIPId(); if (publicIpId != null) { Set<FirewallRule> firewallRules = client.getFirewallClient() .listFirewallRules(ListFirewallRulesOptions.Builder.ipAddressId(client.getVirtualMachineClient().getVirtualMachine(virtualMachineId).getPublicIPId())); for (FirewallRule rule : firewallRules) { if (rule.getState() != FirewallRule.State.DELETING) { ipAddresses.add(rule.getIpAddressId()); client.getFirewallClient().deleteFirewallRule(rule.getId()); logger.debug(">> deleting FirewallRule(%s)", rule.getId()); } } } return ipAddresses; }
@Test(dependsOnMethods = "testCreatePortForwardingRule") public void testListPortForwardingRules() throws Exception { Set<PortForwardingRule> response = client.getFirewallClient().listPortForwardingRules(); assert null != response; assertTrue(response.size() >= 0); for (final PortForwardingRule rule : response) { checkPortForwardingRule(rule); } }
@Test(dependsOnMethods = "testCreateFirewallRule") public void testListFirewallRules() { Set<FirewallRule> rules = client.getFirewallClient().listFirewallRules(); assert rules != null; assertTrue(rules.size() > 0); for(FirewallRule rule : rules) { checkFirewallRule(rule); } }
@AfterGroups(groups = "live") @Override protected void tearDownContext() { if (firewallRule != null) { client.getFirewallClient().deleteFirewallRule(firewallRule.getId()); } if (portForwardingRule != null) { client.getFirewallClient().deletePortForwardingRule(portForwardingRule.getId()); } if (vm != null) { jobComplete.apply(client.getVirtualMachineClient().destroyVirtualMachine(vm.getId())); } if (ip != null) { client.getAddressClient().disassociateIPAddress(ip.getId()); } super.tearDownContext(); }
public Set<FirewallRule> apply(PublicIPAddress ip, String protocol, Iterable<Integer> ports) { checkState(ip.getVirtualMachineId() != null, "ip %s should be static NATed to a virtual machine before applying rules", ip); if (Iterables.size(ports) == 0) return ImmutableSet.<FirewallRule> of(); Builder<AsyncCreateResponse> responses = ImmutableSet.builder(); for (int port : ports) { AsyncCreateResponse response = client.getFirewallClient().createFirewallRuleForIpAndProtocol(ip.getId(), FirewallRule.Protocol.fromValue(protocol), CreateFirewallRuleOptions.Builder.startPort(port).endPort(port)); logger.debug(">> creating firewall rule IPAddress(%s) for protocol(%s), port(%s); response(%s)", ip.getId(), protocol, port, response); responses.add(response); } Builder<FirewallRule> rules = ImmutableSet.builder(); for (AsyncCreateResponse response : responses.build()) { FirewallRule rule = blockUntilJobCompletesAndReturnResult.<FirewallRule> apply(response); rules.add(rule); getFirewallRulesByVirtualMachine.asMap().put(ip.getVirtualMachineId(), ImmutableSet.of(rule)); } return rules.build(); } }
public void testCreatePortForwardingRule() throws Exception { if (networksDisabled) return; while (portForwardingRule == null) { ip = reuseOrAssociate.apply(network); try { AsyncCreateResponse job = client.getFirewallClient() .createPortForwardingRuleForVirtualMachine(ip.getId(), PortForwardingRule.Protocol.TCP, 22, vm.getId(), 22); assertTrue(jobComplete.apply(job.getJobId())); portForwardingRule = client.getFirewallClient().getPortForwardingRule(job.getId()); } catch (IllegalStateException e) { Logger.CONSOLE.error("Failed while trying to allocate ip: " + e); // very likely an ip conflict, so retry; } } assertEquals(portForwardingRule.getIPAddressId(), ip.getId()); assertEquals(portForwardingRule.getVirtualMachineId(), vm.getId()); assertEquals(portForwardingRule.getPublicPort(), 22); assertEquals(portForwardingRule.getProtocol(), PortForwardingRule.Protocol.TCP); checkPortForwardingRule(portForwardingRule); checkSSH(HostAndPort.fromParts(ip.getIPAddress(), 22)); }
public void testDeleteFirewallRule() { FirewallClient client = requestSendsResponse( HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&" + "command=deleteFirewallRule&id=2015&apiKey=identity&signature=/T5FAO2yGPctaPmg7TEtIEFW3EU%3D")) .build(), HttpResponse.builder() .statusCode(200) .payload(payloadFromResource("/deletefirewallrulesresponse.json")) .build()); client.deleteFirewallRule("2015"); }
public void testGetFirewallRuleWhenResponseIs404() { FirewallClient client = requestSendsResponse( HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&command=listFirewallRules&listAll=true&" + "id=4&apiKey=identity&signature=rYd8gr7ptdSZlIehBEMQEKsm07Q%3D")) .addHeader("Accept", "application/json") .build(), HttpResponse.builder() .statusCode(404) .build()); assertNull(client.getFirewallRule("4")); }
public void testGetPortForwardingRuleWhenResponseIs404() { FirewallClient client = requestSendsResponse( HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&" + "command=listPortForwardingRules&listAll=true&id=4&apiKey=identity&signature=4blbBVn2%2BZfF8HwoglbmtYoDAjs%3D")) .addHeader("Accept", "application/json") .build(), HttpResponse.builder() .statusCode(404) .build()); assertNull(client.getPortForwardingRule("4")); }
public void testDeletePortForwardingRule() { FirewallClient client = requestSendsResponse( HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&" + "command=deletePortForwardingRule&id=2015&apiKey=identity&signature=2UE7KB3wm5ocmR%2BGMNFKPKfiDo8%3D")) .build(), HttpResponse.builder() .statusCode(200) .payload(payloadFromResource("/deleteportforwardingrulesresponse.json")) .build()); client.deletePortForwardingRule("2015"); }
public void testCreatePortForwardingRuleForVirtualMachine() { FirewallClient client = requestSendsResponse( HttpRequest.builder().method("GET") .endpoint("http://localhost:8080/client/api") .addQueryParam("response", "json") .addQueryParam("command", "createPortForwardingRule") .addQueryParam("ipaddressid", "2") .addQueryParam("protocol", "tcp") .addQueryParam("publicport", "22") .addQueryParam("virtualmachineid", "1234") .addQueryParam("privateport", "22") .addQueryParam("apiKey", "identity") .addQueryParam("signature", "84dtGzQp0G6k3z3Gkc3F/HBNS2Y%3D") .addHeader("Accept", "application/json") .build(), HttpResponse.builder() .statusCode(200) .payload(payloadFromResource("/createportforwardingrulesresponse.json")) .build()); AsyncCreateResponse response = client.createPortForwardingRuleForVirtualMachine( "2", PortForwardingRule.Protocol.TCP, 22, "1234", 22); assertEquals(response.getJobId(), "2035"); assertEquals(response.getId(), "2015"); }
/** * @throws org.jclouds.rest.ResourceNotFoundException * when there is no ip forwarding rule available for the VM */ @Override public Set<FirewallRule> load(String input) { String publicIPId = client.getVirtualMachineClient().getVirtualMachine(input).getPublicIPId(); Set<FirewallRule> rules = client.getFirewallClient() .listFirewallRules(ListFirewallRulesOptions.Builder.ipAddressId(publicIPId)); return rules != null ? rules : ImmutableSet.<FirewallRule>of(); } }
public Set<FirewallRule> apply(PublicIPAddress ip, String protocol, Iterable<Integer> ports) { checkState(ip.getVirtualMachineId() != null, "ip %s should be static NATed to a virtual machine before applying rules", ip); if (Iterables.size(ports) == 0) return ImmutableSet.<FirewallRule> of(); Builder<AsyncCreateResponse> responses = ImmutableSet.builder(); for (int port : ports) { AsyncCreateResponse response = client.getFirewallClient().createFirewallRuleForIpAndProtocol(ip.getId(), FirewallRule.Protocol.fromValue(protocol), CreateFirewallRuleOptions.Builder.startPort(port).endPort(port)); logger.debug(">> creating firewall rule IPAddress(%s) for protocol(%s), port(%s); response(%s)", ip.getId(), protocol, port, response); responses.add(response); } Builder<FirewallRule> rules = ImmutableSet.builder(); for (AsyncCreateResponse response : responses.build()) { FirewallRule rule = blockUntilJobCompletesAndReturnResult.<FirewallRule> apply(response); rules.add(rule); getFirewallRulesByVirtualMachine.asMap().put(ip.getVirtualMachineId(), ImmutableSet.of(rule)); } return rules.build(); } }
protected void checkFirewallRule(FirewallRule rule) { assertEquals(rule, client.getFirewallClient().getFirewallRule(rule.getId())); assert rule.getId() != null : rule; assert rule.getStartPort() > 0 : rule; assert rule.getEndPort() >= rule.getStartPort() : rule; assert rule.getProtocol() != null; }
protected void checkPortForwardingRule(PortForwardingRule rule) { assertEquals(rule, client.getFirewallClient().getPortForwardingRule(rule.getId())); assert rule.getId() != null : rule; assert rule.getIPAddress() != null : rule; assert rule.getIPAddressId() != null : rule; assert rule.getPrivatePort() > 0 : rule; assert rule.getProtocol() != null : rule; assert rule.getPublicPort() > 0 : rule; assert rule.getState() != null : rule; assert rule.getVirtualMachineId() != null : rule; assert rule.getVirtualMachineName() != null : rule; } }
public Set<String> deleteFirewallRulesForVMAndReturnDistinctIPs(String virtualMachineId) { // immutable doesn't permit duplicates Set<String> ipAddresses = Sets.newLinkedHashSet(); String publicIpId = client.getVirtualMachineClient().getVirtualMachine(virtualMachineId).getPublicIPId(); if (publicIpId != null) { Set<FirewallRule> firewallRules = client.getFirewallClient() .listFirewallRules(ListFirewallRulesOptions.Builder.ipAddressId(client.getVirtualMachineClient().getVirtualMachine(virtualMachineId).getPublicIPId())); for (FirewallRule rule : firewallRules) { if (rule.getState() != FirewallRule.State.DELETING) { ipAddresses.add(rule.getIpAddressId()); client.getFirewallClient().deleteFirewallRule(rule.getId()); logger.debug(">> deleting FirewallRule(%s)", rule.getId()); } } } return ipAddresses; }
/** * @throws org.jclouds.rest.ResourceNotFoundException * when there is no ip forwarding rule available for the VM */ @Override public Set<FirewallRule> load(String input) { String publicIPId = client.getVirtualMachineClient().getVirtualMachine(input).getPublicIPId(); Set<FirewallRule> rules = client.getFirewallClient() .listFirewallRules(ListFirewallRulesOptions.Builder.ipAddressId(publicIPId)); return rules != null ? rules : ImmutableSet.<FirewallRule>of(); } }
public void testCreateFirewallRuleForIpAndProtocol() { FirewallClient client = requestSendsResponse( HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&command=createFirewallRule&" + "ipaddressid=2&protocol=TCP&apiKey=identity&signature=d0MZ/yhQPAaV%2BYQmfZsQtQL2C28%3D")) .addHeader("Accept", "application/json") .build(), HttpResponse.builder() .statusCode(200) .payload(payloadFromResource("/createfirewallrulesresponse.json")) .build()); AsyncCreateResponse response = client.createFirewallRuleForIpAndProtocol("2", FirewallRule.Protocol.TCP); assertEquals(response.getJobId(), "2036"); assertEquals(response.getId(), "2017"); }
public void testListPortForwardingRulesWhenReponseIs404() { FirewallClient client = requestSendsResponse( HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&" + "command=listPortForwardingRules&listAll=true&apiKey=identity&signature=8SXGJZWdcJfVz4V90Pyod12x9dM%3D")) .addHeader("Accept", "application/json") .build(), HttpResponse.builder() .statusCode(404) .build()); assertEquals(client.listPortForwardingRules(), ImmutableSet.of()); }