|
|
|
|
@ -2,14 +2,11 @@ package common
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"context"
|
|
|
|
|
"fmt"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
|
|
|
"github.com/aws/aws-sdk-go/service/ec2"
|
|
|
|
|
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
|
|
|
|
helperconfig "github.com/hashicorp/packer/helper/config"
|
|
|
|
|
"github.com/hashicorp/packer/helper/multistep"
|
|
|
|
|
"github.com/hashicorp/packer/packer"
|
|
|
|
|
)
|
|
|
|
|
@ -44,62 +41,3 @@ func fakeModifyEBSBackedInstanceState() multistep.StateBag {
|
|
|
|
|
state.Put("instance", "i-12345")
|
|
|
|
|
return state
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func StepModifyEBSBackedInstance_EnableAMIENASupport(t *testing.T) {
|
|
|
|
|
// Value is unset, so we shouldn't modify
|
|
|
|
|
stepModifyEBSBackedInstance := StepModifyEBSBackedInstance{
|
|
|
|
|
EnableAMIENASupport: helperconfig.TriUnset,
|
|
|
|
|
EnableAMISriovNetSupport: false,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// mock out the region connection code
|
|
|
|
|
mockConn := &mockEC2Conn_ModifyEBS{
|
|
|
|
|
Config: aws.NewConfig(),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
state := fakeModifyEBSBackedInstanceState()
|
|
|
|
|
state.Put("ec2", mockConn)
|
|
|
|
|
stepModifyEBSBackedInstance.Run(context.Background(), state)
|
|
|
|
|
|
|
|
|
|
if mockConn.modifyImageAttrCount > 0 {
|
|
|
|
|
t.Fatalf("Should not have modified image since EnableAMIENASupport is unset")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Value is true, so we should modify
|
|
|
|
|
stepModifyEBSBackedInstance = StepModifyEBSBackedInstance{
|
|
|
|
|
EnableAMIENASupport: helperconfig.TriTrue,
|
|
|
|
|
EnableAMISriovNetSupport: false,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// mock out the region connection code
|
|
|
|
|
mockConn = &mockEC2Conn_ModifyEBS{
|
|
|
|
|
Config: aws.NewConfig(),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
state = fakeModifyEBSBackedInstanceState()
|
|
|
|
|
state.Put("ec2", mockConn)
|
|
|
|
|
stepModifyEBSBackedInstance.Run(context.Background(), state)
|
|
|
|
|
|
|
|
|
|
if mockConn.modifyImageAttrCount != 1 {
|
|
|
|
|
t.Fatalf("Should have modified image, since EnableAMIENASupport is true")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Value is false, so we should modify
|
|
|
|
|
stepModifyEBSBackedInstance = StepModifyEBSBackedInstance{
|
|
|
|
|
EnableAMIENASupport: helperconfig.TriFalse,
|
|
|
|
|
EnableAMISriovNetSupport: false,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// mock out the region connection code
|
|
|
|
|
mockConn = &mockEC2Conn_ModifyEBS{
|
|
|
|
|
Config: aws.NewConfig(),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
state = fakeModifyEBSBackedInstanceState()
|
|
|
|
|
state.Put("ec2", mockConn)
|
|
|
|
|
stepModifyEBSBackedInstance.Run(context.Background(), state)
|
|
|
|
|
|
|
|
|
|
if mockConn.modifyImageAttrCount != 1 {
|
|
|
|
|
t.Fatalf("Should have modified image, since EnableAMIENASupport is true")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|