Skip to content

Commit

Permalink
Compute v2: Fix EOF errors in compute secgroups
Browse files Browse the repository at this point in the history
  • Loading branch information
jtopjian committed Mar 9, 2018
1 parent d2fe5bf commit 4a1a047
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 13 deletions.
10 changes: 9 additions & 1 deletion acceptance/openstack/compute/v2/compute.go
Original file line number Diff line number Diff line change
Expand Up @@ -681,7 +681,15 @@ func DeleteServer(t *testing.T, client *gophercloud.ServiceClient, server *serve
t.Fatalf("Unable to delete server %s: %s", server.ID, err)
}

t.Logf("Deleted server: %s", server.ID)
if err := WaitForComputeStatus(client, server, "DELETED"); err != nil {
if _, ok := err.(gophercloud.ErrDefault404); ok {
t.Logf("Deleted server: %s", server.ID)
return
}
t.Fatalf("Error deleting server %s: %s", server.ID, err)
}

t.Fatalf("Could not delete server: %s", server.ID)
}

// DeleteServerGroup will delete a server group. A fatal error will occur if
Expand Down
24 changes: 16 additions & 8 deletions acceptance/openstack/compute/v2/secgroup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/gophercloud/gophercloud/acceptance/clients"
"github.com/gophercloud/gophercloud/acceptance/tools"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/secgroups"
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
)

func TestSecGroupsList(t *testing.T) {
Expand Down Expand Up @@ -105,12 +106,6 @@ func TestSecGroupsAddGroupToServer(t *testing.T) {
t.Fatalf("Unable to create a compute client: %v", err)
}

server, err := CreateServer(t, client)
if err != nil {
t.Fatalf("Unable to create server: %v", err)
}
defer DeleteServer(t, client, server)

securityGroup, err := CreateSecurityGroup(t, client)
if err != nil {
t.Fatalf("Unable to create security group: %v", err)
Expand All @@ -123,15 +118,28 @@ func TestSecGroupsAddGroupToServer(t *testing.T) {
}
defer DeleteSecurityGroupRule(t, client, rule)

server, err := CreateServer(t, client)
if err != nil {
t.Fatalf("Unable to create server: %v", err)
}
defer DeleteServer(t, client, server)

t.Logf("Adding group %s to server %s", securityGroup.ID, server.ID)
err = secgroups.AddServer(client, server.ID, securityGroup.Name).ExtractErr()
if err != nil && err.Error() != "EOF" {
if err != nil {
t.Fatalf("Unable to add group %s to server %s: %s", securityGroup.ID, server.ID, err)
}

server, err = servers.Get(client, server.ID).Extract()
if err != nil {
t.Fatalf("Unable to get server %s: %s", server.ID, err)
}

tools.PrintResource(t, server)

t.Logf("Removing group %s from server %s", securityGroup.ID, server.ID)
err = secgroups.RemoveServer(client, server.ID, securityGroup.Name).ExtractErr()
if err != nil && err.Error() != "EOF" {
if err != nil {
t.Fatalf("Unable to remove group %s from server %s: %s", securityGroup.ID, server.ID, err)
}
}
4 changes: 2 additions & 2 deletions openstack/compute/v2/extensions/secgroups/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,12 @@ func actionMap(prefix, groupName string) map[string]map[string]string {
// AddServer will associate a server and a security group, enforcing the
// rules of the group on the server.
func AddServer(client *gophercloud.ServiceClient, serverID, groupName string) (r AddServerResult) {
_, r.Err = client.Post(serverActionURL(client, serverID), actionMap("add", groupName), &r.Body, nil)
_, r.Err = client.Post(serverActionURL(client, serverID), actionMap("add", groupName), nil, nil)
return
}

// RemoveServer will disassociate a server from a security group.
func RemoveServer(client *gophercloud.ServiceClient, serverID, groupName string) (r RemoveServerResult) {
_, r.Err = client.Post(serverActionURL(client, serverID), actionMap("remove", groupName), &r.Body, nil)
_, r.Err = client.Post(serverActionURL(client, serverID), actionMap("remove", groupName), nil, nil)
return
}
2 changes: 0 additions & 2 deletions openstack/compute/v2/extensions/secgroups/testing/fixtures.go
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,6 @@ func mockAddServerToGroupResponse(t *testing.T, serverID string) {

w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusAccepted)
fmt.Fprintf(w, `{}`)
})
}

Expand All @@ -323,6 +322,5 @@ func mockRemoveServerFromGroupResponse(t *testing.T, serverID string) {

w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusAccepted)
fmt.Fprintf(w, `{}`)
})
}

0 comments on commit 4a1a047

Please sign in to comment.