images_test.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package ecs
  2. import (
  3. "testing"
  4. "github.com/denverdino/aliyungo/common"
  5. )
  6. func TestImageCreationAndDeletion(t *testing.T) {
  7. client := NewTestClient()
  8. instance, err := client.DescribeInstanceAttribute(TestInstanceId)
  9. if err != nil {
  10. t.Fatalf("Failed to DescribeInstanceAttribute for instance %s: %v", TestInstanceId, err)
  11. }
  12. args := DescribeSnapshotsArgs{}
  13. args.InstanceId = TestInstanceId
  14. args.RegionId = instance.RegionId
  15. snapshots, _, err := client.DescribeSnapshots(&args)
  16. if err != nil {
  17. t.Errorf("Failed to DescribeSnapshots for instance %s: %v", TestInstanceId, err)
  18. }
  19. if len(snapshots) > 0 {
  20. createImageArgs := CreateImageArgs{
  21. RegionId: instance.RegionId,
  22. SnapshotId: snapshots[0].SnapshotId,
  23. ImageName: "My_Test_Image_for_AliyunGo",
  24. ImageVersion: "1.0",
  25. Description: "My Test Image for AliyunGo description",
  26. ClientToken: client.GenerateClientToken(),
  27. }
  28. imageId, err := client.CreateImage(&createImageArgs)
  29. if err != nil {
  30. t.Errorf("Failed to CreateImage for SnapshotId %s: %v", createImageArgs.SnapshotId, err)
  31. }
  32. t.Logf("Image %s is created successfully.", imageId)
  33. err = client.DeleteImage(instance.RegionId, imageId)
  34. if err != nil {
  35. t.Errorf("Failed to DeleteImage for %s: %v", imageId, err)
  36. }
  37. t.Logf("Image %s is deleted successfully.", imageId)
  38. }
  39. }
  40. func TestModifyImageSharePermission(t *testing.T) {
  41. req := ModifyImageSharePermissionArgs{
  42. RegionId: common.Beijing,
  43. ImageId: TestImageId,
  44. AddAccount: []string{TestAccountId},
  45. }
  46. client := NewTestClient()
  47. err := client.ModifyImageSharePermission(&req)
  48. if err != nil {
  49. t.Errorf("Failed to ShareImage: %v", err)
  50. }
  51. shareInfo, err := client.DescribeImageSharePermission(&req)
  52. if err != nil {
  53. t.Errorf("Failed to ShareImage: %v", err)
  54. }
  55. t.Logf("result:image: %++v", shareInfo)
  56. }
  57. func TestCopyImage(t *testing.T) {
  58. client := NewTestClient()
  59. req := CopyImageArgs{
  60. RegionId: common.Beijing,
  61. ImageId: TestImageId,
  62. DestinationRegionId: common.Hangzhou,
  63. DestinationImageName: "My_Test_Image_NAME_for_AliyunGo",
  64. DestinationDescription: "My Test Image for AliyunGo description",
  65. ClientToken: client.GenerateClientToken(),
  66. }
  67. imageId, err := client.CopyImage(&req)
  68. if err != nil {
  69. t.Errorf("Failed to CopyImage: %v", err)
  70. }
  71. t.Logf("result:image: %++v", imageId)
  72. if err := client.WaitForImageReady(common.Hangzhou, imageId, 600); err != nil {
  73. t.Errorf("Failed to WaitImage: %v", err)
  74. //return
  75. }
  76. describeReq := DescribeImagesArgs{
  77. RegionId: common.Hangzhou,
  78. ImageId: imageId,
  79. Status: ImageStatusAvailable,
  80. ImageOwnerAlias: ImageOwnerSelf,
  81. }
  82. images, _, err := client.DescribeImages(&describeReq)
  83. if err != nil {
  84. t.Errorf("Failed to describeImage: %v", err)
  85. }
  86. t.Logf("result: images %++v", images)
  87. }
  88. func TestCancelCopyImage(t *testing.T) {
  89. client := NewTestClient()
  90. if err := client.CancelCopyImage(common.Hangzhou, TestImageId); err != nil {
  91. t.Errorf("Failed to CancelCopyImage: %v", err)
  92. }
  93. }