|
8 | 8 | "github.com/gophercloud/gophercloud/acceptance/clients" |
9 | 9 | "github.com/gophercloud/gophercloud/acceptance/tools" |
10 | 10 | "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors" |
| 11 | + |
| 12 | + identity "github.com/gophercloud/gophercloud/acceptance/openstack/identity/v3" |
11 | 13 | ) |
12 | 14 |
|
13 | 15 | func TestFlavorsList(t *testing.T) { |
@@ -114,3 +116,40 @@ func TestFlavorAccessesList(t *testing.T) { |
114 | 116 | tools.PrintResource(t, access) |
115 | 117 | } |
116 | 118 | } |
| 119 | + |
| 120 | +func TestFlavorAccessCRUD(t *testing.T) { |
| 121 | + client, err := clients.NewComputeV2Client() |
| 122 | + if err != nil { |
| 123 | + t.Fatalf("Unable to create a compute client: %v", err) |
| 124 | + } |
| 125 | + |
| 126 | + identityClient, err := clients.NewIdentityV3Client() |
| 127 | + if err != nil { |
| 128 | + t.Fatal("Unable to create identity client: %v", err) |
| 129 | + } |
| 130 | + |
| 131 | + project, err := identity.CreateProject(t, identityClient, nil) |
| 132 | + if err != nil { |
| 133 | + t.Fatal("Unable to create project: %v", err) |
| 134 | + } |
| 135 | + defer identity.DeleteProject(t, identityClient, project.ID) |
| 136 | + |
| 137 | + flavor, err := CreatePrivateFlavor(t, client) |
| 138 | + if err != nil { |
| 139 | + t.Fatalf("Unable to create flavor: %v", err) |
| 140 | + } |
| 141 | + defer DeleteFlavor(t, client, flavor) |
| 142 | + |
| 143 | + addAccessOpts := flavors.AddAccessOpts{ |
| 144 | + Tenant: project.ID, |
| 145 | + } |
| 146 | + |
| 147 | + accessList, err := flavors.AddAccess(client, flavor.ID, addAccessOpts).Extract() |
| 148 | + if err != nil { |
| 149 | + t.Fatalf("Unable to add access to flavor: %v", err) |
| 150 | + } |
| 151 | + |
| 152 | + for _, access := range accessList { |
| 153 | + tools.PrintResource(t, access) |
| 154 | + } |
| 155 | +} |
0 commit comments