1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
// +build acceptance imageservice
package v2
import (
"os"
"testing"
members "github.com/rackspace/gophercloud/openstack/imageservice/v2/members"
th "github.com/rackspace/gophercloud/testhelper"
)
func TestImageMemberCreateListDelete(t *testing.T) {
client := newClient(t)
//creating image
image := createTestImage(t, client)
defer deleteImage(t, client, image)
//creating member
member, err := members.Create(client, image.ID, "tenant").Extract()
th.AssertNoErr(t, err)
th.AssertNotNil(t, member)
t.Logf("Member has been created for image %s", image.ID)
//listing member
var mems *[]members.ImageMember
mems, err = members.List(client, image.ID).Extract()
th.AssertNoErr(t, err)
th.AssertNotNil(t, mems)
th.AssertEquals(t, 1, len(*mems))
t.Logf("Members after adding one %v", mems)
//checking just created member
m := (*mems)[0]
th.AssertEquals(t, "pending", m.Status)
th.AssertEquals(t, "tenant", m.MemberID)
//deleting member
deleteResult := members.Delete(client, image.ID, "tenant")
th.AssertNoErr(t, deleteResult.Err)
//listing member
mems, err = members.List(client, image.ID).Extract()
th.AssertNoErr(t, err)
th.AssertNotNil(t, mems)
th.AssertEquals(t, 0, len(*mems))
t.Logf("Members after deleting one %v", mems)
}
func TestImageMemberDetailsAndUpdate(t *testing.T) {
// getting current tenant id
memberTenantID := os.Getenv("OS_TENANT_ID")
if memberTenantID == "" {
t.Fatalf("Please define OS_TENANT_ID for image member updating test was '%s'", memberTenantID)
}
client := newClient(t)
//creating image
image := createTestImage(t, client)
defer deleteImage(t, client, image)
//creating member
member, err := members.Create(client, image.ID, memberTenantID).Extract()
th.AssertNoErr(t, err)
th.AssertNotNil(t, member)
//checking image member details
member, err = members.Get(client, image.ID, memberTenantID).Extract()
th.AssertNoErr(t, err)
th.AssertNotNil(t, member)
th.AssertEquals(t, memberTenantID, member.MemberID)
th.AssertEquals(t, "pending", member.Status)
t.Logf("Updating image's %s member status for tenant %s to 'accepted' ", image.ID, memberTenantID)
//updating image
member, err = members.Update(client, image.ID, memberTenantID, "accepted").Extract()
th.AssertNoErr(t, err)
th.AssertNotNil(t, member)
th.AssertEquals(t, "accepted", member.Status)
}
|