Add test to list flavors
diff --git a/acceptance/openstack/compute_test.go b/acceptance/openstack/compute_test.go
index d44140b..27386ed 100644
--- a/acceptance/openstack/compute_test.go
+++ b/acceptance/openstack/compute_test.go
@@ -11,43 +11,62 @@
"text/tabwriter"
)
+type testState struct {
+ o identity.AuthOptions
+ a identity.AuthResults
+ sc *identity.ServiceCatalog
+ eps []identity.Endpoint
+ w *tabwriter.Writer
+}
+
+func prepForTest() (*testState, error) {
+ var err error
+
+ ts := new(testState)
+
+ ts.o, err = utils.AuthOptions()
+ if err != nil {
+ return ts, err
+ }
+
+ ts.a, err = identity.Authenticate(ts.o)
+ if err != nil {
+ return ts, err
+ }
+
+ ts.sc, err = identity.GetServiceCatalog(ts.a)
+ if err != nil {
+ return ts, err
+ }
+
+ ts.eps, err = findAllComputeEndpoints(ts.sc)
+ if err != nil {
+ return ts, err
+ }
+
+ ts.w = new(tabwriter.Writer)
+ ts.w.Init(os.Stdout, 2, 8, 2, ' ', 0)
+
+ return ts, nil
+}
+
func TestListServers(t *testing.T) {
- ao, err := utils.AuthOptions()
+ ts, err := prepForTest()
if err != nil {
t.Error(err)
return
}
- a, err := identity.Authenticate(ao)
- if err != nil {
- t.Error(err)
- return
- }
-
- sc, err := identity.GetServiceCatalog(a)
- if err != nil {
- t.Error(err)
- return
- }
-
- eps, err := findAllComputeEndpoints(sc)
- if err != nil {
- t.Error(err)
- return
- }
-
- w := new(tabwriter.Writer)
- w.Init(os.Stdout, 2, 8, 2, ' ', 0)
- fmt.Fprintln(w, "ID\tRegion\tName\tIPv4\tIPv6\t")
+ fmt.Fprintln(ts.w, "ID\tRegion\tName\tIPv4\tIPv6\t")
region := os.Getenv("OS_REGION_NAME")
n := 0
- for _, ep := range eps {
+ for _, ep := range ts.eps {
if (region != "") && (region != ep.Region) {
continue
}
- client := servers.NewClient(ep.PublicURL, a, ao)
+ client := servers.NewClient(ep.PublicURL, ts.a, ts.o)
listResults, err := servers.List(client)
if err != nil {
@@ -64,65 +83,30 @@
n = n + len(svrs)
for _, s := range svrs {
- fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t\n", s.Id, s.Name, ep.Region, s.AccessIPv4, s.AccessIPv6)
+ fmt.Fprintf(ts.w, "%s\t%s\t%s\t%s\t%s\t\n", s.Id, s.Name, ep.Region, s.AccessIPv4, s.AccessIPv6)
}
}
- w.Flush()
+ ts.w.Flush()
fmt.Printf("--------\n%d servers listed.\n", n)
}
-func findAllComputeEndpoints(sc *identity.ServiceCatalog) ([]identity.Endpoint, error) {
- ces, err := sc.CatalogEntries()
- if err != nil {
- return nil, err
- }
-
- for _, ce := range ces {
- if ce.Type == "compute" {
- return ce.Endpoints, nil
- }
- }
-
- return nil, fmt.Errorf("Compute endpoint not found.")
-}
-
func TestListImages(t *testing.T) {
- ao, err := utils.AuthOptions()
+ ts, err := prepForTest()
if err != nil {
t.Error(err)
return
}
- a, err := identity.Authenticate(ao)
- if err != nil {
- t.Error(err)
- return
- }
-
- sc, err := identity.GetServiceCatalog(a)
- if err != nil {
- t.Error(err)
- return
- }
-
- eps, err := findAllComputeEndpoints(sc)
- if err != nil {
- t.Error(err)
- return
- }
-
- w := new(tabwriter.Writer)
- w.Init(os.Stdout, 2, 8, 2, ' ', 0)
- fmt.Fprintln(w, "ID\tRegion\tName\tStatus\tCreated\t")
+ fmt.Fprintln(ts.w, "ID\tRegion\tName\tStatus\tCreated\t")
region := os.Getenv("OS_REGION_NAME")
n := 0
- for _, ep := range eps {
+ for _, ep := range ts.eps {
if (region != "") && (region != ep.Region) {
continue
}
- client := images.NewClient(ep.PublicURL, a, ao)
+ client := images.NewClient(ep.PublicURL, ts.a, ts.o)
listResults, err := images.List(client)
if err != nil {
@@ -139,10 +123,65 @@
n = n + len(imgs)
for _, i := range imgs {
- fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t\n", i.Id, ep.Region, i.Name, i.Status, i.Created)
+ fmt.Fprintf(ts.w, "%s\t%s\t%s\t%s\t%s\t\n", i.Id, ep.Region, i.Name, i.Status, i.Created)
}
}
- w.Flush()
+ ts.w.Flush()
fmt.Printf("--------\n%d images listed.\n", n)
}
+func TestListFlavors(t *testing.T) {
+ ts, err := prepForTest()
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ fmt.Fprintln(ts.w, "ID\tRegion\tName\tStatus\tCreated\t")
+
+ region := os.Getenv("OS_REGION_NAME")
+ n := 0
+ for _, ep := range ts.eps {
+ if (region != "") && (region != ep.Region) {
+ continue
+ }
+
+ client := flavors.NewClient(ep.PublicURL, ts.a, ts.o)
+
+ listResults, err := flavors.List(client)
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ flavs, err := flavors.GetFlavors(listResults)
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ n = n + len(flavs)
+
+ for _, f := range flavs {
+ fmt.Fprintf(ts.w, "%s\t%s\t%s\t%s\t%s\t\n", f.Id, ep.Region, f.Name, f.Status, f.Created)
+ }
+ }
+ ts.w.Flush()
+ fmt.Printf("--------\n%d images listed.\n", n)
+}
+
+func findAllComputeEndpoints(sc *identity.ServiceCatalog) ([]identity.Endpoint, error) {
+ ces, err := sc.CatalogEntries()
+ if err != nil {
+ return nil, err
+ }
+
+ for _, ce := range ces {
+ if ce.Type == "compute" {
+ return ce.Endpoints, nil
+ }
+ }
+
+ return nil, fmt.Errorf("Compute endpoint not found.")
+}
+