Merge pull request #246 from jamiehannaford/os-neutron-fix
Fixes to Neutron LBaaS
diff --git a/acceptance/openstack/compute/v2/flavors_test.go b/acceptance/openstack/compute/v2/flavors_test.go
index 9c8e322..cf547f2 100644
--- a/acceptance/openstack/compute/v2/flavors_test.go
+++ b/acceptance/openstack/compute/v2/flavors_test.go
@@ -1,4 +1,4 @@
-// +build acceptance
+// +build acceptance compute flavors
package v2
diff --git a/acceptance/openstack/compute/v2/images_test.go b/acceptance/openstack/compute/v2/images_test.go
index 6166fc8..ceab22f 100644
--- a/acceptance/openstack/compute/v2/images_test.go
+++ b/acceptance/openstack/compute/v2/images_test.go
@@ -1,4 +1,4 @@
-// +build acceptance
+// +build acceptance compute images
package v2
diff --git a/acceptance/openstack/compute/v2/servers_test.go b/acceptance/openstack/compute/v2/servers_test.go
index cb413c1..2c47a86 100644
--- a/acceptance/openstack/compute/v2/servers_test.go
+++ b/acceptance/openstack/compute/v2/servers_test.go
@@ -1,4 +1,4 @@
-// +build acceptance
+// +build acceptance compute servers
package v2
diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/common.go b/acceptance/openstack/networking/v2/extensions/lbaas/common.go
index a9db1af..27dfe5f 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/common.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/common.go
@@ -61,7 +61,7 @@
func CreateMonitor(t *testing.T) string {
m, err := monitors.Create(base.Client, monitors.CreateOpts{
- Delay: 5,
+ Delay: 10,
Timeout: 10,
MaxRetries: 3,
Type: monitors.TypeHTTP,
diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go b/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go
index 57e860c..9056fff 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go
@@ -51,7 +51,7 @@
}
func updateMonitor(t *testing.T, monitorID string) {
- opts := monitors.UpdateOpts{Delay: 5, Timeout: 10, MaxRetries: 3}
+ opts := monitors.UpdateOpts{Delay: 10, Timeout: 10, MaxRetries: 3}
m, err := monitors.Update(base.Client, monitorID, opts).Extract()
th.AssertNoErr(t, err)
diff --git a/acceptance/openstack/networking/v2/extensions/security_test.go b/acceptance/openstack/networking/v2/extensions/security_test.go
index fc9227f..33c9c4b 100644
--- a/acceptance/openstack/networking/v2/extensions/security_test.go
+++ b/acceptance/openstack/networking/v2/extensions/security_test.go
@@ -60,6 +60,9 @@
// delete security group rule
deleteSecRule(t, ruleID)
+
+ // delete security group
+ deleteSecGroup(t, groupID)
}
func createSecGroup(t *testing.T) string {
diff --git a/openstack/networking/v2/extensions/lbaas/monitors/requests.go b/openstack/networking/v2/extensions/lbaas/monitors/requests.go
index 9f8ac9a..bbcce23 100644
--- a/openstack/networking/v2/extensions/lbaas/monitors/requests.go
+++ b/openstack/networking/v2/extensions/lbaas/monitors/requests.go
@@ -64,6 +64,7 @@
errMaxRetriesRequired = fmt.Errorf("MaxRetries is required")
errURLPathRequired = fmt.Errorf("URL path is required")
errExpectedCodesRequired = fmt.Errorf("ExpectedCodes is required")
+ errDelayMustGETimeout = fmt.Errorf("Delay must be greater than or equal to timeout")
)
// CreateOpts contains all the values needed to create a new health monitor.
@@ -141,6 +142,9 @@
res.Err = errExpectedCodesRequired
}
}
+ if opts.Delay < opts.Timeout {
+ res.Err = errDelayMustGETimeout
+ }
if res.Err != nil {
return res
}
@@ -227,6 +231,12 @@
// Update is an operation which modifies the attributes of the specified monitor.
func Update(c *gophercloud.ServiceClient, id string, opts UpdateOpts) UpdateResult {
+ var res UpdateResult
+
+ if opts.Delay > 0 && opts.Timeout > 0 && opts.Delay < opts.Timeout {
+ res.Err = errDelayMustGETimeout
+ }
+
type monitor struct {
Delay int `json:"delay"`
Timeout int `json:"timeout"`
@@ -251,8 +261,6 @@
AdminStateUp: opts.AdminStateUp,
}}
- var res UpdateResult
-
_, res.Err = perigee.Request("PUT", resourceURL(c, id), perigee.Options{
MoreHeaders: c.Provider.AuthenticatedHeaders(),
ReqBody: &reqBody,
diff --git a/openstack/networking/v2/extensions/lbaas/monitors/requests_test.go b/openstack/networking/v2/extensions/lbaas/monitors/requests_test.go
index 5c5a1d2..79a99bf 100644
--- a/openstack/networking/v2/extensions/lbaas/monitors/requests_test.go
+++ b/openstack/networking/v2/extensions/lbaas/monitors/requests_test.go
@@ -100,6 +100,30 @@
}
}
+func TestDelayMustBeGreaterOrEqualThanTimeout(t *testing.T) {
+ _, err := Create(fake.ServiceClient(), CreateOpts{
+ Type: "HTTP",
+ Delay: 1,
+ Timeout: 10,
+ MaxRetries: 5,
+ URLPath: "/check",
+ ExpectedCodes: "200-299",
+ }).Extract()
+
+ if err == nil {
+ t.Fatalf("Expected error, got none")
+ }
+
+ _, err = Update(fake.ServiceClient(), "453105b9-1754-413f-aab1-55f1af620750", UpdateOpts{
+ Delay: 1,
+ Timeout: 10,
+ }).Extract()
+
+ if err == nil {
+ t.Fatalf("Expected error, got none")
+ }
+}
+
func TestCreate(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()