#4311
see prepopulateService - attempts to pre-populate the region and stage settings necessary for making a request to AWS, rejecting and dependencies thereon it runs into during that process
see the `deep` variable work. this was a knock-on effect of providing pre-population. it actually represents an obscure class of bugs where the recursive population previously in getDeepValue caused the caller not to be in charge of population choices (thus fixing for pre-population) but also caused potential deadlocks resulting from getDeepValue creating circular dependencies.
#4734
see splitByComma - a regex to do the splitting but ignore quoted commas was getting very deep and involved. Instead, identify quoted string boundaries, then identify commas (including white space around them) and take those commas not contained by quotes as the locations for splitting the given string. Trim the string as well (removing leading and trailing white space).
add sophistication to the overwrite syntax, allowing for whitespace and repetitions (for robustness)
add sophistication to the string ref syntax, allowing for use in identifying multiple quoted strings in a variable (i.e. for overwrites)
#NotCreated
fix a bug I created earlier in the branch that caused reporting to be less informative (see renderMatches)
separate PromiseTracker
move this class into its own file for the purpose of increasing testability and offering reuse
minutiae
filter the properties given to populateVariables so as to avoid attempting resolution on non-variables. Efficiency and noise reduction change. Also cleans up the code (e.g. see populateObject and its use)
cleaning of overwrite as a side effect
offer variable cleaning as a idiom
reorder the Variables.js `require`s to be in alphabetical order
Delete bucket was still using them
Hopefully all :)
Further test fixes.
.... worked too long yesterday
Fixed Variable tests
Remove not used parameters from request() and add options with warning
Make sure that requests are throttled. Use a queue for the requests.
Added new expected parameter to request() call in variables test
Added request cache tests
Check that request is indeed called 1000 times
Cache promises, not values
Use request cache for AWS variable requests
Use fromCallback instead of "new Promise" anti-pattern.
Added request cache to AWS provider
This commit removes a hardcoded 5 second sleep intended to help handle
rate limits. The retry interval is changed during the test to 250ms from
5 seconds, with no change to the runtime behavior of the framework.
Check for the roleArn attribute on ini file loaded credentials. If that exists, then asynchronous (assume role) credentials are being loaded but they may not yet be received. Accept these as valid credentials and use the containing credentials object as the current credentials object.
Clean up the test data (fakeCredentials didn't need so much)
Create a test that verifies the async credential loading functionality
Create a test that ensures a non-existent profile one attempts to load does not load any credentials
Bump the version of the aws-sdk so that the modified aws-sdk will be demanded for proper handling of this feature.
Merge fixes from both #2373 & #2695, adding editorial suggestions and future-proofing them a bit (probably)
Clean up tests to broadly clean and restore process/test environment and simplify test code.
This work uncovered that we were returning profiles when no profile credentials were loaded. This seems inappropriate. The tests were modified to use the temporary credential file code that @stevecaldwell77 wrote, exclusively. This way there are actual credentials to load from the given profile.
I am not sure how to test the assume-role/asynchronous STS credential loading capability and would love some help making sure that is right