You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jclouds.apache.org by Andrew Bayer <no...@github.com> on 2013/06/15 00:11:58 UTC

[jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

- Adds the SecurityGroupExtension to compute, with tests and stub
support.
- Gets everything else to actually build against this.
- Unifies on compute&#39;s IpPermission/IpProtocol, eliminating EC2&#39;s.
- Converters from EC2/Nova/CloudStack SecurityGroup (and rules, for
the latter two) to the compute SecurityGroup (and rules, etc).
- EC2SecurityGroupExtension and tests.
You can merge this Pull Request by running:

  git pull https://github.com/abayer/jclouds-1 jclouds-101

Or you can view, comment on it, or merge it online at:

  https://github.com/jclouds/jclouds/pull/33

-- Commit Summary --

  * JCLOUDS-101 - Add SecurityGroupExtension for compute

-- File Changes --

    M apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/CloudStackComputeService.java (6)
    M apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/config/CloudStackComputeServiceContextModule.java (8)
    A apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/CloudStackSecurityGroupToSecurityGroup.java (74)
    A apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/IngressRuleToIpPermission.java (55)
    A apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/functions/CloudStackSecurityGroupToSecurityGroupTest.java (80)
    A apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/functions/IngressRuleToIpPermissionTest.java (61)
    M apis/ec2/src/main/clojure/org/jclouds/ec2/security_group2.clj (6)
    M apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionToIndexedFormParams.java (2)
    M apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java (2)
    M apis/ec2/src/main/java/org/jclouds/ec2/compute/EC2ComputeService.java (6)
    M apis/ec2/src/main/java/org/jclouds/ec2/compute/config/EC2ComputeServiceContextModule.java (5)
    M apis/ec2/src/main/java/org/jclouds/ec2/compute/config/EC2ComputeServiceDependenciesModule.java (8)
    A apis/ec2/src/main/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtension.java (385)
    A apis/ec2/src/main/java/org/jclouds/ec2/compute/functions/EC2SecurityGroupToSecurityGroup.java (95)
    M apis/ec2/src/main/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeeded.java (2)
    D apis/ec2/src/main/java/org/jclouds/ec2/domain/IpPermission.java (189)
    M apis/ec2/src/main/java/org/jclouds/ec2/domain/SecurityGroup.java (1)
    M apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupAsyncClient.java (2)
    M apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupClient.java (2)
    M apis/ec2/src/main/java/org/jclouds/ec2/util/IpPermissions.java (22)
    M apis/ec2/src/main/java/org/jclouds/ec2/xml/IpPermissionHandler.java (8)
    M apis/ec2/src/test/java/org/jclouds/ec2/CloudApplicationArchitecturesEC2ClientLiveTest.java (2)
    M apis/ec2/src/test/java/org/jclouds/ec2/EBSBootEC2ClientLiveTest.java (2)
    M apis/ec2/src/test/java/org/jclouds/ec2/compute/EC2ComputeServiceLiveTest.java (2)
    A apis/ec2/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionExpectTest.java (585)
    R apis/ec2/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionLiveTest.java (37)
    A apis/ec2/src/test/java/org/jclouds/ec2/compute/functions/EC2SecurityGroupToSecurityGroupTest.java (85)
    M apis/ec2/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java (2)
    M apis/ec2/src/test/java/org/jclouds/ec2/services/SecurityGroupAsyncClientTest.java (2)
    M apis/ec2/src/test/java/org/jclouds/ec2/services/SecurityGroupClientLiveTest.java (8)
    M apis/ec2/src/test/java/org/jclouds/ec2/util/IpPermissionsTest.java (2)
    M apis/ec2/src/test/java/org/jclouds/ec2/xml/DescribeSecurityGroupsResponseHandlerTest.java (10)
    A apis/ec2/src/test/resources/delete_securitygroup.xml (4)
    A apis/ec2/src/test/resources/describe_instances_running_securitygroups.xml (74)
    M apis/ec2/src/test/resources/describe_securitygroups.xml (4)
    M apis/ec2/src/test/resources/describe_securitygroups_empty.xml (2)
    A apis/ec2/src/test/resources/describe_securitygroups_extension_cidr.xml (24)
    A apis/ec2/src/test/resources/describe_securitygroups_extension_group.xml (26)
    A apis/ec2/src/test/resources/describe_securitygroups_extension_new.xml (27)
    A apis/ec2/src/test/resources/describe_securitygroups_extension_single.xml (12)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeService.java (6)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java (11)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/CreateSecurityGroupIfNeeded.java (2)
    A apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroup.java (74)
    A apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermission.java (57)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/Ingress.java (1)
    D apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/IpProtocol.java (39)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/SecurityGroupRule.java (1)
    A apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroupTest.java (112)
    A apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermissionTest.java (86)
    M apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java (2)
    M apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiLiveTest.java (2)
    M apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/parse/ParseComputeServiceTypicalSecurityGroupTest.java (2)
    M apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/parse/ParseSecurityGroupListTest.java (2)
    M apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/parse/ParseSecurityGroupTest.java (2)
    M common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/TerremarkVCloudComputeService.java (5)
    M compute/src/main/java/org/jclouds/compute/ComputeService.java (9)
    M compute/src/main/java/org/jclouds/compute/config/BaseComputeServiceContextModule.java (7)
    M compute/src/main/java/org/jclouds/compute/domain/ComputeType.java (2)
    A compute/src/main/java/org/jclouds/compute/domain/SecurityGroup.java (80)
    A compute/src/main/java/org/jclouds/compute/domain/SecurityGroupBuilder.java (122)
    A compute/src/main/java/org/jclouds/compute/extensions/SecurityGroupExtension.java (180)
    M compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java (12)
    M compute/src/main/java/org/jclouds/compute/options/TemplateOptions.java (60)
    M compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java (34)
    M compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceContextModule.java (10)
    M compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceDependenciesModule.java (58)
    A compute/src/main/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtension.java (256)
    M compute/src/main/java/org/jclouds/net/domain/IpPermission.java (22)
    M compute/src/main/java/org/jclouds/net/domain/IpProtocol.java (12)
    A compute/src/test/java/org/jclouds/compute/extensions/internal/BaseSecurityGroupExtensionLiveTest.java (348)
    A compute/src/test/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtensionIntegrationTest.java (70)
    M compute/src/test/java/org/jclouds/net/util/IpPermissionsTest.java (14)
    M core/src/main/java/org/jclouds/util/Strings2.java (9)
    M core/src/test/java/org/jclouds/util/Strings2Test.java (8)
    M providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeService.java (6)
    M providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceContextModule.java (6)
    M providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceDependenciesModule.java (8)
    M providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClient.java (2)
    M providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClient.java (2)
    M providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceLiveTest.java (2)
    M providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/parse/DescribeSecurityGroupsResponseTest.java (6)
    M providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClientTest.java (4)
    M providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClientLiveTest.java (6)
    M providers/gogrid/src/main/java/org/jclouds/gogrid/compute/GoGridComputeService.java (5)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/33.patch
https://github.com/jclouds/jclouds/pull/33.diff


Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> +
> +      groupCreator.getUnchecked(regionAndName);
> +
> +      return getSecurityGroupById(regionAndName.slashEncode());
> +   }
> +
> +   @Override
> +   public boolean removeSecurityGroup(String id) {
> +      checkNotNull(id, "id");
> +      String[] parts = AWSUtils.parseHandle(id);
> +      String region = parts[0];
> +      String groupName = parts[1];
> +      
> +      if (client.getSecurityGroupServices().describeSecurityGroupsInRegion(region, groupName).size() > 0) {
> +         client.getSecurityGroupServices().deleteSecurityGroupInRegion(region, groupName);
> +         // TODO: test this clear happens

TODO for this PR?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4940816

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds #143](https://buildhive.cloudbees.com/job/jclouds/job/jclouds/143/) FAILURE
Looks like there's a problem with this pull request
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20081133

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> +   }
> +
> +   @Override
> +   public IpPermission apply(SecurityGroupRule rule) {
> +      IpPermission.Builder builder = IpPermission.builder();
> +      builder.ipProtocol(rule.getIpProtocol());
> +      builder.fromPort(rule.getFromPort());
> +      builder.toPort(rule.getToPort());
> +      if (rule.getGroup() != null) 
> +         builder.tenantIdGroupNamePair(rule.getGroup().getTenantId(), rule.getGroup().getName());
> +      if (rule.getIpRange() != null)
> +         builder.cidrBlock(rule.getIpRange());
> +      
> +      return builder.build();
> +   }
> +}

new line

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4941200

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Bayer <no...@github.com>.
Closed #33.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-pull-requests #18](https://jclouds.ci.cloudbees.com/job/jclouds-pull-requests/18/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20083159

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> @@ -31,6 +32,7 @@
>  				</item>
>  			</ipPermissions>
>  			<groupName>jclouds#cluster#world</groupName>
> +                        <groupId>sg-3c6ef654</groupId>

formatting seems off

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4941142

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Bayer <no...@github.com>.
Newlines are for chumps! also, I've actually committed this, so feel free to do a PR fixing my formatting. =)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20200162

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #455](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/455/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-19573405

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Bayer <no...@github.com>.
Whoopsie - forgot to rebase, which is why I'm pushing this guy and JCLOUDS-138 over the finish line now anyway - my backlog of big-ass commits that end up rewriting half of each other kinda needs to shrink. =)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20080034

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Bayer <no...@github.com>.
> +   public Set<SecurityGroup> listSecurityGroups() {
> +      Iterable<? extends org.jclouds.ec2.domain.SecurityGroup> rawGroups = pollSecurityGroups();
> +      Iterable<SecurityGroup> groups = transform(filter(rawGroups, notNull()),
> +                                                 groupConverter);
> +      return ImmutableSet.copyOf(groups);
> +   }
> +
> +
> +   @Override
> +   public Set<SecurityGroup> listSecurityGroupsInLocation(final Location location) {
> +      String region = AWSUtils.getRegionFromLocationOrNull(location);
> +      if (region != null) {
> +         return listSecurityGroupsInLocation(region);
> +      } else {
> +         return ImmutableSet.of();
> +      }

Fine by me. Pretty sure I was ripping something else off to do this in the first place, so it's not a problem to switch it. =)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4736765

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #478](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/478/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20083611

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> @@ -23,6 +23,7 @@
>  					<ipRanges />
>  					<groups>
>  						<item>
> +                                                  <groupId>sg-3c6ef654</groupId>

formatting seems off

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4941136

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> +      this.ruleToPermission = ruleToPermission;
> +   }
> +
> +   @Override
> +   public SecurityGroup apply(org.jclouds.openstack.nova.v2_0.domain.SecurityGroup group) {
> +      SecurityGroupBuilder builder = new SecurityGroupBuilder();
> +      
> +      builder.id(group.getId());
> +      builder.providerId(group.getId());
> +      builder.ownerId(group.getTenantId());
> +      builder.name(group.getName());
> +      builder.ipPermissions(transform(group.getRules(), ruleToPermission));
> +      
> +      return builder.build();
> +   }
> +}

new line

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4941174

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #477](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/477/) FAILURE
Looks like there's a problem with this pull request

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20078364

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Phillips <no...@github.com>.
> +   public Set<SecurityGroup> listSecurityGroups() {
> +      Iterable<? extends org.jclouds.ec2.domain.SecurityGroup> rawGroups = pollSecurityGroups();
> +      Iterable<SecurityGroup> groups = transform(filter(rawGroups, notNull()),
> +                                                 groupConverter);
> +      return ImmutableSet.copyOf(groups);
> +   }
> +
> +
> +   @Override
> +   public Set<SecurityGroup> listSecurityGroupsInLocation(final Location location) {
> +      String region = AWSUtils.getRegionFromLocationOrNull(location);
> +      if (region != null) {
> +         return listSecurityGroupsInLocation(region);
> +      } else {
> +         return ImmutableSet.of();
> +      }

Quick style question (also applies below): what do you feel about making the "exceptional case" (`region == null`, I'm guessing?) the bit you handle in the `if...` clause, e.g.
```
if (region == null) {
  return ImmutableSet.of(); // handle special case
}
return listSecurityGroupsInLocation(region);
```
?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4736710

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Bayer <no...@github.com>.
> +import com.google.inject.Inject;
> +
> +
> +/**
> + * A function for transforming a CloudStack-specific SecurityGroup into a generic
> + * SecurityGroup object.
> + * 
> + * @author Andrew Bayer
> + */
> +@Singleton
> +public class CloudStackSecurityGroupToSecurityGroup implements Function<org.jclouds.cloudstack.domain.SecurityGroup, SecurityGroup> {
> +   @Resource
> +   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
> +   protected Logger logger = Logger.NULL;
> +
> +   protected Function<IngressRule,IpPermission> ruleToPermission;

Final sounds fine. Will fix.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4736651

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-pull-requests #17](https://jclouds.ci.cloudbees.com/job/jclouds-pull-requests/17/) FAILURE
Looks like there's a problem with this pull request

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-20078381

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds #103](https://buildhive.cloudbees.com/job/jclouds/job/jclouds/103/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-19572019

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Phillips <no...@github.com>.
> @@ -31,6 +32,7 @@
>  				</item>
>  			</ipPermissions>
>  			<groupName>jclouds#cluster#world</groupName>
> +                        <groupId>sg-3c6ef654</groupId>

I wasn't aware of the new `mvn zack:checkstyle` goal ;-))

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4941248

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #445](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/445/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-19486866

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Andrew Phillips <no...@github.com>.
> +import com.google.inject.Inject;
> +
> +
> +/**
> + * A function for transforming a CloudStack-specific SecurityGroup into a generic
> + * SecurityGroup object.
> + * 
> + * @author Andrew Bayer
> + */
> +@Singleton
> +public class CloudStackSecurityGroupToSecurityGroup implements Function<org.jclouds.cloudstack.domain.SecurityGroup, SecurityGroup> {
> +   @Resource
> +   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
> +   protected Logger logger = Logger.NULL;
> +
> +   protected Function<IngressRule,IpPermission> ruleToPermission;

`final` or is this meant to be settable in other ways?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4736634

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> +   protected Logger logger = Logger.NULL;
> +   
> +   public IngressRuleToIpPermission() {
> +   }
> +
> +   @Override
> +   public IpPermission apply(IngressRule rule) {
> +      IpPermission.Builder builder = IpPermission.builder();
> +      builder.ipProtocol(IpProtocol.fromValue(rule.getProtocol()));
> +      builder.fromPort(rule.getStartPort());
> +      builder.toPort(rule.getEndPort());
> +      builder.cidrBlock(rule.getCIDR());
> +      
> +      return builder.build();
> +   }
> +}

new line missing

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4940619

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #458](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/458/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-19583376

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds #108](https://buildhive.cloudbees.com/job/jclouds/job/jclouds/108/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-19582696

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds #92](https://buildhive.cloudbees.com/job/jclouds/job/jclouds/92/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33#issuecomment-19486744

Re: [jclouds] JCLOUDS-101 - Add SecurityGroupExtension for compute (#33)

Posted by Zack Shoylev <no...@github.com>.
> +      this.ruleToPermission = ruleToPermission;
> +   }
> +
> +   @Override
> +   public SecurityGroup apply(org.jclouds.cloudstack.domain.SecurityGroup group) {
> +      SecurityGroupBuilder builder = new SecurityGroupBuilder();
> +      
> +      builder.id(group.getId());
> +      builder.providerId(group.getId());
> +      builder.name(group.getName());
> +      builder.ownerId(group.getAccount());
> +      builder.ipPermissions(transform(group.getIngressRules(), ruleToPermission));
> +      
> +      return builder.build();
> +   }
> +}

new line missing

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/33/files#r4940574