Skip to content
This repository was archived by the owner on Aug 1, 2023. It is now read-only.

Commit 2a977d5

Browse files
funrun11Samuel Ortiz
authored andcommitted
OpenStack Glance support
* package structure has been refactored * removed useless files * review comments addressed
1 parent dbc9796 commit 2a977d5

File tree

16 files changed

+680
-518
lines changed

16 files changed

+680
-518
lines changed

Vagrantfile

Lines changed: 0 additions & 52 deletions
This file was deleted.

acceptance/openstack/imageservice/v2/common.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
package v2
44

55
import (
6+
"bytes"
67
"os"
78
"testing"
89

910
"github.com/rackspace/gophercloud"
11+
"github.com/rackspace/gophercloud/acceptance/tools"
1012
"github.com/rackspace/gophercloud/openstack"
13+
"github.com/rackspace/gophercloud/openstack/imageservice/v2/images"
1114
th "github.com/rackspace/gophercloud/testhelper"
1215
)
1316

@@ -45,3 +48,39 @@ func newClient(t *testing.T) *gophercloud.ServiceClient {
4548
th.AssertNoErr(t, err)
4649
return c
4750
}
51+
52+
func createTestImage(t *testing.T, client *gophercloud.ServiceClient) images.Image {
53+
//creating image
54+
imageName := tools.RandomString("ACCPT", 16)
55+
containerFormat := "ami"
56+
createResult := images.Create(client, images.CreateOpts{Name: &imageName,
57+
ContainerFormat: &containerFormat,
58+
DiskFormat: &containerFormat})
59+
th.AssertNoErr(t, createResult.Err)
60+
image, err := createResult.Extract()
61+
th.AssertNoErr(t, err)
62+
t.Logf("Image %v", image)
63+
64+
//checking status
65+
image, err = images.Get(client, image.ID).Extract()
66+
th.AssertNoErr(t, err)
67+
th.AssertEquals(t, image.Status, images.ImageStatusQueued)
68+
69+
//uploading image data
70+
data := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9}
71+
putImageResult := images.PutImageData(client, image.ID, bytes.NewReader(data))
72+
th.AssertNoErr(t, putImageResult.Err)
73+
74+
//checking status
75+
image, err = images.Get(client, image.ID).Extract()
76+
th.AssertNoErr(t, err)
77+
th.AssertEquals(t, image.Status, images.ImageStatusActive)
78+
th.AssertEquals(t, *image.SizeBytes, 9)
79+
return *image
80+
}
81+
82+
func deleteImage(t *testing.T, client *gophercloud.ServiceClient, image images.Image) {
83+
//deteting image
84+
deleteResult := images.Delete(client, image.ID)
85+
th.AssertNoErr(t, deleteResult.Err)
86+
}

acceptance/openstack/imageservice/v2/imageservice_test.go

Lines changed: 1 addition & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@ package v2
55
import (
66
"bytes"
77
"io/ioutil"
8-
"os"
98
"testing"
109

11-
"github.com/rackspace/gophercloud"
1210
"github.com/rackspace/gophercloud/acceptance/tools"
13-
images "github.com/rackspace/gophercloud/openstack/imageservice/v2"
11+
"github.com/rackspace/gophercloud/openstack/imageservice/v2/images"
1412
"github.com/rackspace/gophercloud/pagination"
1513
th "github.com/rackspace/gophercloud/testhelper"
1614
)
@@ -152,116 +150,3 @@ func TestUpdateImage(t *testing.T) {
152150
t.Logf("Received tags '%v'", tags)
153151
th.AssertDeepEquals(t, updatedImage.Tags, tags)
154152
}
155-
156-
func TestImageMemberCreateListDelete(t *testing.T) {
157-
client := newClient(t)
158-
159-
//creating image
160-
image := createTestImage(t, client)
161-
defer deleteImage(t, client, image)
162-
163-
//creating member
164-
member, err := images.CreateMember(client, image.ID, "tenant").Extract()
165-
th.AssertNoErr(t, err)
166-
th.AssertNotNil(t, member)
167-
168-
t.Logf("Member has been created for image %s", image.ID)
169-
170-
//listing member
171-
var members *[]images.ImageMember
172-
members, err = images.ListMembers(client, image.ID).Extract()
173-
th.AssertNoErr(t, err)
174-
th.AssertNotNil(t, members)
175-
th.AssertEquals(t, 1, len(*members))
176-
177-
t.Logf("Members after adding one %v", members)
178-
179-
//checking just created member
180-
m := (*members)[0]
181-
th.AssertEquals(t, "pending", m.Status)
182-
th.AssertEquals(t, "tenant", m.MemberID)
183-
184-
//deleting member
185-
deleteResult := images.DeleteMember(client, image.ID, "tenant")
186-
th.AssertNoErr(t, deleteResult.Err)
187-
188-
//listing member
189-
members, err = images.ListMembers(client, image.ID).Extract()
190-
th.AssertNoErr(t, err)
191-
th.AssertNotNil(t, members)
192-
th.AssertEquals(t, 0, len(*members))
193-
194-
t.Logf("Members after deleting one %v", members)
195-
}
196-
197-
func TestImageMemberDetailsAndUpdate(t *testing.T) {
198-
// getting current tenant id
199-
memberTenantID := os.Getenv("OS_TENANT_ID")
200-
if memberTenantID == "" {
201-
t.Fatalf("Please define OS_TENANT_ID for image member updating test was '%s'", memberTenantID)
202-
}
203-
204-
client := newClient(t)
205-
206-
//creating image
207-
image := createTestImage(t, client)
208-
defer deleteImage(t, client, image)
209-
210-
//creating member
211-
member, err := images.CreateMember(client, image.ID, memberTenantID).Extract()
212-
th.AssertNoErr(t, err)
213-
th.AssertNotNil(t, member)
214-
215-
//checking image member details
216-
member, err = images.ShowMemberDetails(client, image.ID, memberTenantID).Extract()
217-
th.AssertNoErr(t, err)
218-
th.AssertNotNil(t, member)
219-
220-
th.AssertEquals(t, memberTenantID, member.MemberID)
221-
th.AssertEquals(t, "pending", member.Status)
222-
223-
t.Logf("Updating image's %s member status for tenant %s to 'accepted' ", image.ID, memberTenantID)
224-
225-
//updating image
226-
member, err = images.UpdateMember(client, image.ID, memberTenantID, "accepted").Extract()
227-
th.AssertNoErr(t, err)
228-
th.AssertNotNil(t, member)
229-
th.AssertEquals(t, "accepted", member.Status)
230-
231-
}
232-
233-
func createTestImage(t *testing.T, client *gophercloud.ServiceClient) images.Image {
234-
//creating image
235-
imageName := tools.RandomString("ACCPT", 16)
236-
containerFormat := "ami"
237-
createResult := images.Create(client, images.CreateOpts{Name: &imageName,
238-
ContainerFormat: &containerFormat,
239-
DiskFormat: &containerFormat})
240-
th.AssertNoErr(t, createResult.Err)
241-
image, err := createResult.Extract()
242-
th.AssertNoErr(t, err)
243-
t.Logf("Image %v", image)
244-
245-
//checking status
246-
image, err = images.Get(client, image.ID).Extract()
247-
th.AssertNoErr(t, err)
248-
th.AssertEquals(t, image.Status, images.ImageStatusQueued)
249-
250-
//uploading image data
251-
data := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9}
252-
putImageResult := images.PutImageData(client, image.ID, bytes.NewReader(data))
253-
th.AssertNoErr(t, putImageResult.Err)
254-
255-
//checking status
256-
image, err = images.Get(client, image.ID).Extract()
257-
th.AssertNoErr(t, err)
258-
th.AssertEquals(t, image.Status, images.ImageStatusActive)
259-
th.AssertEquals(t, *image.SizeBytes, 9)
260-
return *image
261-
}
262-
263-
func deleteImage(t *testing.T, client *gophercloud.ServiceClient, image images.Image) {
264-
//deteting image
265-
deleteResult := images.Delete(client, image.ID)
266-
th.AssertNoErr(t, deleteResult.Err)
267-
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// +build acceptance imageservice
2+
3+
package v2
4+
5+
import (
6+
"os"
7+
"testing"
8+
9+
members "github.com/rackspace/gophercloud/openstack/imageservice/v2/members"
10+
th "github.com/rackspace/gophercloud/testhelper"
11+
)
12+
13+
func TestImageMemberCreateListDelete(t *testing.T) {
14+
client := newClient(t)
15+
16+
//creating image
17+
image := createTestImage(t, client)
18+
defer deleteImage(t, client, image)
19+
20+
//creating member
21+
member, err := members.Create(client, image.ID, "tenant").Extract()
22+
th.AssertNoErr(t, err)
23+
th.AssertNotNil(t, member)
24+
25+
t.Logf("Member has been created for image %s", image.ID)
26+
27+
//listing member
28+
var mems *[]members.ImageMember
29+
mems, err = members.List(client, image.ID).Extract()
30+
th.AssertNoErr(t, err)
31+
th.AssertNotNil(t, mems)
32+
th.AssertEquals(t, 1, len(*mems))
33+
34+
t.Logf("Members after adding one %v", mems)
35+
36+
//checking just created member
37+
m := (*mems)[0]
38+
th.AssertEquals(t, "pending", m.Status)
39+
th.AssertEquals(t, "tenant", m.MemberID)
40+
41+
//deleting member
42+
deleteResult := members.Delete(client, image.ID, "tenant")
43+
th.AssertNoErr(t, deleteResult.Err)
44+
45+
//listing member
46+
mems, err = members.List(client, image.ID).Extract()
47+
th.AssertNoErr(t, err)
48+
th.AssertNotNil(t, mems)
49+
th.AssertEquals(t, 0, len(*mems))
50+
51+
t.Logf("Members after deleting one %v", mems)
52+
}
53+
54+
func TestImageMemberDetailsAndUpdate(t *testing.T) {
55+
// getting current tenant id
56+
memberTenantID := os.Getenv("OS_TENANT_ID")
57+
if memberTenantID == "" {
58+
t.Fatalf("Please define OS_TENANT_ID for image member updating test was '%s'", memberTenantID)
59+
}
60+
61+
client := newClient(t)
62+
63+
//creating image
64+
image := createTestImage(t, client)
65+
defer deleteImage(t, client, image)
66+
67+
//creating member
68+
member, err := members.Create(client, image.ID, memberTenantID).Extract()
69+
th.AssertNoErr(t, err)
70+
th.AssertNotNil(t, member)
71+
72+
//checking image member details
73+
member, err = members.Get(client, image.ID, memberTenantID).Extract()
74+
th.AssertNoErr(t, err)
75+
th.AssertNotNil(t, member)
76+
77+
th.AssertEquals(t, memberTenantID, member.MemberID)
78+
th.AssertEquals(t, "pending", member.Status)
79+
80+
t.Logf("Updating image's %s member status for tenant %s to 'accepted' ", image.ID, memberTenantID)
81+
82+
//updating image
83+
member, err = members.Update(client, image.ID, memberTenantID, "accepted").Extract()
84+
th.AssertNoErr(t, err)
85+
th.AssertNotNil(t, member)
86+
th.AssertEquals(t, "accepted", member.Status)
87+
88+
}

openstack/imageservice/v2/fixtures.go renamed to openstack/imageservice/v2/images/fixtures.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
package v2
2-
3-
// TODO
1+
package images
42

53
import (
64
"fmt"

0 commit comments

Comments
 (0)