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>
This change checks for closed iochans related to the log polling
function and will break out of the loop when both channels are closed.
Which is an indicator that the SSM session has been terminated by some
external process. This fixes an issue where Packer hangs, due to the
infinite loop, when an SSM session is killed outside of Packer.
Related to #9442
* Implement Stringer inteface for multistep.StepAction
* scaleway: add pre validate step (check image and snapshot names)
Before, it was possible to create multiple images with the same name,
leading to a confusing and wasteful situation (same for snapshots).
Now, we perform the same kind of checks done by the AWS EC2 builder,
and refuse to proceed if there is an existing image with the same name
(same for snapshots).
As usual, invoking `packer build -force` will bypass the checks.
Closes#9839.
This change replaces the deprecated constructors `New` with
`NewService`.
Static check before the change
```
⇶ golangci-lint run --disable-all --no-config --enable=staticcheck | grep SA1019 | grep google
- post-processor/googlecompute-import/post-processor.go:183:18: SA1019:
storage.New is deprecated: please use NewService instead. To provide a
custom HTTP client, use option.WithHTTPClient. If you are using
google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey
with NewService instead. (staticcheck)
- post-processor/googlecompute-import/post-processor.go:219:18: SA1019:
compute.New is deprecated: please use NewService instead. To provide a
custom HTTP client, use option.WithHTTPClient. If you are using
google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey
with NewService instead. (staticcheck)
- post-processor/googlecompute-import/post-processor.go:273:18: SA1019:
storage.New is deprecated: please use NewService instead. To provide a
custom HTTP client, use option.WithHTTPClient. If you are using
google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey
with NewService instead. (staticcheck)
- builder/googlecompute/driver_gce.go:127:18: SA1019: compute.New is
deprecated: please use NewService instead. To provide a custom HTTP
client, use option.WithHTTPClient. If you are using
google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey
with NewService instead. (staticcheck)
- builder/googlecompute/driver_gce.go:132:25: SA1019: oslogin.New is
deprecated: please use NewService instead. To provide a custom HTTP
client, use option.WithHTTPClient. If you are using
google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey
with NewService instead. (staticcheck)
```
Static check after change
```
[go-1.15.2] [1] wilken@automaton in ~/Development/packer/
⇶ golangci-lint run --disable-all --no-config --enable=staticcheck | grep SA1019 | grep google
```