Regression Suite
-------------

This is a regression suite that runs against a real amazon aws instance and ensures core functionality within asgard works.

It assumes that the proper credentials have been added to the .asgard directory.

This set of tests also assumes there is an SSH key called nflxoss-asgard in the us-east region.

The set of tests are not ran by default as this would mean charges incurred against an AWS account.

To run the tests, call

./grailsw -DregressionSuite=true test-app functional:

This set of tests should be able to run against Saucelabs provided the correct credentials are provided.

The command to do so is:
./grailsw -DregressionSuite=true -Dgeb.env=sauce -Dsaucelabs.username=$SAUCE_USER_NAME -Dsaucelabs.key=$SAUCE_API_KEY test-app functional:

The Geb Configuration included in these set of tests also allow the RegressionSpec to be ran as a set of jUnit tests in IntelliJ idea granted the System property RegressionSuite=true is set as a default in jUnit tests.
FileEndsWithoutNewline codenarc custom rule
MissingCopyrightHeader custom codenarc rule via RequiredRegex
BlankLineBeforePackage codenarc custom rule
MissingBlankLineAfterPackage codenarc custom rule
MissingBlankLineAfterImports codenarc custom rule
TrailingWhitespace custom codenarc rule via IllegalRegex
CodeNarc research comments
Space before open brace where appropriate

The codenarc rule SpaceBeforeOpeningBrace needs some work to allow cases like these:
call({ go() }, 4)
[{ okie() }, { dokie() }]
Refactored InstanceController allowed methods syntax
Required all instance mutation calls to be POST requests
Standardized whitespace
changes to support SMTP auth and SSL
codenarc fixes
general streamlining of workflow based on judge revelations
rollback in one place based on exceptions that stop the workflow
improved logging
remove judgement period and subsequent health check when no judge is asked
notify at the beginning of judgment period
update terminology
separate scale up and determining to proceed
update to Glisten 0.3
ridiculous change to work around Groovy/Grails weirdness
Trying to trick the IDE into giving us code completion for a method that isn’t actually there. Method missing will actually be called.
For some reason I get errors for using as <interface> here on the Grails command line.
It will work if I use the method handle as a closure.
The original code works in a Gradle project and in IntelliJ, but not on the Grails command line.
remove debugging println in test
ASG create have no instances and scale up later
Add missing unit test for happy path of AwsEc2Service.getInstanceReservation which I recently broke