func TestCreateMemberSuccessfully(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() HandleCreateImageMemberSuccessfully(t) im, err := members.Create(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", "8989447062e04a818baf9e073fd04fa7").Extract() th.AssertNoErr(t, err) createdAt, err := time.Parse(time.RFC3339, createdAtString) th.AssertNoErr(t, err) updatedAt, err := time.Parse(time.RFC3339, updatedAtString) th.AssertNoErr(t, err) th.AssertDeepEquals(t, members.Member{ CreatedAt: createdAt, ImageID: "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", MemberID: "8989447062e04a818baf9e073fd04fa7", Schema: "/v2/schemas/member", Status: "pending", UpdatedAt: updatedAt, }, *im) }
func (s *stepAddImageMembers) Run(state multistep.StateBag) multistep.StepAction { imageId := state.Get("image").(string) ui := state.Get("ui").(packer.Ui) config := state.Get("config").(Config) if len(config.ImageMembers) == 0 { return multistep.ActionContinue } imageClient, err := config.imageV2Client() if err != nil { err = fmt.Errorf("Error initializing image service client: %s", err) state.Put("error", err) return multistep.ActionHalt } for _, member := range config.ImageMembers { ui.Say(fmt.Sprintf("Adding member '%s' to image %s", member, imageId)) r := members.Create(imageClient, imageId, member) if _, err = r.Extract(); err != nil { err = fmt.Errorf("Error adding member to image: %s", err) state.Put("error", err) return multistep.ActionHalt } } return multistep.ActionContinue }