Commit 8e44a17
authored
fix: use pointer handle null values (#679)
Note: Required after the update to `hashicorp/packer-plugin-sdk` v0.6.6.
Change `DirPerm` in `OutputConfig` from `os.FileMode` to `*os.FileMode`
so that HCL2 can correctly represent the field as optional/nullable.
When `directory_permission` is not set in a onfiguration, the packer-sdc generated flat struct receives a cty null value for the field. Assigning a cty null to a non-pointer `os.FileMode` causes a runtime panic: "null value is not allowed". Using a pointer type allows the field to be nil when omitted, which is handled in `Prepare()` by falling back to the default permission of `0750`.
The corresponding generated `hcl2spec.go` files (`output_config` and `step_export`) are updated to mirror the pointer type. Because the pointer is now declared in the source struct, future runs of `make generate` will regenerate these files with `*os.FileMode`.
Fixes:
- Runtime error: null value is not allowed [directory_permission]
- Build error: cannot use DirPerm (type *os.FileMode) as os.FileMode
Ref: #675
Signed-off-by: Ryan Johnson <ryan.johnson@broadcom.com>1 parent e11f0fe commit 8e44a17
8 files changed
Lines changed: 23 additions & 17 deletions
File tree
- .web-docs/components/builder
- vsphere-clone
- vsphere-iso
- builder/vsphere/common
- docs-partials/builder/vsphere/common
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1641 | 1641 | | |
1642 | 1642 | | |
1643 | 1643 | | |
1644 | | - | |
| 1644 | + | |
1645 | 1645 | | |
1646 | 1646 | | |
1647 | 1647 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1489 | 1489 | | |
1490 | 1490 | | |
1491 | 1491 | | |
1492 | | - | |
| 1492 | + | |
1493 | 1493 | | |
1494 | 1494 | | |
1495 | 1495 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
32 | 37 | | |
33 | 38 | | |
34 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | | - | |
| 162 | + | |
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
0 commit comments