95 lines
3.7 KiB
Go
95 lines
3.7 KiB
Go
package vagrant
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
|
|
)
|
|
|
|
func TestAzureProvider_impl(t *testing.T) {
|
|
var _ Provider = new(AzureProvider)
|
|
}
|
|
|
|
func TestAzureProvider_KeepInputArtifact(t *testing.T) {
|
|
p := new(AzureProvider)
|
|
|
|
if !p.KeepInputArtifact() {
|
|
t.Fatal("should keep input artifact")
|
|
}
|
|
}
|
|
|
|
func TestAzureProvider_ManagedImage(t *testing.T) {
|
|
p := new(AzureProvider)
|
|
ui := testUi()
|
|
artifact := &packersdk.MockArtifact{
|
|
StringValue: `Azure.ResourceManagement.VMImage:
|
|
|
|
OSType: Linux
|
|
ManagedImageResourceGroupName: packerruns
|
|
ManagedImageName: packer-1533651633
|
|
ManagedImageId: /subscriptions/e6229913-d9c3-4ddd-99a4-9e1ef3beaa1b/resourceGroups/packerruns/providers/Microsoft.Compute/images/packer-1533675589
|
|
ManagedImageLocation: westus`,
|
|
}
|
|
|
|
vagrantfile, _, err := p.Process(ui, artifact, "foo")
|
|
if err != nil {
|
|
t.Fatalf("should not have error: %s", err)
|
|
}
|
|
result := `azure.location = "westus"`
|
|
if !strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
result = `azure.vm_managed_image_id = "/subscriptions/e6229913-d9c3-4ddd-99a4-9e1ef3beaa1b/resourceGroups/packerruns/providers/Microsoft.Compute/images/packer-1533675589"`
|
|
if !strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
// DO NOT set resource group in Vagrantfile, it should be separate from the image
|
|
result = `azure.resource_group_name`
|
|
if strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
result = `azure.vm_operating_system`
|
|
if strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
}
|
|
|
|
func TestAzureProvider_VHD(t *testing.T) {
|
|
p := new(AzureProvider)
|
|
ui := testUi()
|
|
artifact := &packersdk.MockArtifact{
|
|
IdValue: "https://packerbuildswest.blob.core.windows.net/system/Microsoft.Compute/Images/images/packer-osDisk.96ed2120-591d-4900-95b0-ee8e985f2213.vhd",
|
|
StringValue: `Azure.ResourceManagement.VMImage:
|
|
|
|
OSType: Linux
|
|
StorageAccountLocation: westus
|
|
OSDiskUri: https://packerbuildswest.blob.core.windows.net/system/Microsoft.Compute/Images/images/packer-osDisk.96ed2120-591d-4900-95b0-ee8e985f2213.vhd
|
|
OSDiskUriReadOnlySas: https://packerbuildswest.blob.core.windows.net/system/Microsoft.Compute/Images/images/packer-osDisk.96ed2120-591d-4900-95b0-ee8e985f2213.vhd?se=2018-09-07T18%3A36%3A34Z&sig=xUiFvwAviPYoP%2Bc91vErqvwYR1eK4x%2BAx7YLMe84zzU%3D&sp=r&sr=b&sv=2016-05-31
|
|
TemplateUri: https://packerbuildswest.blob.core.windows.net/system/Microsoft.Compute/Images/images/packer-vmTemplate.96ed2120-591d-4900-95b0-ee8e985f2213.json
|
|
TemplateUriReadOnlySas: https://packerbuildswest.blob.core.windows.net/system/Microsoft.Compute/Images/images/packer-vmTemplate.96ed2120-591d-4900-95b0-ee8e985f2213.json?se=2018-09-07T18%3A36%3A34Z&sig=lDxePyAUCZbfkB5ddiofimXfwk5INn%2F9E2BsnqIKC9Q%3D&sp=r&sr=b&sv=2016-05-31`,
|
|
}
|
|
|
|
vagrantfile, _, err := p.Process(ui, artifact, "foo")
|
|
if err != nil {
|
|
t.Fatalf("should not have error: %s", err)
|
|
}
|
|
result := `azure.location = "westus"`
|
|
if !strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
result = `azure.vm_vhd_uri = "https://packerbuildswest.blob.core.windows.net/system/Microsoft.Compute/Images/images/packer-osDisk.96ed2120-591d-4900-95b0-ee8e985f2213.vhd"`
|
|
if !strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
result = `azure.vm_operating_system = "Linux"`
|
|
if !strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
// DO NOT set resource group in Vagrantfile, it should be separate from the image
|
|
result = `azure.resource_group_name`
|
|
if strings.Contains(vagrantfile, result) {
|
|
t.Fatalf("wrong substitution: %s", vagrantfile)
|
|
}
|
|
}
|