I've run into a few cases where running the full test suite for the ARM
builder would fail because of conflicting image names. This is a
workaround for now the bigger fix is to have the acceptance clean up any
created images.
Results before change
```
the managed image named testBuilderAccManagedDiskWindows-1603151855 already exists in the resource group packer-acceptance-test, use the -force option to automatically delete it.
--- FAIL: TestBuilderAcc_ManagedDisk_Windows_Build_Resource_Group (0.66s)
```
Results after change
```
PASS
ok github.com/hashicorp/packer/builder/azure/arm 2431.115s
```
When building a CI/CD deployment, during the PR process it's nice to be
able to run the builder, but not create the image the build produces.
Closes#9965
- generating defaults
- overriding defaults with user args
The default generation has been shuffled around some, in order to
make sure that any changes to a specific arg happen in one place
to make it easier to reason about those args. Related args have
been moved close to one another.
The deviceArgs and driveArgs were overly complex after several
layers of copy/paste modifications. Careful pruning reduced the
layers of logic and repeated code, to help make it easier to reason
about.
Azure expects the tags format to use a pointer to the string for the map value.
The configuration from the builder is not a pointer so when storing in the state bag for
reference in later execution we convert it when creating the StateBag.
Fixes#10012 and #10013.
* Use the MapToAzureTags helper and error check in resource group creation
* Added test case for tag values not using a pointer
* test/azure/arm: Add test to verify tags stored in state
* test/azure/arm: Add azure_tags to existing acceptance test for Linux
Test Before Fix
```
--- FAIL: TestBuilderAcc_ManagedDisk_Linux (1.81s)
panic: interface conversion: interface {} is map[string]string, not map[string]*string [recovered]
panic: interface conversion: interface {} is map[string]string, not map[string]*string
FAIL github.com/hashicorp/packer/builder/azure/arm 1.822s
```
Test After Fix
```
2020/09/29 17:23:03 ui: ==> test: Resource group has been deleted.
--- PASS: TestBuilderAcc_ManagedDisk_Linux (517.41s)
PASS
ok github.com/hashicorp/packer/builder/azure/arm 517.426s
```
Co-authored-by: Wilken Rivera <dev@wilkenrivera.com>