Skip to content

Commit

Permalink
Virtual Media resource UT fix (#289)
Browse files Browse the repository at this point in the history
Co-authored-by: Krunal Thakkar <[email protected]>
  • Loading branch information
MangirishK and Krunal-Thakkar authored Feb 17, 2025
1 parent c88389d commit 3781a27
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 37 deletions.
3 changes: 3 additions & 0 deletions redfish/helper/redfish_virtual_media.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ func InsertMedia(id string, collection []*redfish.VirtualMedia, config redfish.V
if err != nil {
return nil, fmt.Errorf("virtual media selected doesn't exist: %w", err)
}
virtualMedia.Entity.SetETag("")

if !virtualMedia.Inserted {
err = virtualMedia.InsertMediaConfig(config)
if err != nil {
Expand Down Expand Up @@ -115,6 +117,7 @@ func GetNejectVirtualMedia(service *gofish.Service, uri string) (*redfish.Virtua
if err != nil {
return nil, fmt.Errorf("virtual Media doesn't exist: %w", err) // This error won't be triggered ever
}
virtualMedia.Entity.SetETag("")

// Eject virtual media
err = virtualMedia.EjectMedia()
Expand Down
22 changes: 13 additions & 9 deletions redfish/provider/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,23 @@ import (
"strings"
"testing"

"github.com/bytedance/mockey"
"github.com/hashicorp/terraform-plugin-framework/providerserver"
"github.com/hashicorp/terraform-plugin-go/tfprotov6"
"github.com/hashicorp/terraform-plugin-testing/terraform"
"github.com/bytedance/mockey"
)

var (
testAccProtoV6ProviderFactories map[string]func() (tfprotov6.ProviderServer, error)
creds TestingServerCredentials
image64Boot string
image64BootInvalid string
image64Dvd1 string
imageEfiBoot string
drive string
firmwareUpdateIP string
testAccProtoV6ProviderFactories map[string]func() (tfprotov6.ProviderServer, error)
creds TestingServerCredentials
image64Boot string
image64BootInvalid string
image64Dvd1 string
imageEfiBoot string
virtualMediaTransferProtocolTypeValid string
virtualMediaTransferProtocolTypeInvalid string
drive string
firmwareUpdateIP string
)

// FunctionMocker is used to mock functions in the provider
Expand Down Expand Up @@ -93,6 +95,8 @@ func init() {
image64BootInvalid = os.Getenv("TF_TESTING_VIRTUAL_MEDIA_IMAGE_PATH_64BOOT_INVALID")
image64Dvd1 = os.Getenv("TF_TESTING_VIRTUAL_MEDIA_IMAGE_PATH_64DVD1")
imageEfiBoot = os.Getenv("TF_TESTING_VIRTUAL_MEDIA_IMAGE_PATH_EFI_BOOT")
virtualMediaTransferProtocolTypeValid = os.Getenv("TF_TESTING_VIRTUAL_MEDIA_TRANSFER_PROTOCOL_TYPE_VALID")
virtualMediaTransferProtocolTypeInvalid = os.Getenv("TF_TESTING_VIRTUAL_MEDIA_TRANSFER_PROTOCOL_TYPE_INVALID")
// storage volume environment varibale
drive = os.Getenv("TF_TESTING_STORAGE_VOLUME_DRIVE")
firmwareUpdateIP = os.Getenv("TF_TESTING_FIRMWARE_UPDATE_IP")
Expand Down
56 changes: 28 additions & 28 deletions redfish/provider/resource_redfish_virtual_media_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func TestAccRedfishVirtualMedia_basic(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr(testAccVMedResName, "image", image64Boot),
Expand Down Expand Up @@ -95,7 +95,7 @@ func TestAccRedfishVirtualMediaServer2_ReadMockErr(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
},
{
Expand All @@ -107,7 +107,7 @@ func TestAccRedfishVirtualMediaServer2_ReadMockErr(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
ExpectError: regexp.MustCompile(`.*mock error*.`),
Expand All @@ -121,7 +121,7 @@ func TestAccRedfishVirtualMediaServer2_ReadMockErr(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
},
Expand All @@ -144,7 +144,7 @@ func TestAccRedfishVirtualMedia_InvalidImage_Negative(t *testing.T) {
"virtual_media",
image64BootInvalid,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand All @@ -164,7 +164,7 @@ func TestAccRedfishVirtualMedia_InvalidTransferMethod_Negative(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Upload"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand All @@ -184,7 +184,7 @@ func TestAccRedfishVirtualMedia_InvalidTransferProtocol_Negative(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTPS",
virtualMediaTransferProtocolTypeInvalid,
"Stream"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand All @@ -204,22 +204,22 @@ func TestAccRedfishVirtualMediaNoMediaNegative_basic(t *testing.T) {
"virtual_media1",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream") +
testAccRedfishResourceVirtualMediaConfigDependency(
creds,
"virtual_media2",
image64Dvd1,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
"redfish_virtual_media.virtual_media1") +
testAccRedfishResourceVirtualMediaConfigDependency(
creds,
"virtual_media3",
image64Dvd1,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
"redfish_virtual_media.virtual_media2"),
ExpectError: regexp.MustCompile("There are no Virtual Medias to mount"),
Expand All @@ -240,7 +240,7 @@ func TestAccRedfishVirtualMediaServer2_basic(t *testing.T) {
"virtual_media",
imageEfiBoot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr(testAccVMedResName, "image", imageEfiBoot),
Expand Down Expand Up @@ -277,7 +277,7 @@ func TestAccRedfishVirtualMediaServer2_CreateMockErr(t *testing.T) {
"virtual_media",
imageEfiBoot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
ExpectError: regexp.MustCompile(`.*mock error*.`),
Expand All @@ -295,7 +295,7 @@ func TestAccRedfishVirtualMediaServer2_CreateMockErr(t *testing.T) {
"virtual_media",
imageEfiBoot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
ExpectError: regexp.MustCompile(`.*mock error*.`),
Expand All @@ -318,7 +318,7 @@ func TestAccRedfishVirtualMediaServer2_CreateMockErr(t *testing.T) {
"virtual_media",
imageEfiBoot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
ExpectError: regexp.MustCompile(`.*mock error*.`),
Expand Down Expand Up @@ -351,7 +351,7 @@ func TestAccRedfishVirtualMediaServer2_InvalidTransferProtocol_Negative(t *testi
"virtual_media",
imageEfiBoot,
true,
"HTTPS",
virtualMediaTransferProtocolTypeInvalid,
"Stream"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand All @@ -371,7 +371,7 @@ func TestAccRedfishVirtualMediaServer2Update_InvalidTransferProtocol_Negative(t
"virtual_media",
imageEfiBoot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr(testAccVMedResName, "image", imageEfiBoot),
Expand All @@ -384,7 +384,7 @@ func TestAccRedfishVirtualMediaServer2Update_InvalidTransferProtocol_Negative(t
"virtual_media",
imageEfiBoot,
true,
"HTTPS",
virtualMediaTransferProtocolTypeInvalid,
"Stream"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand All @@ -404,7 +404,7 @@ func TestAccRedfishVirtualMediaUpdate_basic(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr(testAccVMedResName, "image", image64Boot),
Expand All @@ -427,7 +427,7 @@ func TestAccRedfishVirtualMediaUpdate_basic(t *testing.T) {
"virtual_media",
image64Boot,
false,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
ExpectError: regexp.MustCompile("Provider produced inconsistent result after apply"),
},
Expand Down Expand Up @@ -457,7 +457,7 @@ func TestAccRedfishVirtualMediaUpdate_MockErr(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
},
{
Expand All @@ -469,7 +469,7 @@ func TestAccRedfishVirtualMediaUpdate_MockErr(t *testing.T) {
"virtual_media",
image64Boot,
false,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
ExpectError: regexp.MustCompile(`.*mock error*.`),
Expand All @@ -483,7 +483,7 @@ func TestAccRedfishVirtualMediaUpdate_MockErr(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
},
Expand All @@ -496,7 +496,7 @@ func TestAccRedfishVirtualMediaUpdate_MockErr(t *testing.T) {
"virtual_media",
image64Boot,
false,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
ExpectError: regexp.MustCompile(`.*mock error*.`),
Expand All @@ -510,7 +510,7 @@ func TestAccRedfishVirtualMediaUpdate_MockErr(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream",
),
},
Expand All @@ -534,7 +534,7 @@ func TestAccRedfishVirtualMediaUpdate_InvalidImage_Negative(t *testing.T) {
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr(testAccVMedResName, "image", image64Boot),
Expand All @@ -547,7 +547,7 @@ func TestAccRedfishVirtualMediaUpdate_InvalidImage_Negative(t *testing.T) {
"virtual_media",
image64BootInvalid,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand All @@ -567,7 +567,7 @@ func TestAccRedfishVirtualMediaUpdate_InvalidTransferMethod_Negative(t *testing.
"virtual_media",
image64Boot,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Stream"),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr(testAccVMedResName, "image", image64Boot),
Expand All @@ -580,7 +580,7 @@ func TestAccRedfishVirtualMediaUpdate_InvalidTransferMethod_Negative(t *testing.
"virtual_media",
image64Dvd1,
true,
"HTTP",
virtualMediaTransferProtocolTypeValid,
"Upload"),
ExpectError: regexp.MustCompile("[C|c]ouldn't mount Virtual Media"),
},
Expand Down

0 comments on commit 3781a27

Please sign in to comment.