Adding List for Roles

Change-Id: Idea3ec6f3c7d74c4b754c4c143199a58a4855738
diff --git a/openstack/identity/v3/roles/results.go b/openstack/identity/v3/roles/results.go
index b32567b..9439ea9 100644
--- a/openstack/identity/v3/roles/results.go
+++ b/openstack/identity/v3/roles/results.go
@@ -40,6 +40,10 @@
 	pagination.LinkedPageBase
 }
 
+type RolePage struct {
+	pagination.LinkedPageBase
+}
+
 // IsEmpty returns true if the page contains no results.
 func (r RoleAssignmentPage) IsEmpty() (bool, error) {
 	roleAssignments, err := ExtractRoleAssignments(r)
@@ -65,3 +69,10 @@
 	err := (r.(RoleAssignmentPage)).ExtractInto(&s)
 	return s.RoleAssignments, err
 }
+func ExtractRoles(r pagination.Page) ([]Role, error) {
+	var s struct {
+		Roles []Role`json:"roles"`
+	}
+	err := (r.(RolePage)).ExtractInto(&s)
+	return s.Roles, err
+}