diff --git a/hcl2template/load_test.go b/hcl2template/load_test.go index 1503f085c..c91893c8e 100644 --- a/hcl2template/load_test.go +++ b/hcl2template/load_test.go @@ -169,133 +169,152 @@ func TestParser_ParseFile(t *testing.T) { false, }, - // { - // "duplicate " + sourceLabel, defaultParser, - // args{"testdata/sources/basic.pkr.hcl", &PackerConfig{ - // Sources: map[SourceRef]*Source{ - // SourceRef{ - // Type: "amazon-ebs", - // Name: "ubuntu-1604", - // }: { - // Type: "amazon-ebs", - // Name: "ubuntu-1604", - // Cfg: &amazonebs.FlatConfig{RawRegion: "eu-west-3", InstanceType: "t2.micro"}, - // }, - // }, - // }, - // }, - // &PackerConfig{ - // Sources: map[SourceRef]*Source{ - // SourceRef{ - // Type: "virtualbox-iso", - // Name: "ubuntu-1204", - // }: { - // Type: "virtualbox-iso", - // Name: "ubuntu-1204", - // Cfg: &iso.FlatConfig{ - // HTTPDir: "xxx", - // ISOChecksum: "769474248a3897f4865817446f9a4a53", - // ISOChecksumType: "md5", - // RawSingleISOUrl: "http://releases.ubuntu.com/12.04/ubuntu-12.04.5-server-amd64.iso", - // BootCommand: []string{"..."}, - // ShutdownCommand: "echo 'vagrant' | sudo -S shutdown -P now", - // RawBootWait: "10s", - // }, - // }, - // SourceRef{ - // Type: "amazon-ebs", - // Name: "ubuntu-1604", - // }: { - // Type: "amazon-ebs", - // Name: "ubuntu-1604", - // Cfg: &amazonebs.FlatConfig{RawRegion: "eu-west-3", InstanceType: "t2.micro"}, - // }, - // SourceRef{ - // Type: "amazon-ebs", - // Name: "that-ubuntu-1.0", - // }: { - // Type: "amazon-ebs", - // Name: "that-ubuntu-1.0", - // Cfg: &amazonebs.FlatConfig{RawRegion: "eu-west-3", InstanceType: "t2.micro"}, - // }, - // }, - // }, - // true, - // }, + { + "duplicate " + sourceLabel, defaultParser, + args{"testdata/sources/basic.pkr.hcl", &PackerConfig{ + Sources: map[SourceRef]*Source{ + SourceRef{ + Type: "virtualbox-iso", + Name: "ubuntu-1204", + }: { + Type: "virtualbox-iso", + Name: "ubuntu-1204", + Cfg: &iso.FlatConfig{ + HTTPDir: strPtr("xxx"), + }, + }, + }, + }, + }, + &PackerConfig{ + Sources: map[SourceRef]*Source{ + SourceRef{ + Type: "virtualbox-iso", + Name: "ubuntu-1204", + }: { + Type: "virtualbox-iso", + Name: "ubuntu-1204", + Cfg: &iso.FlatConfig{ + HTTPDir: strPtr("xxx"), + }, + }, + SourceRef{ + Type: "amazon-ebs", + Name: "ubuntu-1604", + }: { + Type: "amazon-ebs", + Name: "ubuntu-1604", + Cfg: &amazonebs.FlatConfig{ + RawRegion: strPtr("eu-west-3"), + AMIEncryptBootVolume: boolPtr(true), + InstanceType: strPtr("t2.micro"), + SourceAmiFilter: &awscommon.FlatAmiFilterOptions{ + Filters: map[string]string{ + "name": "ubuntu/images/*ubuntu-xenial-{16.04}-amd64-server-*", + "root-device-type": "ebs", + "virtualization-type": "hvm", + }, + Owners: []string{"099720109477"}, + }, + AMIMappings: []awscommon.FlatBlockDevice{}, + LaunchMappings: []awscommon.FlatBlockDevice{}, + }, + }, + SourceRef{ + Type: "amazon-ebs", + Name: "that-ubuntu-1.0", + }: { + Type: "amazon-ebs", + Name: "that-ubuntu-1.0", + Cfg: &amazonebs.FlatConfig{ + RawRegion: strPtr("eu-west-3"), + AMIEncryptBootVolume: boolPtr(true), + InstanceType: strPtr("t2.micro"), + SourceAmiFilter: &awscommon.FlatAmiFilterOptions{ + MostRecent: boolPtr(true), + }, + AMIMappings: []awscommon.FlatBlockDevice{}, + LaunchMappings: []awscommon.FlatBlockDevice{}, + }, + }, + }, + }, + true, + }, - // {"valid variables load", defaultParser, - // args{"testdata/variables/basic.pkr.hcl", new(PackerConfig)}, - // &PackerConfig{ - // Variables: PackerV1Variables{ - // "image_name": "foo-image-{{user `my_secret`}}", - // "key": "value", - // "my_secret": "foo", - // }, - // }, - // false, - // }, + {"valid variables load", defaultParser, + args{"testdata/variables/basic.pkr.hcl", new(PackerConfig)}, + &PackerConfig{ + Variables: PackerV1Variables{ + "image_name": "foo-image-{{user `my_secret`}}", + "key": "value", + "my_secret": "foo", + }, + }, + false, + }, - // {"valid " + buildLabel + " load", defaultParser, - // args{"testdata/build/basic.pkr.hcl", new(PackerConfig)}, - // &PackerConfig{ - // Builds: Builds{ - // { - // Froms: BuildFromList{ - // { - // Src: SourceRef{"amazon-ebs", "ubuntu-1604"}, - // }, - // { - // Src: SourceRef{"virtualbox-iso", "ubuntu-1204"}, - // }, - // }, - // ProvisionerGroups: ProvisionerGroups{ - // &ProvisionerGroup{ - // CommunicatorRef: CommunicatorRef{"ssh", "vagrant"}, - // Provisioners: []Provisioner{ - // {Cfg: &shell.FlatConfig{ - // Inline: []string{"echo '{{user `my_secret`}}' :D"}, - // }}, - // {Cfg: &shell.FlatConfig{ - // Scripts: []string{"script-1.sh", "script-2.sh"}, - // ValidExitCodes: []int{0, 42}, - // }}, - // {Cfg: &file.FlatConfig{ - // Source: "app.tar.gz", - // Destination: "/tmp/app.tar.gz", - // }}, - // }, - // }, - // }, - // PostProvisionerGroups: ProvisionerGroups{ - // &ProvisionerGroup{ - // Provisioners: []Provisioner{ - // {Cfg: &amazon_import.FlatConfig{ - // Name: "that-ubuntu-1.0", - // }}, - // }, - // }, - // }, - // }, - // &Build{ - // Froms: BuildFromList{ - // { - // Src: SourceRef{"amazon", "that-ubuntu-1"}, - // }, - // }, - // ProvisionerGroups: ProvisionerGroups{ - // &ProvisionerGroup{ - // Provisioners: []Provisioner{ - // {Cfg: &shell.FlatConfig{ - // Inline: []string{"echo HOLY GUACAMOLE !"}, - // }}, - // }, - // }, - // }, - // }, - // }, - // }, - // false, - // }, + {"valid " + buildLabel + " load", defaultParser, + args{"testdata/build/basic.pkr.hcl", new(PackerConfig)}, + &PackerConfig{ + Builds: Builds{ + { + Froms: BuildFromList{ + { + Src: SourceRef{"amazon-ebs", "ubuntu-1604"}, + }, + { + Src: SourceRef{"virtualbox-iso", "ubuntu-1204"}, + }, + }, + ProvisionerGroups: ProvisionerGroups{ + &ProvisionerGroup{ + CommunicatorRef: CommunicatorRef{"ssh", "vagrant"}, + Provisioners: []Provisioner{ + {Cfg: &shell.FlatConfig{ + Inline: []string{"echo '{{user `my_secret`}}' :D"}, + }}, + {Cfg: &shell.FlatConfig{ + Scripts: []string{"script-1.sh", "script-2.sh"}, + ValidExitCodes: []int{0, 42}, + }}, + {Cfg: &file.FlatConfig{ + Source: strPtr("app.tar.gz"), + Destination: strPtr("/tmp/app.tar.gz"), + }}, + }, + }, + }, + PostProvisionerGroups: ProvisionerGroups{ + &ProvisionerGroup{ + Provisioners: []Provisioner{ + {Cfg: &amazon_import.FlatConfig{ + Name: strPtr("that-ubuntu-1.0"), + }}, + }, + }, + }, + }, + &Build{ + Froms: BuildFromList{ + { + Src: SourceRef{"amazon", "that-ubuntu-1"}, + }, + }, + ProvisionerGroups: ProvisionerGroups{ + &ProvisionerGroup{ + Provisioners: []Provisioner{ + {Cfg: &shell.FlatConfig{ + Inline: []string{"echo HOLY GUACAMOLE !"}, + }}, + }, + }, + }, + }, + }, + }, + false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {