Merge lp:~gz/goose/novaservice_preserve_negative_ports into lp:goose

Proposed by Martin Packman
Status: Merged
Approved by: Martin Packman
Approved revision: 85
Merged at revision: 86
Proposed branch: lp:~gz/goose/novaservice_preserve_negative_ports
Merge into: lp:goose
Diff against target: 59 lines (+34/-2)
2 files modified
testservices/novaservice/service.go (+2/-2)
testservices/novaservice/service_test.go (+32/-0)
To merge this branch: bzr merge lp:~gz/goose/novaservice_preserve_negative_ports
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+159519@code.launchpad.net

Commit message

Preserve negative ports on novaservice

Description of the change

Preserve negative ports on novaservice

Creating a security group rule with the value -1 for the ports has a special
meaning in some cases, the test service needs to preserve these values rather
than treating it as the ports not having been set.

https://codereview.appspot.com/8796045/

To post a comment you must log in.
Revision history for this message
Martin Packman (gz) wrote :

Reviewers: mp+159519_code.launchpad.net,

Message:
Please take a look.

Description:
Preserve negative ports on novaservice

Creating a security group rule with the value -1 for the ports has a
special
meaning in some cases, the test service needs to preserve these values
rather
than treating it as the ports not having been set.

https://code.launchpad.net/~gz/goose/novaservice_preserve_negative_ports/+merge/159519

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/8796045/

Affected files:
   A [revision details]
   M testservices/novaservice/service.go
   M testservices/novaservice/service_test.go

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-20130328125516-y1zpoibtfvl873gg
+New revision: <email address hidden>

Index: testservices/novaservice/service.go
=== modified file 'testservices/novaservice/service.go'
--- testservices/novaservice/service.go 2013-02-25 07:16:32 +0000
+++ testservices/novaservice/service.go 2013-04-17 22:27:24 +0000
@@ -458,10 +458,10 @@
     Name: sourceGroup.Name,
    }
   }
- if rule.FromPort > 0 {
+ if rule.FromPort != 0 {
    newrule.FromPort = &rule.FromPort
   }
- if rule.ToPort > 0 {
+ if rule.ToPort != 0 {
    newrule.ToPort = &rule.ToPort
   }
   if rule.IPProtocol != "" {

Index: testservices/novaservice/service_test.go
=== modified file 'testservices/novaservice/service_test.go'
--- testservices/novaservice/service_test.go 2013-02-08 17:21:44 +0000
+++ testservices/novaservice/service_test.go 2013-04-17 22:27:24 +0000
@@ -789,6 +789,38 @@
   c.Assert(*gr, DeepEquals, group)
  }

+func (s *NovaSuite) TestAddSecurityGroupRuleKeepsNegativePort(c *C) {
+ group := nova.SecurityGroup{
+ Id: 1,
+ Name: "test",
+ TenantId: s.service.TenantId,
+ }
+ s.createGroup(c, group)
+ defer s.deleteGroup(c, group)
+ ri := nova.RuleInfo{
+ IPProtocol: "icmp",
+ FromPort: -1,
+ ToPort: -1,
+ Cidr: "0.0.0.0/0",
+ ParentGroupId: group.Id,
+ }
+ rule := nova.SecurityGroupRule{
+ Id: 10,
+ ParentGroupId: group.Id,
+ FromPort: &ri.FromPort,
+ ToPort: &ri.ToPort,
+ IPProtocol: &ri.IPProtocol,
+ IPRange: map[string]string{"cidr": "0.0.0.0/0"},
+ }
+ s.ensureNoRule(c, rule)
+ err := s.service.addSecurityGroupRule(rule.Id, ri)
+ c.Assert(err, IsNil)
+ defer s.deleteRule(c, rule)
+ returnedGroup, err := s.service.securityGroup(group.Id)
+ c.Assert(err, IsNil)
+ c.Assert(returnedGroup.Rules, DeepEquals, []nova.SecurityGroupRule{rule})
+}
+
  func (s *NovaSuite) TestRemoveSecurityGroupRuleTwiceFails(c *C) {
   group := nova.SecurityGroup{Id: 1}
   s.createGroup(c, group)

Revision history for this message
Ian Booth (wallyworld) wrote :
Revision history for this message
Dimiter Naydenov (dimitern) wrote :

LGTM, ah I knew that, but forgot to bring it up when the original code
landed. Thanks!

https://codereview.appspot.com/8796045/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'testservices/novaservice/service.go'
2--- testservices/novaservice/service.go 2013-02-25 07:16:32 +0000
3+++ testservices/novaservice/service.go 2013-04-17 22:35:29 +0000
4@@ -458,10 +458,10 @@
5 Name: sourceGroup.Name,
6 }
7 }
8- if rule.FromPort > 0 {
9+ if rule.FromPort != 0 {
10 newrule.FromPort = &rule.FromPort
11 }
12- if rule.ToPort > 0 {
13+ if rule.ToPort != 0 {
14 newrule.ToPort = &rule.ToPort
15 }
16 if rule.IPProtocol != "" {
17
18=== modified file 'testservices/novaservice/service_test.go'
19--- testservices/novaservice/service_test.go 2013-02-08 17:21:44 +0000
20+++ testservices/novaservice/service_test.go 2013-04-17 22:35:29 +0000
21@@ -789,6 +789,38 @@
22 c.Assert(*gr, DeepEquals, group)
23 }
24
25+func (s *NovaSuite) TestAddSecurityGroupRuleKeepsNegativePort(c *C) {
26+ group := nova.SecurityGroup{
27+ Id: 1,
28+ Name: "test",
29+ TenantId: s.service.TenantId,
30+ }
31+ s.createGroup(c, group)
32+ defer s.deleteGroup(c, group)
33+ ri := nova.RuleInfo{
34+ IPProtocol: "icmp",
35+ FromPort: -1,
36+ ToPort: -1,
37+ Cidr: "0.0.0.0/0",
38+ ParentGroupId: group.Id,
39+ }
40+ rule := nova.SecurityGroupRule{
41+ Id: 10,
42+ ParentGroupId: group.Id,
43+ FromPort: &ri.FromPort,
44+ ToPort: &ri.ToPort,
45+ IPProtocol: &ri.IPProtocol,
46+ IPRange: map[string]string{"cidr": "0.0.0.0/0"},
47+ }
48+ s.ensureNoRule(c, rule)
49+ err := s.service.addSecurityGroupRule(rule.Id, ri)
50+ c.Assert(err, IsNil)
51+ defer s.deleteRule(c, rule)
52+ returnedGroup, err := s.service.securityGroup(group.Id)
53+ c.Assert(err, IsNil)
54+ c.Assert(returnedGroup.Rules, DeepEquals, []nova.SecurityGroupRule{rule})
55+}
56+
57 func (s *NovaSuite) TestRemoveSecurityGroupRuleTwiceFails(c *C) {
58 group := nova.SecurityGroup{Id: 1}
59 s.createGroup(c, group)

Subscribers

People subscribed via source and target branches