Class EC2SecurityGroupExtension

    • Field Detail

      • client

        protected final EC2Api client
      • userExecutor

        protected final com.google.common.util.concurrent.ListeningExecutorService userExecutor
      • regions

        protected final com.google.common.base.Supplier<Set<String>> regions
      • locations

        protected final com.google.common.base.Supplier<Set<? extends Location>> locations
      • groupCreator

        protected final com.google.common.cache.LoadingCache<RegionAndName,​String> groupCreator
    • Constructor Detail

      • EC2SecurityGroupExtension

        @Inject
        public EC2SecurityGroupExtension​(EC2Api client,
                                         @Named("jclouds.user-threads")
                                         com.google.common.util.concurrent.ListeningExecutorService userExecutor,
                                         com.google.common.base.Supplier<Set<String>> regions,
                                         com.google.common.base.Function<SecurityGroup,​SecurityGroup> groupConverter,
                                         com.google.common.base.Supplier<Set<? extends Location>> locations,
                                         @Named("SECURITY")
                                         com.google.common.cache.LoadingCache<RegionAndName,​String> groupCreator,
                                         GroupNamingConvention.Factory namingConvention)
    • Method Detail

      • removeSecurityGroup

        public boolean removeSecurityGroup​(String id)
        Description copied from interface: SecurityGroupExtension
        Remove an existing @{link SecurityGroup}, and its permissions.
        Specified by:
        removeSecurityGroup in interface SecurityGroupExtension
        Parameters:
        id - The id of the SecurityGroup to delete.
        Returns:
        true if we were able to remove the group, false otherwise.
      • addIpPermission

        public SecurityGroup addIpPermission​(IpPermission ipPermission,
                                             SecurityGroup group)
        Description copied from interface: SecurityGroupExtension
        Add a @{link IpPermission} to an existing @{link SecurityGroup}. Applies the permission to the security group on the provider.
        Specified by:
        addIpPermission in interface SecurityGroupExtension
        group - The SecurityGroup to add the permission to.
        Returns:
        The SecurityGroup with the new permission added, after the permission has been applied on the provider.
      • addIpPermission

        public SecurityGroup addIpPermission​(IpProtocol protocol,
                                             int startPort,
                                             int endPort,
                                             com.google.common.collect.Multimap<String,​String> tenantIdGroupNamePairs,
                                             Iterable<String> ipRanges,
                                             Iterable<String> groupIds,
                                             SecurityGroup group)
        Description copied from interface: SecurityGroupExtension
        Add a @{link IpPermission} to an existing @{link SecurityGroup}, based on the parameters given. Applies the permission to the security group on the provider.
        Specified by:
        addIpPermission in interface SecurityGroupExtension
        Parameters:
        protocol - The @{link IpProtocol} for the permission.
        startPort - The first port in the range to be opened, or -1 for ICMP.
        endPort - The last port in the range to be opened, or -1 for ICMP.
        tenantIdGroupNamePairs - source of traffic allowed is on basis of another group in a tenant, as opposed to by cidr
        ipRanges - An Iterable of Strings representing the IP range(s) the permission should allow.
        groupIds - An Iterable of @{link SecurityGroup} IDs this permission should allow.
        group - The SecurityGroup to add the permission to.
        Returns:
        The SecurityGroup with the new permission added, after the permission has been applied on the provider.
      • removeIpPermission

        public SecurityGroup removeIpPermission​(IpPermission ipPermission,
                                                SecurityGroup group)
        Description copied from interface: SecurityGroupExtension
        Remove a @{link IpPermission} from an existing @{link SecurityGroup}. Removes the permission from the security group on the provider.
        Specified by:
        removeIpPermission in interface SecurityGroupExtension
        group - The SecurityGroup to remove the permission from.
        Returns:
        The SecurityGroup with the permission removed, after the permission has been removed on the provider.
      • removeIpPermission

        public SecurityGroup removeIpPermission​(IpProtocol protocol,
                                                int startPort,
                                                int endPort,
                                                com.google.common.collect.Multimap<String,​String> tenantIdGroupNamePairs,
                                                Iterable<String> ipRanges,
                                                Iterable<String> groupIds,
                                                SecurityGroup group)
        Description copied from interface: SecurityGroupExtension
        Remove a @{link IpPermission} from an existing @{link SecurityGroup}, based on the parameters given. Removes the permission from the security group on the provider.
        Specified by:
        removeIpPermission in interface SecurityGroupExtension
        Parameters:
        protocol - The @{link IpProtocol} for the permission.
        startPort - The first port in the range to be opened, or -1 for ICMP.
        endPort - The last port in the range to be opened, or -1 for ICMP.
        tenantIdGroupNamePairs - source of traffic allowed is on basis of another group in a tenant, as opposed to by cidr
        ipRanges - An Iterable of Strings representing the IP range(s) the permission should allow.
        groupIds - An Iterable of @{link SecurityGroup} IDs this permission should allow.
        group - The SecurityGroup to remove the permission from.
        Returns:
        The SecurityGroup with the permission removed, after the permission has been removed from the provider.
      • allSecurityGroupsInRegion

        protected com.google.common.base.Function<String,​Set<? extends SecurityGroup>> allSecurityGroupsInRegion()
      • findLocationWithId

        protected Location findLocationWithId​(String locationId)