Commit Graph
69 Commits
Author SHA1 Message Date
Karthik P 089df02532 Powershell Provisioner Error Handling (#13334)
* WIP Testing Approach

* WIP Testing Approach

* WIP Testing Approach Work

* WIP Testing Approach

* adding acceptance test for windows Amazon EBS.

* modify wrapper string to use Set-Variable

* fixing unit tests

* cleanup

* updated approach to use -file instead of inline powershell execution.

* adding more scenarios for acceptance test.

* using writeString for file directly.

* changing variable name

* updating test case. cleanup.

* updating test case

* updating test case

* updating test case - nested try catch

* adding unit test for None Execution Policy

* adding unit test for None Execution Policy

* fix test case
2025-04-25 11:23:32 +05:30
guoguangwu 7eb6a45cd4 chore: remove refs to deprecated io/ioutil
Signed-off-by: guoguangwu <[email protected]>
2023-09-26 11:13:31 -04:00
hashicorp-copywrite[bot] 19055df3ec [COMPLIANCE] License changes (#12568)
* Updating the license from MPL to Business Source License

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at https://hashi.co/license-faq, and details of the license at www.hashicorp.com/bsl.

* Update copyright file headers to BUSL-1.1

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2023-08-10 15:53:29 -07:00
hashicorp-copywrite[bot] b7df3ca36f [COMPLIANCE] Add Copyright and License Headers (#12254)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2023-03-02 15:37:05 -05:00
Lucas BajoletandEd Eustace f4a2ac3b31 feat: support pwsh in powershell provisioner (#11950)
* set `pwsh` to true in config to run `pwsh.exe`, default is false.
* add docs

Co-authored-by: Ed Eustace <[email protected]>
2022-08-19 16:00:46 -04:00
Lucas Bajolet c99b300e3a Add support for Env in remote shell provisioners (#11819)
* provisioner/shell: add support for Env variables

As mentioned in issue #11670, the Shell provider did not support Env
variable declarations in the HCL templates.
This commit adds the capability to the code.

* provisioner/powershell: add support for Env vars

* provisioner/windows-shell: support Env variables
2022-05-31 09:49:38 -04:00
teddylear d00a41c6ae fix: updates to have make fmt-check and ci-lint pass 2022-05-27 19:36:41 -04:00
teddylear 000ace61a3 feat: Add pause_after config to powershell provisioner like shell
provisioner
2022-05-18 17:35:48 -04:00
Megan Marsh 88b7b0e14a remove sdk 2020-12-17 13:29:25 -08:00
Megan Marsh 5576bb5caa move packer config constants next to the packer config 2020-12-03 10:17:35 -08:00
Megan Marsh be5763ec41 move provisioner interface into sdk 2020-12-01 14:25:14 -08:00
Megan Marsh d5971ca25e fix tests by moving mock hooks and communicators, and BasicUi definition, into SDK 2020-11-30 14:30:30 -08:00
Megan Marsh 3f6deb8828 move multistep into the plugin sdk 2020-11-17 16:31:03 -08:00
Megan Marsh 7d658149ea update tests and website and generated partials to reflect new package format 2020-11-17 10:36:01 -08:00
Megan Marsh c4d0c5505a fix tests
regenerate code
regenerate code, revendor
fix website
2020-11-13 15:00:12 -08:00
Megan Marsh e04eaa89e6 move steps and step configs from packer/common to packer/common/commonsteps 2020-11-13 11:15:04 -08:00
Wilken Rivera d72173ac1a Revert "Merge pull request #9040 from hashicorp/powershell-exit-code-fix-4916"
This reverts commit 334f399ee3, reversing
changes made to 45a5d28bad.

When testing against Windows SSH the Powershell script fails to parse
the newly added if statement.
2020-06-09 11:41:07 -04:00
Wilken Rivera 2e326ef334 Switch back to call operator as opposed to dot sourcing
* Ensure child scope doesn't conflict with parent scope
* Add elevated user options to tests case.
2020-05-21 09:07:55 -04:00
Wilken Rivera 35df3914d2 provisioner/powershell: Update default execute command to handle script errors
This change sets the ErrorActionPreference and wraps the script execution in a Try/Catch statement so that the provisioner can capture any errors encountered when running the script. In addition to the try/catch the `&` operator is replaced by the `.` sourcing operator to ensure the script is executed in the same scope as the parent command (so that errors bubble up properly).

Tests after change
```
⇶  ACC_TEST_BUILDERS=amazon-ebs ACC_TEST_PROVISIONERS=powershell go test ./provisioner/powershell/... -timeout=1h
ok      github.com/hashicorp/packer/provisioner/powershell      915.865s
```
2020-05-21 09:05:43 -04:00
Sylvia Moss 1c30a71d09 Replace file shared state by statebag (#9238) 2020-05-19 11:49:48 +02:00
Matt Kotsenas fe55494207 Add debug_mode to PowerShell provisioner (#8996) 2020-04-17 11:39:39 +02:00
Wilken Rivera 11db6014fa provisioner/powershell: Update remote clean up logic
* Add retry logic so that the provisioner will retry if it fails to upload/execute because of some restart provisioner step
* Add a testConfigWithSkipClean for testing that the provisioner executes the correct commands
* Add a test case for toggling the "skip_clean" config option
2020-04-08 00:23:40 -04:00
Megan Marsh bdcc95f989 fix execution policy parser to not interfere with legit integers, and add tests (#8997) 2020-04-07 10:32:58 +02:00
Megan Marsh 39fd462b56 change all provision func signatures to use map[string]interface{} 2019-12-12 15:38:32 -08:00
Megan Marsh 0ca7c9f397 fix tests 2019-12-11 16:29:35 -08:00
Adrien Delorme 819329228a Change back to make sure all durations are a time.Duration
It is simply the best/simplest solution and trying to prevent users from passing and integer here would be like opening a can of worms. Because:

* we cannot make mapstructure validate our duration string ( with an UnmarshalJSON func etc.)
* we cannot make mapstructure spit a string instead of a duration and packer will decode-encode-decode config.
* the hcl2 generated code asks for a string, so this will be enforced by default.
2019-10-31 16:12:07 +01:00
Adrien Delorme bf3d9841c6 Force durations to be passed a strings
Before this commit it was possible to set a duration using an integer or a float. Go's time.Duration is an int64 internally an mapstructure will take advantage of this and load the number as a int64 but `1` means one ns which is unexpected/confusing. To avoid confusion and enforce readability this forces users to pass a string with a unit for a duration; ex "56s".
2019-10-31 11:47:19 +01:00
Paul Meyer ec14ab4875 Add unit test to find issue #7655 2019-05-17 22:27:19 +00:00
Adrien Delorme d72040f4fa move retry code into the common/retry pkg and make retry context aware 2019-04-09 17:46:38 +02:00
Adrien Delorme c7ce4d598e change Provisioner to be passed a context for cancellation 2019-04-03 15:55:54 +02:00
Adrien Delorme a77ce59e36 Update provisioner_test.go
remove unecessary test
2019-03-14 12:48:21 +01:00
Matt Dainty 19bd28cd72 Fix/add tests 2018-12-07 16:23:03 +00:00
Matt Dainty 412119c27e Fix powershell provisioner tests 2018-11-09 14:26:21 +00:00
Megan Marsh 1d1729a5ff fix powershell tests to use new command 2018-10-12 09:54:27 -07:00
Megan Marsh a0edaf6c46 Going to revert this change for now, becuase of potential issues that arise from calling Prepare() twice
Revert "use statebag instead of SetSharedState for winRM password"

This reverts commit b35acbd879.
2018-09-10 16:48:42 -07:00
Megan Marsh b35acbd879 use statebag instead of SetSharedState for winRM password 2018-08-24 13:51:16 -07:00
DanHam b738f41efa Remove tmp files created by provisioner/powershell tests 2018-04-30 20:38:03 +01:00
DanHam ccf687dac6 Fix tests 2018-04-24 11:10:35 +01:00
Josh Soref 24b4c36fc9 spelling: function 2018-03-13 07:52:02 +00:00
Megan Marsh f3a538db46 fix tests 2018-03-09 13:36:47 -08:00
Megan Marsh 3faf73b5f3 change backslashes to forward slashes in powershell provisioner; was breaking with cygwin 2018-03-09 09:29:29 -08:00
DanHam aaf7102b9a Tests for escape of chars special to PowerShell in user supplied data 2018-02-08 12:03:18 +00:00
DanHam a7b118ed94 Fix tests post changes. Add test for upload func. 2018-02-08 12:03:18 +00:00
Megan Marsh addedbb680 Revert "Merge pull request #5515 from DanHam/dot-source-env-vars"
revert so we can use a branch that's had more recent work done
This reverts commit e56849c605, reversing
changes made to 6d14eb6ea4.
2018-02-02 09:58:39 -08:00
Megan Marsh 79fe900378 Revert "Merge pull request #5376 from DanHam/ps-escapes"
Revert so that we can merge a different branch that's had more recent work instead
This reverts commit ba518637d4, reversing
changes made to e56849c605.
2018-02-02 09:57:36 -08:00
DanHam b67c64fd66 Tests for escape of chars special to PowerShell in user supplied data 2018-02-01 13:19:07 -08:00
DanHam 4b89fc1c00 Fix tests post changes. Add test for upload func. 2017-10-30 21:08:14 +00:00
DanHam fa5fd602aa Fix tests post changes 2017-09-26 11:07:26 +01:00
Megan Marsh b05c673a14 Update powershell provisioner test with new default 2017-09-15 08:17:17 -07:00
Megan Marsh 89b058604d update tests for pull 5272 2017-08-22 14:20:40 -07:00