5
. "launchpad.net/gocheck"
6
"launchpad.net/goose/client"
7
"launchpad.net/goose/identity"
8
"launchpad.net/goose/nova"
9
"launchpad.net/goose/testing/httpsuite"
10
"launchpad.net/goose/testservices/identityservice"
11
"launchpad.net/goose/testservices/novaservice"
12
tool "launchpad.net/goose/tools/secgroup-delete-all"
16
func Test(t *testing.T) {
27
type ToolSuite struct {
31
var _ = Suite(&ToolSuite{})
33
// GZ 2013-01-21: Should require EnvSuite for this, but clashes with HTTPSuite
34
func createNovaClient(auth_url string) *nova.Client {
35
creds := identity.Credentials{
42
osc := client.NewClient(&creds, identity.AuthUserPass, nil)
46
func (s *ToolSuite) makeServices(c *C) *nova.Client {
47
ident := identityservice.NewUserPass()
48
token := ident.AddUser(username, password)
49
// GZ 2013-01-21: Current novaservice double requires magic url like so
50
computeurl := s.Server.URL + "/v2.0/" + tenant
51
ident.AddService(identityservice.Service{
54
[]identityservice.Endpoint{
57
InternalURL: computeurl,
58
PublicURL: computeurl,
62
s.Mux.Handle("/tokens", ident)
63
comp := novaservice.New("unused.invalid", "v2.0", token, tenant)
65
return createNovaClient(s.Server.URL)
68
func (s *ToolSuite) TestNoGroups(c *C) {
69
nova := s.makeServices(c)
71
err := tool.DeleteAll(&buf, nova)
73
c.Assert(string(buf.Bytes()), Equals, "No security groups to delete.\n")
76
func (s *ToolSuite) TestTwoGroups(c *C) {
77
nova := s.makeServices(c)
78
nova.CreateSecurityGroup("group-a", "A group")
79
nova.CreateSecurityGroup("group-b", "Another group")
81
err := tool.DeleteAll(&buf, nova)
83
c.Assert(string(buf.Bytes()), Equals, "2 security groups deleted.\n")
86
// GZ 2013-01-21: Should also test undeleteable groups, but can't induce
87
// novaservice errors currently.