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
Include zebra striping on page load before JavaScript

This removes the table's occasional white flicker
when the page loads.
Shorten a few lines longer than 120 chars
Fix small edge case bug on lone()

If security group stops existing, use loneOrNone()
to get null instead of lone(). Otherwise there's no
reason to use null safe operator on the next line.

Also, remove unnecessary null safety on "result".
Remove unused methods
Make ‘tcp’ a static variable for re-use
Better GroovyDoc comments
Unit tests for portString() method
ASGARD-923 - Only one auth-revoke task with many IP permissions for each security group pair change

Refactored and enhanced the Security Group permissions authorization and revocation code so that, for each relationship between a target-source pair of Security Groups, Asgard will:
Combine all IP permission authorizations into one Amazon call
Combine all IP permission revocations into one Amazon call
Combine all authorization and revocations into one Asgard task