org.jclouds.cloudstack.compute.extensions
Class CloudStackSecurityGroupExtension

java.lang.Object
  extended by org.jclouds.cloudstack.compute.extensions.CloudStackSecurityGroupExtension
All Implemented Interfaces:
org.jclouds.compute.extensions.SecurityGroupExtension

public class CloudStackSecurityGroupExtension
extends Object
implements org.jclouds.compute.extensions.SecurityGroupExtension

An extension to compute service to allow for the manipulation of SecurityGroups. Implementation is optional by providers.


Field Summary
protected  CloudStackApi api
           
protected  BlockUntilJobCompletesAndReturnResult blockUntilJobCompletesAndReturnResult
           
protected  com.google.common.base.Function<SecurityGroup,org.jclouds.compute.domain.SecurityGroup> groupConverter
           
protected  com.google.common.cache.LoadingCache<ZoneAndName,SecurityGroup> groupCreator
           
protected  com.google.common.base.Predicate<String> jobComplete
           
protected  com.google.common.base.Supplier<Set<? extends org.jclouds.domain.Location>> locations
           
protected  org.jclouds.compute.functions.GroupNamingConvention.Factory namingConvention
           
 
Constructor Summary
CloudStackSecurityGroupExtension(CloudStackApi api, com.google.common.base.Function<SecurityGroup,org.jclouds.compute.domain.SecurityGroup> groupConverter, com.google.common.cache.LoadingCache<ZoneAndName,SecurityGroup> groupCreator, org.jclouds.compute.functions.GroupNamingConvention.Factory namingConvention, com.google.common.base.Supplier<Set<? extends org.jclouds.domain.Location>> locations, BlockUntilJobCompletesAndReturnResult blockUntilJobCompletesAndReturnResult, com.google.common.base.Predicate<String> jobComplete)
           
 
Method Summary
 org.jclouds.compute.domain.SecurityGroup addIpPermission(org.jclouds.net.domain.IpPermission ipPermission, org.jclouds.compute.domain.SecurityGroup group)
           
 org.jclouds.compute.domain.SecurityGroup addIpPermission(org.jclouds.net.domain.IpProtocol protocol, int startPort, int endPort, com.google.common.collect.Multimap<String,String> tenantIdGroupNamePairs, Iterable<String> ipRanges, Iterable<String> groupIds, org.jclouds.compute.domain.SecurityGroup group)
           
 org.jclouds.compute.domain.SecurityGroup createSecurityGroup(String name, org.jclouds.domain.Location location)
           
 org.jclouds.compute.domain.SecurityGroup getSecurityGroupById(String id)
           
 Set<org.jclouds.compute.domain.SecurityGroup> listSecurityGroups()
           
 Set<org.jclouds.compute.domain.SecurityGroup> listSecurityGroupsForNode(String id)
           
 Set<org.jclouds.compute.domain.SecurityGroup> listSecurityGroupsInLocation(org.jclouds.domain.Location location)
          Note that for the time being, security groups are not scoped by location in CloudStack, so this will simply return listSecurityGroups().
 org.jclouds.compute.domain.SecurityGroup removeIpPermission(org.jclouds.net.domain.IpPermission ipPermission, org.jclouds.compute.domain.SecurityGroup group)
           
 org.jclouds.compute.domain.SecurityGroup removeIpPermission(org.jclouds.net.domain.IpProtocol protocol, int startPort, int endPort, com.google.common.collect.Multimap<String,String> tenantIdGroupNamePairs, Iterable<String> ipRanges, Iterable<String> groupIds, org.jclouds.compute.domain.SecurityGroup group)
           
 boolean removeSecurityGroup(String id)
           
 boolean supportsGroupIds()
           
 boolean supportsPortRangesForGroups()
           
 boolean supportsTenantIdGroupIdPairs()
           
 boolean supportsTenantIdGroupNamePairs()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

api

protected final CloudStackApi api

groupConverter

protected final com.google.common.base.Function<SecurityGroup,org.jclouds.compute.domain.SecurityGroup> groupConverter

groupCreator

protected final com.google.common.cache.LoadingCache<ZoneAndName,SecurityGroup> groupCreator

namingConvention

protected final org.jclouds.compute.functions.GroupNamingConvention.Factory namingConvention

locations

protected final com.google.common.base.Supplier<Set<? extends org.jclouds.domain.Location>> locations

blockUntilJobCompletesAndReturnResult

protected final BlockUntilJobCompletesAndReturnResult blockUntilJobCompletesAndReturnResult

jobComplete

protected final com.google.common.base.Predicate<String> jobComplete
Constructor Detail

CloudStackSecurityGroupExtension

@Inject
public CloudStackSecurityGroupExtension(CloudStackApi api,
                                               com.google.common.base.Function<SecurityGroup,org.jclouds.compute.domain.SecurityGroup> groupConverter,
                                               com.google.common.cache.LoadingCache<ZoneAndName,SecurityGroup> groupCreator,
                                               org.jclouds.compute.functions.GroupNamingConvention.Factory namingConvention,
                                               com.google.common.base.Supplier<Set<? extends org.jclouds.domain.Location>> locations,
                                               BlockUntilJobCompletesAndReturnResult blockUntilJobCompletesAndReturnResult,
                                               com.google.common.base.Predicate<String> jobComplete)
Method Detail

listSecurityGroups

public Set<org.jclouds.compute.domain.SecurityGroup> listSecurityGroups()
Specified by:
listSecurityGroups in interface org.jclouds.compute.extensions.SecurityGroupExtension

listSecurityGroupsInLocation

public Set<org.jclouds.compute.domain.SecurityGroup> listSecurityGroupsInLocation(org.jclouds.domain.Location location)
Note that for the time being, security groups are not scoped by location in CloudStack, so this will simply return listSecurityGroups().

Specified by:
listSecurityGroupsInLocation in interface org.jclouds.compute.extensions.SecurityGroupExtension
Parameters:
location -
Returns:
security groups

listSecurityGroupsForNode

public Set<org.jclouds.compute.domain.SecurityGroup> listSecurityGroupsForNode(String id)
Specified by:
listSecurityGroupsForNode in interface org.jclouds.compute.extensions.SecurityGroupExtension

getSecurityGroupById

public org.jclouds.compute.domain.SecurityGroup getSecurityGroupById(String id)
Specified by:
getSecurityGroupById in interface org.jclouds.compute.extensions.SecurityGroupExtension

createSecurityGroup

public org.jclouds.compute.domain.SecurityGroup createSecurityGroup(String name,
                                                                    org.jclouds.domain.Location location)
Specified by:
createSecurityGroup in interface org.jclouds.compute.extensions.SecurityGroupExtension

removeSecurityGroup

public boolean removeSecurityGroup(String id)
Specified by:
removeSecurityGroup in interface org.jclouds.compute.extensions.SecurityGroupExtension

addIpPermission

public org.jclouds.compute.domain.SecurityGroup addIpPermission(org.jclouds.net.domain.IpPermission ipPermission,
                                                                org.jclouds.compute.domain.SecurityGroup group)
Specified by:
addIpPermission in interface org.jclouds.compute.extensions.SecurityGroupExtension

addIpPermission

public org.jclouds.compute.domain.SecurityGroup addIpPermission(org.jclouds.net.domain.IpProtocol protocol,
                                                                int startPort,
                                                                int endPort,
                                                                com.google.common.collect.Multimap<String,String> tenantIdGroupNamePairs,
                                                                Iterable<String> ipRanges,
                                                                Iterable<String> groupIds,
                                                                org.jclouds.compute.domain.SecurityGroup group)
Specified by:
addIpPermission in interface org.jclouds.compute.extensions.SecurityGroupExtension

removeIpPermission

public org.jclouds.compute.domain.SecurityGroup removeIpPermission(org.jclouds.net.domain.IpPermission ipPermission,
                                                                   org.jclouds.compute.domain.SecurityGroup group)
Specified by:
removeIpPermission in interface org.jclouds.compute.extensions.SecurityGroupExtension

removeIpPermission

public org.jclouds.compute.domain.SecurityGroup removeIpPermission(org.jclouds.net.domain.IpProtocol protocol,
                                                                   int startPort,
                                                                   int endPort,
                                                                   com.google.common.collect.Multimap<String,String> tenantIdGroupNamePairs,
                                                                   Iterable<String> ipRanges,
                                                                   Iterable<String> groupIds,
                                                                   org.jclouds.compute.domain.SecurityGroup group)
Specified by:
removeIpPermission in interface org.jclouds.compute.extensions.SecurityGroupExtension

supportsTenantIdGroupNamePairs

public boolean supportsTenantIdGroupNamePairs()
Specified by:
supportsTenantIdGroupNamePairs in interface org.jclouds.compute.extensions.SecurityGroupExtension

supportsTenantIdGroupIdPairs

public boolean supportsTenantIdGroupIdPairs()
Specified by:
supportsTenantIdGroupIdPairs in interface org.jclouds.compute.extensions.SecurityGroupExtension

supportsGroupIds

public boolean supportsGroupIds()
Specified by:
supportsGroupIds in interface org.jclouds.compute.extensions.SecurityGroupExtension

supportsPortRangesForGroups

public boolean supportsPortRangesForGroups()
Specified by:
supportsPortRangesForGroups in interface org.jclouds.compute.extensions.SecurityGroupExtension


Copyright © 2009-2014 The Apache Software Foundation. All Rights Reserved.