Implement first function of cloud compute API
diff --git a/openstack/compute/servers/requests.go b/openstack/compute/servers/requests.go
new file mode 100644
index 0000000..0c49159
--- /dev/null
+++ b/openstack/compute/servers/requests.go
@@ -0,0 +1,28 @@
+package servers
+
+import (
+ "github.com/racker/perigee"
+)
+
+// ListResult abstracts the raw results of making a List() request against the
+// API. As OpenStack extensions may freely alter the response bodies of
+// structures returned to the client, you may only safely access the data
+// provided through separate, type-safe accessors or methods.
+type ListResult map[string]interface{}
+
+// List makes a request against the API to list servers accessible to you.
+func List(c *Client) (ListResult, error) {
+ var lr ListResult
+
+ h, err := c.getListHeaders()
+ if err != nil {
+ return nil, err
+ }
+
+ err = perigee.Get(c.getListUrl(), perigee.Options{
+ Results: &lr,
+ MoreHeaders: h,
+ })
+ return lr, err
+}
+