mirror of https://github.com/apache/jclouds.git
adding create and delete of security groups and security group rules
This commit is contained in:
parent
2c2c901773
commit
5e6f84ec25
|
@ -21,6 +21,7 @@ package org.jclouds.openstack.nova.v1_1.features;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.DELETE;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
|
@ -30,6 +31,7 @@ import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import org.jclouds.openstack.filters.AuthenticateRequest;
|
import org.jclouds.openstack.filters.AuthenticateRequest;
|
||||||
import org.jclouds.openstack.nova.v1_1.domain.SecurityGroup;
|
import org.jclouds.openstack.nova.v1_1.domain.SecurityGroup;
|
||||||
|
import org.jclouds.openstack.nova.v1_1.domain.SecurityGroupRule;
|
||||||
import org.jclouds.rest.annotations.ExceptionParser;
|
import org.jclouds.rest.annotations.ExceptionParser;
|
||||||
import org.jclouds.rest.annotations.Payload;
|
import org.jclouds.rest.annotations.Payload;
|
||||||
import org.jclouds.rest.annotations.PayloadParam;
|
import org.jclouds.rest.annotations.PayloadParam;
|
||||||
|
@ -37,6 +39,7 @@ import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.SelectJson;
|
import org.jclouds.rest.annotations.SelectJson;
|
||||||
import org.jclouds.rest.annotations.SkipEncoding;
|
import org.jclouds.rest.annotations.SkipEncoding;
|
||||||
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
|
||||||
|
import org.jclouds.rest.functions.ReturnFalseOnNotFoundOr404;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
@ -78,9 +81,55 @@ public interface SecurityGroupAsyncClient {
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/os-security-groups")
|
@Path("/os-security-groups")
|
||||||
|
@SelectJson("security_group")
|
||||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
@Payload("name {name}\n")
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@Produces(MediaType.TEXT_PLAIN)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
ListenableFuture<SecurityGroup> createSecurityGroup(@PayloadParam("name") String name);
|
@Payload("%7B\"security_group\":%7B\"name\":\"{name}\",\"description\":\"{description}\"%7D%7D")
|
||||||
|
ListenableFuture<SecurityGroup> createSecurityGroup(@PayloadParam("name") String name,
|
||||||
|
@PayloadParam("description") String description);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see SecurityGroupClient#deleteSecurityGroup
|
||||||
|
*/
|
||||||
|
@DELETE
|
||||||
|
@Path("/os-security-groups/{id}")
|
||||||
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
|
@Consumes
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
ListenableFuture<Boolean> deleteSecurityGroup(@PathParam("id") String id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see SecurityGroupClient#createSecurityGroupRule
|
||||||
|
*/
|
||||||
|
@POST
|
||||||
|
@Path("/os-security-group-rules")
|
||||||
|
@SelectJson("security_group_rule")
|
||||||
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
@Payload("%7B\"security_group_rule\":%7B\"ip_protocol\":\"{ip_protocol}\"," +
|
||||||
|
"\"from_port\":\"{from_port}\",\"to_port\":\"{to_port}\"," +
|
||||||
|
"\"cidr\":\"{cidr}\",\"group_id\":\"{group_id}\",\"parent_group_id\":\"{parent_group_id}\"%7D%7D")
|
||||||
|
ListenableFuture<SecurityGroupRule> createSecurityGroupRule(
|
||||||
|
@PayloadParam("ip_protocol") String ip_protocol,
|
||||||
|
@PayloadParam("from_port") String from_port,
|
||||||
|
@PayloadParam("to_port") String to_port,
|
||||||
|
@PayloadParam("cidr") String cidr,
|
||||||
|
@PayloadParam("group_id") String group_id,
|
||||||
|
@PayloadParam("parent_group_id") String parent_group_id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see SecurityGroupClient#deleteSecurityGroupRule
|
||||||
|
*/
|
||||||
|
@DELETE
|
||||||
|
@Path("/os-security-group-rules/{security_group_rule_ID}")
|
||||||
|
@ExceptionParser(ReturnFalseOnNotFoundOr404.class)
|
||||||
|
@Consumes
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
ListenableFuture<Boolean> deleteSecurityGroupRule(@PathParam("security_group_rule_ID") String security_group_rule_ID);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,20 +21,10 @@ package org.jclouds.openstack.nova.v1_1.features;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import javax.ws.rs.POST;
|
|
||||||
import javax.ws.rs.Path;
|
|
||||||
import javax.ws.rs.Produces;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
|
|
||||||
import org.jclouds.concurrent.Timeout;
|
import org.jclouds.concurrent.Timeout;
|
||||||
import org.jclouds.openstack.nova.v1_1.domain.FloatingIP;
|
|
||||||
import org.jclouds.openstack.nova.v1_1.domain.SecurityGroup;
|
import org.jclouds.openstack.nova.v1_1.domain.SecurityGroup;
|
||||||
import org.jclouds.rest.annotations.ExceptionParser;
|
import org.jclouds.openstack.nova.v1_1.domain.SecurityGroupRule;
|
||||||
import org.jclouds.rest.annotations.Payload;
|
|
||||||
import org.jclouds.rest.annotations.PayloadParam;
|
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides synchronous access to Security Groups.
|
* Provides synchronous access to Security Groups.
|
||||||
|
@ -65,6 +55,28 @@ public interface SecurityGroupClient {
|
||||||
*
|
*
|
||||||
* @return a new Security Group
|
* @return a new Security Group
|
||||||
*/
|
*/
|
||||||
SecurityGroup createSecurityGroup(String name);
|
SecurityGroup createSecurityGroup(String name, String description);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete a Security Group.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Boolean deleteSecurityGroup(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a Security Group Rule.
|
||||||
|
*
|
||||||
|
* @return a new Security Group Rule
|
||||||
|
*/
|
||||||
|
SecurityGroupRule createSecurityGroupRule(String ip_protocol, String from_port, String to_port, String cidr,
|
||||||
|
String group_id, String parent_group_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete a Security Group Rule.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Boolean deleteSecurityGroupRule(String id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue