gitextract_54dtl7c9/ ├── .gitignore ├── .netflixoss ├── .travis.yml ├── CHANGELOG.md ├── GNUmakefile ├── LICENSE ├── OSSMETADATA ├── README.md ├── build.gradle ├── buildViaTravis.sh ├── codequality/ │ ├── checkstyle.xml │ └── org.eclipse.jdt.core.prefs ├── gradle/ │ └── wrapper/ │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── installViaTravis.sh ├── settings.gradle └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── simianarmy/ │ │ ├── AbstractEmailBuilder.java │ │ ├── CloudClient.java │ │ ├── EmailBuilder.java │ │ ├── EventType.java │ │ ├── FeatureNotEnabledException.java │ │ ├── GroupType.java │ │ ├── InstanceGroupNotFoundException.java │ │ ├── Monkey.java │ │ ├── MonkeyCalendar.java │ │ ├── MonkeyConfiguration.java │ │ ├── MonkeyEmailNotifier.java │ │ ├── MonkeyRecorder.java │ │ ├── MonkeyRunner.java │ │ ├── MonkeyScheduler.java │ │ ├── MonkeyType.java │ │ ├── NamedType.java │ │ ├── NotFoundException.java │ │ ├── Resource.java │ │ ├── ResourceType.java │ │ ├── aws/ │ │ │ ├── AWSEmailNotifier.java │ │ │ ├── AWSResource.java │ │ │ ├── AWSResourceType.java │ │ │ ├── RDSRecorder.java │ │ │ ├── STSAssumeRoleSessionCredentialsProvider.java │ │ │ ├── SimpleDBRecorder.java │ │ │ ├── conformity/ │ │ │ │ ├── RDSConformityClusterTracker.java │ │ │ │ ├── SimpleDBConformityClusterTracker.java │ │ │ │ ├── crawler/ │ │ │ │ │ └── AWSClusterCrawler.java │ │ │ │ └── rule/ │ │ │ │ ├── BasicConformityEurekaClient.java │ │ │ │ ├── ConformityEurekaClient.java │ │ │ │ ├── CrossZoneLoadBalancing.java │ │ │ │ ├── InstanceHasHealthCheckUrl.java │ │ │ │ ├── InstanceHasStatusUrl.java │ │ │ │ ├── InstanceInSecurityGroup.java │ │ │ │ ├── InstanceInVPC.java │ │ │ │ ├── InstanceIsHealthyInEureka.java │ │ │ │ ├── InstanceTooOld.java │ │ │ │ └── SameZonesInElbAndAsg.java │ │ │ └── janitor/ │ │ │ ├── ASGJanitor.java │ │ │ ├── EBSSnapshotJanitor.java │ │ │ ├── EBSVolumeJanitor.java │ │ │ ├── ELBJanitor.java │ │ │ ├── ImageJanitor.java │ │ │ ├── InstanceJanitor.java │ │ │ ├── LaunchConfigJanitor.java │ │ │ ├── RDSJanitorResourceTracker.java │ │ │ ├── SimpleDBJanitorResourceTracker.java │ │ │ ├── VolumeTaggingMonkey.java │ │ │ ├── crawler/ │ │ │ │ ├── ASGJanitorCrawler.java │ │ │ │ ├── AbstractAWSJanitorCrawler.java │ │ │ │ ├── EBSSnapshotJanitorCrawler.java │ │ │ │ ├── EBSVolumeJanitorCrawler.java │ │ │ │ ├── ELBJanitorCrawler.java │ │ │ │ ├── InstanceJanitorCrawler.java │ │ │ │ ├── LaunchConfigJanitorCrawler.java │ │ │ │ └── edda/ │ │ │ │ ├── EddaASGJanitorCrawler.java │ │ │ │ ├── EddaEBSSnapshotJanitorCrawler.java │ │ │ │ ├── EddaEBSVolumeJanitorCrawler.java │ │ │ │ ├── EddaELBJanitorCrawler.java │ │ │ │ ├── EddaImageJanitorCrawler.java │ │ │ │ ├── EddaInstanceJanitorCrawler.java │ │ │ │ ├── EddaLaunchConfigJanitorCrawler.java │ │ │ │ └── EddaUtils.java │ │ │ └── rule/ │ │ │ ├── ami/ │ │ │ │ └── UnusedImageRule.java │ │ │ ├── asg/ │ │ │ │ ├── ASGInstanceValidator.java │ │ │ │ ├── DiscoveryASGInstanceValidator.java │ │ │ │ ├── DummyASGInstanceValidator.java │ │ │ │ ├── OldEmptyASGRule.java │ │ │ │ └── SuspendedASGRule.java │ │ │ ├── elb/ │ │ │ │ └── OrphanedELBRule.java │ │ │ ├── generic/ │ │ │ │ ├── TagValueExclusionRule.java │ │ │ │ └── UntaggedRule.java │ │ │ ├── instance/ │ │ │ │ └── OrphanedInstanceRule.java │ │ │ ├── launchconfig/ │ │ │ │ └── OldUnusedLaunchConfigRule.java │ │ │ ├── snapshot/ │ │ │ │ └── NoGeneratedAMIRule.java │ │ │ └── volume/ │ │ │ ├── DeleteOnTerminationRule.java │ │ │ └── OldDetachedVolumeRule.java │ │ ├── basic/ │ │ │ ├── BasicCalendar.java │ │ │ ├── BasicChaosMonkeyContext.java │ │ │ ├── BasicConfiguration.java │ │ │ ├── BasicMonkeyServer.java │ │ │ ├── BasicRecorderEvent.java │ │ │ ├── BasicScheduler.java │ │ │ ├── BasicSimianArmyContext.java │ │ │ ├── LocalDbRecorder.java │ │ │ ├── calendars/ │ │ │ │ └── BavarianCalendar.java │ │ │ ├── chaos/ │ │ │ │ ├── BasicChaosEmailNotifier.java │ │ │ │ ├── BasicChaosInstanceSelector.java │ │ │ │ ├── BasicChaosMonkey.java │ │ │ │ ├── BasicInstanceGroup.java │ │ │ │ └── CloudFormationChaosMonkey.java │ │ │ ├── conformity/ │ │ │ │ ├── BasicConformityEmailBuilder.java │ │ │ │ ├── BasicConformityMonkey.java │ │ │ │ └── BasicConformityMonkeyContext.java │ │ │ └── janitor/ │ │ │ ├── BasicJanitorEmailBuilder.java │ │ │ ├── BasicJanitorMonkey.java │ │ │ ├── BasicJanitorMonkeyContext.java │ │ │ ├── BasicJanitorRuleEngine.java │ │ │ └── BasicVolumeTaggingMonkeyContext.java │ │ ├── chaos/ │ │ │ ├── BlockAllNetworkTrafficChaosType.java │ │ │ ├── BurnCpuChaosType.java │ │ │ ├── BurnIoChaosType.java │ │ │ ├── ChaosCrawler.java │ │ │ ├── ChaosEmailNotifier.java │ │ │ ├── ChaosInstance.java │ │ │ ├── ChaosInstanceSelector.java │ │ │ ├── ChaosMonkey.java │ │ │ ├── ChaosType.java │ │ │ ├── DetachVolumesChaosType.java │ │ │ ├── FailDnsChaosType.java │ │ │ ├── FailDynamoDbChaosType.java │ │ │ ├── FailEc2ChaosType.java │ │ │ ├── FailS3ChaosType.java │ │ │ ├── FillDiskChaosType.java │ │ │ ├── KillProcessesChaosType.java │ │ │ ├── NetworkCorruptionChaosType.java │ │ │ ├── NetworkLatencyChaosType.java │ │ │ ├── NetworkLossChaosType.java │ │ │ ├── NullRouteChaosType.java │ │ │ ├── ScriptChaosType.java │ │ │ ├── ShutdownInstanceChaosType.java │ │ │ └── SshConfig.java │ │ ├── client/ │ │ │ ├── MonkeyRestClient.java │ │ │ ├── aws/ │ │ │ │ ├── AWSClient.java │ │ │ │ └── chaos/ │ │ │ │ ├── ASGChaosCrawler.java │ │ │ │ ├── FilteringChaosCrawler.java │ │ │ │ └── TagPredicate.java │ │ │ ├── edda/ │ │ │ │ └── EddaClient.java │ │ │ └── vsphere/ │ │ │ ├── PropertyBasedTerminationStrategy.java │ │ │ ├── TerminationStrategy.java │ │ │ ├── VSphereClient.java │ │ │ ├── VSphereContext.java │ │ │ ├── VSphereGroups.java │ │ │ └── VSphereServiceConnection.java │ │ ├── conformity/ │ │ │ ├── AutoScalingGroup.java │ │ │ ├── Cluster.java │ │ │ ├── ClusterCrawler.java │ │ │ ├── Conformity.java │ │ │ ├── ConformityClusterTracker.java │ │ │ ├── ConformityEmailBuilder.java │ │ │ ├── ConformityEmailNotifier.java │ │ │ ├── ConformityMonkey.java │ │ │ ├── ConformityRule.java │ │ │ └── ConformityRuleEngine.java │ │ ├── janitor/ │ │ │ ├── AbstractJanitor.java │ │ │ ├── DryRunnableJanitor.java │ │ │ ├── DryRunnableJanitorException.java │ │ │ ├── Janitor.java │ │ │ ├── JanitorCrawler.java │ │ │ ├── JanitorEmailBuilder.java │ │ │ ├── JanitorEmailNotifier.java │ │ │ ├── JanitorMonkey.java │ │ │ ├── JanitorResourceTracker.java │ │ │ ├── JanitorRuleEngine.java │ │ │ └── Rule.java │ │ ├── resources/ │ │ │ ├── chaos/ │ │ │ │ └── ChaosMonkeyResource.java │ │ │ └── janitor/ │ │ │ └── JanitorMonkeyResource.java │ │ └── tunable/ │ │ ├── TunableInstanceGroup.java │ │ └── TunablyAggressiveChaosMonkey.java │ ├── resources/ │ │ ├── chaos.properties │ │ ├── client.properties │ │ ├── conformity.properties │ │ ├── janitor.properties │ │ ├── log4j.properties │ │ ├── scripts/ │ │ │ ├── burncpu.sh │ │ │ ├── burnio.sh │ │ │ ├── faildns.sh │ │ │ ├── faildynamodb.sh │ │ │ ├── failec2.sh │ │ │ ├── fails3.sh │ │ │ ├── filldisk.sh │ │ │ ├── killprocesses.sh │ │ │ ├── networkcorruption.sh │ │ │ ├── networklatency.sh │ │ │ ├── networkloss.sh │ │ │ └── nullroute.sh │ │ ├── simianarmy.properties │ │ └── volumeTagging.properties │ └── webapp/ │ └── WEB-INF/ │ └── web.xml └── test/ ├── java/ │ └── com/ │ └── netflix/ │ └── simianarmy/ │ ├── TestMonkey.java │ ├── TestMonkeyContext.java │ ├── TestMonkeyRunner.java │ ├── TestUtils.java │ ├── aws/ │ │ ├── TestAWSEmailNotifier.java │ │ ├── TestRDSRecorder.java │ │ ├── TestSimpleDBRecorder.java │ │ ├── conformity/ │ │ │ ├── TestASGOwnerEmailTag.java │ │ │ ├── TestRDSConformityClusterTracker.java │ │ │ └── rule/ │ │ │ └── TestInstanceInVPC.java │ │ └── janitor/ │ │ ├── TestAWSResource.java │ │ ├── TestRDSJanitorResourceTracker.java │ │ ├── TestSimpleDBJanitorResourceTracker.java │ │ ├── crawler/ │ │ │ ├── TestASGJanitorCrawler.java │ │ │ ├── TestEBSSnapshotJanitorCrawler.java │ │ │ ├── TestEBSVolumeJanitorCrawler.java │ │ │ ├── TestELBJanitorCrawler.java │ │ │ ├── TestInstanceJanitorCrawler.java │ │ │ └── TestLaunchConfigJanitorCrawler.java │ │ └── rule/ │ │ ├── TestMonkeyCalendar.java │ │ ├── asg/ │ │ │ ├── TestOldEmptyASGRule.java │ │ │ └── TestSuspendedASGRule.java │ │ ├── elb/ │ │ │ └── TestOrphanedELBRule.java │ │ ├── generic/ │ │ │ ├── TestTagValueExclusionRule.java │ │ │ └── TestUntaggedRule.java │ │ ├── instance/ │ │ │ └── TestOrphanedInstanceRule.java │ │ ├── launchconfig/ │ │ │ └── TestOldUnusedLaunchConfigRule.java │ │ ├── snapshot/ │ │ │ └── TestNoGeneratedAMIRule.java │ │ └── volume/ │ │ └── TestOldDetachedVolumeRule.java │ ├── basic/ │ │ ├── TestBasicCalendar.java │ │ ├── TestBasicConfiguration.java │ │ ├── TestBasicContext.java │ │ ├── TestBasicMonkeyServer.java │ │ ├── TestBasicRecorderEvent.java │ │ ├── TestBasicScheduler.java │ │ ├── calendar/ │ │ │ └── TestBavarianCalendar.java │ │ ├── chaos/ │ │ │ ├── TestBasicChaosEmailNotifier.java │ │ │ ├── TestBasicChaosInstanceSelector.java │ │ │ ├── TestBasicChaosMonkey.java │ │ │ └── TestCloudFormationChaosMonkey.java │ │ └── janitor/ │ │ └── TestBasicJanitorRuleEngine.java │ ├── chaos/ │ │ ├── TestChaosMonkeyArmy.java │ │ └── TestChaosMonkeyContext.java │ ├── client/ │ │ ├── aws/ │ │ │ ├── TestAWSClient.java │ │ │ └── chaos/ │ │ │ ├── TestASGChaosCrawler.java │ │ │ └── TestFilterASGChaosCrawler.java │ │ └── vsphere/ │ │ ├── TestPropertyBasedTerminationStrategy.java │ │ ├── TestVSpehereClient.java │ │ ├── TestVSphereContext.java │ │ ├── TestVSphereGroups.java │ │ └── TestVSphereServiceConnection.java │ ├── conformity/ │ │ ├── TestCrossZoneLoadBalancing.java │ │ └── TestSameZonesInElbAndAsg.java │ ├── janitor/ │ │ ├── TestAbstractJanitor.java │ │ └── TestBasicJanitorMonkeyContext.java │ ├── resources/ │ │ └── chaos/ │ │ └── TestChaosMonkeyResource.java │ └── tunable/ │ └── TestTunablyAggressiveChaosMonkey.java └── resources/ ├── chaos.properties ├── client.properties ├── com/ │ └── netflix/ │ └── simianarmy/ │ ├── chaos/ │ │ ├── all.properties │ │ ├── cloudformation.properties │ │ ├── disabled.properties │ │ ├── enabledA.properties │ │ ├── enabledAwith0.properties │ │ ├── enabledAwithout1.properties │ │ ├── enabledB.properties │ │ ├── fullProbability.properties │ │ ├── globalNotificationEnabled.properties │ │ ├── mandatoryTerminationDisabled.properties │ │ ├── mandatoryTerminationInsideWindow.properties │ │ ├── mandatoryTerminationNoOptInTime.properties │ │ ├── mandatoryTerminationNotDefined.properties │ │ ├── mandatoryTerminationOutsideWindow.properties │ │ ├── noProbability.properties │ │ ├── noProbabilityByName.properties │ │ ├── notificationEnabled.properties │ │ ├── ondemandTermination.properties │ │ ├── ondemandTerminationDisabled.properties │ │ ├── propertiesWithDefaults.properties │ │ ├── terminationPerDayAsBiggerThanOne.properties │ │ ├── terminationPerDayAsNegative.properties │ │ ├── terminationPerDayAsOne.properties │ │ ├── terminationPerDayAsSmallerThanOne.properties │ │ ├── terminationPerDayAsVerySmall.properties │ │ ├── terminationPerDayAsZero.properties │ │ ├── terminationPerDayGroupLevel.properties │ │ ├── unleashedEnabledA.properties │ │ └── unleashedEnabledB.properties │ └── resources/ │ └── chaos/ │ └── getChaosEventsResponse.json ├── log4j.properties ├── proxy.properties └── simianarmy.properties