Output too large. Showing first 8,000 and last 32,000 characters. For full output see: /Users/bob/.gemini/tmp/dalmatian/tool-outputs/session-cebedcb4-6673-4a0e-bf61-a131af573337/run_shell_command_1771603534222_0.txt
Output: ==> Linting YAML...

==> Linting shell scripts...

==> Checking Terraform for JSON errors...
- Checking ./terraform/policies/iam-read.json... Passed
- Checking ./terraform/policies/s3-rw-with-versioning.json... Passed
- Checking ./terraform/policies/codestar-connection-use.json... Passed
- Checking ./terraform/policies/iam-create-access-key.json... Passed
- Checking ./terraform/policies/codebuild.json... Passed
- Checking ./terraform/policies/kms-encrypt-decrypt.json... Passed
- Checking ./terraform/policies/iam-change-password.json... Passed
- Checking ./terraform/policies/administrator-access.json... Passed
- Checking ./terraform/policies/assume_roles/aws-backup.json... Passed
- Checking ./terraform/policies/assume_roles/autoscaling.json... Passed
- Checking ./terraform/policies/assume_roles/events.json... Passed
- Checking ./terraform/policies/assume_roles/ecs.json... Passed
- Checking ./terraform/policies/assume_roles/codepipeline.json... Passed
- Checking ./terraform/policies/iam-mfa.json... Passed
- Checking ./terraform/policies/route53-read.json... Passed
- Checking ./terraform/policies/s3-full-access.json... Passed
- Checking ./terraform/policies/parameter-store-read-decrypt.json... Passed
- Checking ./terraform/policies/s3-read.json... Passed
- Checking ./terraform/policies/parameter-store-RW-encrypt-decrypt.json... Passed
- Checking ./terraform/policies/all-read-with-billing.json... Passed
- Checking ./terraform/policies/codebuild-start-build.json... Passed
- Checking ./terraform/policies/all-read.json... Passed

==> Linting Terraform...

==> Running Ruby tests...
/Users/bob/.rbenv/versions/2.7.1/bin/ruby -I/Users/bob/.bundles/ruby/2.7.0/gems/rspec-core-3.12.2/lib:/Users/bob/.bundles/ruby/2.7.0/gems/rspec-support-3.12.1/lib /Users/bob/.bundles/ruby/2.7.0/gems/rspec-core-3.12.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb

tests local configuration
  use of "terraform apply"
    passes the hosted zone config to "terraform apply" (FAILED - 1)
    passes the s3 config to "terraform apply" (FAILED - 2)
    passes the vpn customer gateway config to "terraform apply" (FAILED - 3)
    passes the base config to "terraform apply" (FAILED - 4)
    passes the waf config to "terraform apply" (FAILED - 5)
    passes the rds config to "terraform apply" (FAILED - 6)
    passes the aurora config to "terraform apply" (FAILED - 7)
    passes the elasticache config to "terraform apply" (FAILED - 8)
    passes the opensearch config to "terraform apply" (FAILED - 9)
    passes the service config to "terraform apply" (FAILED - 10)
    passes the loadbalancer config to "terraform apply" (FAILED - 11)
    passes the cluster 2 config to "terraform apply" (FAILED - 12)
    passes the cluster 3 config to "terraform apply" (FAILED - 13)
    passes the cluster 4 config to "terraform apply" (FAILED - 14)

tests remote configuration
  retrieves the remotely held full configuration
  proceeds with deploying the infrastructure as per the cached full configuration

tests local configuration
debug Testing Aurora
  invokes  "terraform validate" with the expected cluster options (FAILED - 15)
debug Testing Aurora
  invokes  "terraform validate" with the expected source options (FAILED - 16)
  use of "terraform plan"
debug Testing Aurora
    passes the hosted zone config to "terraform plan" (FAILED - 17)
debug Testing Aurora
    passes the s3 config to "terraform plan" (FAILED - 18)
debug Testing Aurora
    passes the vpn customer gateway config to "terraform plan" (FAILED - 19)
debug Testing Aurora
    passes the base config to "terraform plan" (FAILED - 20)
debug Testing Aurora
    passes the waf config to "terraform plan" (FAILED - 21)
debug Testing Aurora
    passes the rds config to "terraform plan" (FAILED - 22)
debug Testing Aurora
    passes the aurora config to "terraform plan" (FAILED - 23)
debug Testing Aurora
    passes the elasticache config to "terraform plan" (FAILED - 24)
debug Testing Aurora
    passes the opensearch config to "terraform plan" (FAILED - 25)
debug Testing Aurora
    passes the services config to "terraform plan" (FAILED - 26)
debug Testing Aurora
    passes the loadbalancer config to "terraform plan" (FAILED - 27)
debug Testing Aurora
    passes the cluster 2 config to "terraform plan" (FAILED - 28)
debug Testing Aurora
    passes the cluster 3 config to "terraform plan" (FAILED - 29)
debug Testing Aurora
    passes the cluster 4 config to "terraform plan" (FAILED - 30)

Dalmatian::Account
  initialisation
    gathering user input
      asks the user for AWS credentials
      asks the user for the AWS account id to use
      asks the user for an account alias
  #call
    changes to the bootstrapping directory
    runs terraform init with upgrade option
    creates the new workspace using the given aws account id and alias
    runs terraform apply with the user-supplied vars

Dalmatian::AuroraDeployment
  #call
    changes to aurora infrastructure directory
    asks Terraform to ensure that the workspace is in place
    when in _plan_ mode
      invokes Terraform.plan with the _dalmatian-read_ role
    when NOT in _plan_ mode
      invokes Terraform.apply with the _dalmatian-admin_ role
      when in _auto_approve_ mode
        asks Terraform to use auto_approve mode

Dalmatian::Aurora
  #identifier
    uses aurora identifier
  #in_use_by
    uses aurora in_use_by list
  #clusters_in_use
    uses aurora clusters_in_use list
  #minimum_size
    uses aurora minimum_size
  #maximum_size
    uses aurora maximum_size
  #engine
    uses aurora engine
  #engine_version
    uses the aurora engine_version
  #db_name
    uses the aurora db_name
  #port
    uses the aurora port
  #maintenance_window
    uses the aurora maintenance_window
  #backup_window
    uses the aurora backup_window
  #backup_retention_period
    uses the aurora backup_retention_period
  #force_ssl
    uses the aurora force_ssl bool
  #parameter_store_path_db_url_name
    uses the aurora parameter_store_path_db_url_name
  #sql_backup_scheduled_task_environment_variables
    uses the aurora sql_backup_scheduled_task_environment_variables
  #sync_sql_backup_to_azure
    will have offsite backups disabled by default
  #replication_bucket_destination_arn
    uses the aurora replication_bucket_destination_arn
  #replication_kms_key_id
    uses the aurora replication_kms_key_id
  #to_params
    provides a hash of attributes for use in deployment

Dalmatian::AuroraTest
  #call
    changes to the aurora infrastructure directory
    logs our intention to run Terraform init
    runs Terraform init, with upgrade option
    ensures presence of workspace
    logs our intention to run Terraform fmt
    runs Terraform fmt with check and diff options
    logs our intention to run Terraform validate
    runs Terraform validate, with upgrade option
    changes back to the app root directory

Dalmatian::CacheHandlerSelector
  ::new_for(remote_reference)
    when the remote reference is for a git repo
      asks for an instance of GitCacheHandler
    when the remote reference is for an S3 bucket
      asks for an instance of S3CacheHandler
    when the remote reference is for a URL
      asks for an instance of UrlCacheHandler
    when the type is unknown
      raises an error

CacheHandler
  when a subclass class does not implement #cache_remote_configuration
    raises a helpful error

Dalmatian::CI
  CI::PATH
    is a constant
  #deploy
    changes to the ci directory
    runs terraform init with upgrade option
    creates the new workspace using the given aws account id and alias
    runs terraform apply with the user-supplied vars
  #test
    runs terraform plan with the user-supplied vars

Dalmatian::ClusterDeployment
  #call
    changes to the ecs directory
    asks Terraform to ensure that the workspace is in place
    when the environment includes a git reference as "track_revision"
      does NOT attempt to check out that commit
    when in _plan_ mode
      invokes Terraform.

... [101,891 characters omitted] ...

lmatian/cluster.rb:75:in `block (2 levels) in deploy'
      # ./lib/dalmatian/cluster.rb:73:in `each'
      # ./lib/dalmatian/cluster.rb:73:in `block in deploy'
      # ./lib/dalmatian/cluster.rb:59:in `each'
      # ./lib/dalmatian/cluster.rb:59:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:24:in `block in deploy'
      # ./lib/dalmatian/infrastructure.rb:22:in `each'
      # ./lib/dalmatian/infrastructure.rb:22:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:18:in `test'
      # ./spec/integration/tests_local_configuration_spec.rb:3345:in `block (2 levels) in <module:Dalmatian>'
      # ./spec/support/spec_helper.rb:24:in `block (3 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:24:in `block in modify'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `synchronize'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `modify'
      # ./spec/support/spec_helper.rb:20:in `block (2 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

  26) tests local configuration use of "terraform plan" passes the services config to "terraform plan"
      Failure/Error: Helper.run!(cmd)
      
        #<Dalmatian::Helper (class)> received :run! with unexpected arguments
          expected: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_example_var='bar' TF_VAR_environment='production' TF_VAR_cluster_name='shared-cluster-production' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='existing-shared-cluster-production' TF_VAR_dalmatian_role='dalmatian-read' terraform plan")
               got: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='new-dedicated-cluster' TF_VAR_dalmatian_role='dalmatian-read' TF_VAR_environment='production' TF_VAR_aurora='{identifier =\"testaurora\",in_use_by =[\"test-service\"],clusters_in_use ={production =[\"test\"],staging =[\"test\"]},minimum_size ={production =2,staging =1},maximum_size ={production =2,staging =1},engine =\"aurora-postgresql\",engine_version =\"11.9\",db_name =\"testapp\",port =5432,force_ssl =true,maintenance_window =\"mon:19:00-mon:19:30\",backup_window =\"09:00-10:00\",backup_retention_period =31,parameter_store_path_db_url_name =\"DATABASE_URL\",sql_backup_scheduled_task_environment_variables =[],sync_sql_backup_to_azure =false,replication_bucket_destination_arn =\"arn:aws:s3:::your-destination-bucket-name\",replication_kms_key_id =\"your-destination-kms-key-id\"}' terraform validate")
         Please stub a default value first if message might be received with other args as well. 
      # ./lib/dalmatian/terraform.rb:17:in `validate'
      # ./lib/dalmatian/testable.rb:25:in `terraform_validate'
      # ./lib/dalmatian/testable.rb:9:in `call'
      # ./lib/dalmatian/cluster.rb:358:in `test_aurora'
      # ./lib/dalmatian/cluster.rb:273:in `deploy_aurora'
      # ./lib/dalmatian/cluster.rb:75:in `block (2 levels) in deploy'
      # ./lib/dalmatian/cluster.rb:73:in `each'
      # ./lib/dalmatian/cluster.rb:73:in `block in deploy'
      # ./lib/dalmatian/cluster.rb:59:in `each'
      # ./lib/dalmatian/cluster.rb:59:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:24:in `block in deploy'
      # ./lib/dalmatian/infrastructure.rb:22:in `each'
      # ./lib/dalmatian/infrastructure.rb:22:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:18:in `test'
      # ./spec/integration/tests_local_configuration_spec.rb:3345:in `block (2 levels) in <module:Dalmatian>'
      # ./spec/support/spec_helper.rb:24:in `block (3 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:24:in `block in modify'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `synchronize'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `modify'
      # ./spec/support/spec_helper.rb:20:in `block (2 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

  27) tests local configuration use of "terraform plan" passes the loadbalancer config to "terraform plan"
      Failure/Error: Helper.run!(cmd)
      
        #<Dalmatian::Helper (class)> received :run! with unexpected arguments
          expected: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_example_var='bar' TF_VAR_environment='production' TF_VAR_cluster_name='shared-cluster-production' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='existing-shared-cluster-production' TF_VAR_dalmatian_role='dalmatian-read' terraform plan")
               got: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='new-dedicated-cluster' TF_VAR_dalmatian_role='dalmatian-read' TF_VAR_environment='production' TF_VAR_aurora='{identifier =\"testaurora\",in_use_by =[\"test-service\"],clusters_in_use ={production =[\"test\"],staging =[\"test\"]},minimum_size ={production =2,staging =1},maximum_size ={production =2,staging =1},engine =\"aurora-postgresql\",engine_version =\"11.9\",db_name =\"testapp\",port =5432,force_ssl =true,maintenance_window =\"mon:19:00-mon:19:30\",backup_window =\"09:00-10:00\",backup_retention_period =31,parameter_store_path_db_url_name =\"DATABASE_URL\",sql_backup_scheduled_task_environment_variables =[],sync_sql_backup_to_azure =false,replication_bucket_destination_arn =\"arn:aws:s3:::your-destination-bucket-name\",replication_kms_key_id =\"your-destination-kms-key-id\"}' terraform validate")
         Please stub a default value first if message might be received with other args as well. 
      # ./lib/dalmatian/terraform.rb:17:in `validate'
      # ./lib/dalmatian/testable.rb:25:in `terraform_validate'
      # ./lib/dalmatian/testable.rb:9:in `call'
      # ./lib/dalmatian/cluster.rb:358:in `test_aurora'
      # ./lib/dalmatian/cluster.rb:273:in `deploy_aurora'
      # ./lib/dalmatian/cluster.rb:75:in `block (2 levels) in deploy'
      # ./lib/dalmatian/cluster.rb:73:in `each'
      # ./lib/dalmatian/cluster.rb:73:in `block in deploy'
      # ./lib/dalmatian/cluster.rb:59:in `each'
      # ./lib/dalmatian/cluster.rb:59:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:24:in `block in deploy'
      # ./lib/dalmatian/infrastructure.rb:22:in `each'
      # ./lib/dalmatian/infrastructure.rb:22:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:18:in `test'
      # ./spec/integration/tests_local_configuration_spec.rb:3345:in `block (2 levels) in <module:Dalmatian>'
      # ./spec/support/spec_helper.rb:24:in `block (3 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:24:in `block in modify'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `synchronize'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `modify'
      # ./spec/support/spec_helper.rb:20:in `block (2 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

  28) tests local configuration use of "terraform plan" passes the cluster 2 config to "terraform plan"
      Failure/Error: Helper.run!(cmd)
      
        #<Dalmatian::Helper (class)> received :run! with unexpected arguments
          expected: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_example_var='bar' TF_VAR_environment='production' TF_VAR_cluster_name='shared-cluster-production' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='existing-shared-cluster-production' TF_VAR_dalmatian_role='dalmatian-read' terraform plan")
               got: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='new-dedicated-cluster' TF_VAR_dalmatian_role='dalmatian-read' TF_VAR_environment='production' TF_VAR_aurora='{identifier =\"testaurora\",in_use_by =[\"test-service\"],clusters_in_use ={production =[\"test\"],staging =[\"test\"]},minimum_size ={production =2,staging =1},maximum_size ={production =2,staging =1},engine =\"aurora-postgresql\",engine_version =\"11.9\",db_name =\"testapp\",port =5432,force_ssl =true,maintenance_window =\"mon:19:00-mon:19:30\",backup_window =\"09:00-10:00\",backup_retention_period =31,parameter_store_path_db_url_name =\"DATABASE_URL\",sql_backup_scheduled_task_environment_variables =[],sync_sql_backup_to_azure =false,replication_bucket_destination_arn =\"arn:aws:s3:::your-destination-bucket-name\",replication_kms_key_id =\"your-destination-kms-key-id\"}' terraform validate")
         Please stub a default value first if message might be received with other args as well. 
      # ./lib/dalmatian/terraform.rb:17:in `validate'
      # ./lib/dalmatian/testable.rb:25:in `terraform_validate'
      # ./lib/dalmatian/testable.rb:9:in `call'
      # ./lib/dalmatian/cluster.rb:358:in `test_aurora'
      # ./lib/dalmatian/cluster.rb:273:in `deploy_aurora'
      # ./lib/dalmatian/cluster.rb:75:in `block (2 levels) in deploy'
      # ./lib/dalmatian/cluster.rb:73:in `each'
      # ./lib/dalmatian/cluster.rb:73:in `block in deploy'
      # ./lib/dalmatian/cluster.rb:59:in `each'
      # ./lib/dalmatian/cluster.rb:59:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:24:in `block in deploy'
      # ./lib/dalmatian/infrastructure.rb:22:in `each'
      # ./lib/dalmatian/infrastructure.rb:22:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:18:in `test'
      # ./spec/integration/tests_local_configuration_spec.rb:3345:in `block (2 levels) in <module:Dalmatian>'
      # ./spec/support/spec_helper.rb:24:in `block (3 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:24:in `block in modify'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `synchronize'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `modify'
      # ./spec/support/spec_helper.rb:20:in `block (2 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

  29) tests local configuration use of "terraform plan" passes the cluster 3 config to "terraform plan"
      Failure/Error: Helper.run!(cmd)
      
        #<Dalmatian::Helper (class)> received :run! with unexpected arguments
          expected: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_example_var='bar' TF_VAR_environment='production' TF_VAR_cluster_name='shared-cluster-production' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='existing-shared-cluster-production' TF_VAR_dalmatian_role='dalmatian-read' terraform plan")
               got: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='new-dedicated-cluster' TF_VAR_dalmatian_role='dalmatian-read' TF_VAR_environment='production' TF_VAR_aurora='{identifier =\"testaurora\",in_use_by =[\"test-service\"],clusters_in_use ={production =[\"test\"],staging =[\"test\"]},minimum_size ={production =2,staging =1},maximum_size ={production =2,staging =1},engine =\"aurora-postgresql\",engine_version =\"11.9\",db_name =\"testapp\",port =5432,force_ssl =true,maintenance_window =\"mon:19:00-mon:19:30\",backup_window =\"09:00-10:00\",backup_retention_period =31,parameter_store_path_db_url_name =\"DATABASE_URL\",sql_backup_scheduled_task_environment_variables =[],sync_sql_backup_to_azure =false,replication_bucket_destination_arn =\"arn:aws:s3:::your-destination-bucket-name\",replication_kms_key_id =\"your-destination-kms-key-id\"}' terraform validate")
         Please stub a default value first if message might be received with other args as well. 
      # ./lib/dalmatian/terraform.rb:17:in `validate'
      # ./lib/dalmatian/testable.rb:25:in `terraform_validate'
      # ./lib/dalmatian/testable.rb:9:in `call'
      # ./lib/dalmatian/cluster.rb:358:in `test_aurora'
      # ./lib/dalmatian/cluster.rb:273:in `deploy_aurora'
      # ./lib/dalmatian/cluster.rb:75:in `block (2 levels) in deploy'
      # ./lib/dalmatian/cluster.rb:73:in `each'
      # ./lib/dalmatian/cluster.rb:73:in `block in deploy'
      # ./lib/dalmatian/cluster.rb:59:in `each'
      # ./lib/dalmatian/cluster.rb:59:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:24:in `block in deploy'
      # ./lib/dalmatian/infrastructure.rb:22:in `each'
      # ./lib/dalmatian/infrastructure.rb:22:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:18:in `test'
      # ./spec/integration/tests_local_configuration_spec.rb:3345:in `block (2 levels) in <module:Dalmatian>'
      # ./spec/support/spec_helper.rb:24:in `block (3 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:24:in `block in modify'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `synchronize'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `modify'
      # ./spec/support/spec_helper.rb:20:in `block (2 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

  30) tests local configuration use of "terraform plan" passes the cluster 4 config to "terraform plan"
      Failure/Error: Helper.run!(cmd)
      
        #<Dalmatian::Helper (class)> received :run! with unexpected arguments
          expected: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_example_var='bar' TF_VAR_environment='production' TF_VAR_cluster_name='shared-cluster-production' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='existing-shared-cluster-production' TF_VAR_dalmatian_role='dalmatian-read' terraform plan")
               got: ("TF_VAR_region='eu-west-2' TF_VAR_cidr='10.0.0.0/16' TF_VAR_root_domain_zone='dalmatian.dxw.net' TF_VAR_internal_domain_zone='dalmatian.internal' TF_VAR_ecs_private_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.128.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.129.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.130.0/24\"}]' TF_VAR_extra_public_subnets='[{availability_zone =\"eu-west-2a\",cidr =\"10.0.0.0/24\"},{availability_zone =\"eu-west-2b\",cidr =\"10.0.1.0/24\"},{availability_zone =\"eu-west-2c\",cidr =\"10.0.2.0/24\"}]' TF_VAR_instances_key_name='dalmatian-ecs-instances' TF_VAR_instance_type='t2.medium' TF_VAR_min_servers='2' TF_VAR_max_servers='4' TF_VAR_max_instance_lifetime='86400' TF_VAR_associate_public_ip_address='0' TF_VAR_docker_storage_size='40' TF_VAR_dockerhub_email='' TF_VAR_dockerhub_token='' TF_VAR_enable_efs='false' TF_VAR_encrypt_efs='true' TF_VAR_efs_dirs='[]' TF_VAR_monitoring_docs_path='https://github.com/dxw/dalmatian/docs/monitoring-alarms/' TF_VAR_account_id='123456789012' TF_VAR_infrastructure_name='new-dedicated-cluster' TF_VAR_dalmatian_role='dalmatian-read' TF_VAR_environment='production' TF_VAR_aurora='{identifier =\"testaurora\",in_use_by =[\"test-service\"],clusters_in_use ={production =[\"test\"],staging =[\"test\"]},minimum_size ={production =2,staging =1},maximum_size ={production =2,staging =1},engine =\"aurora-postgresql\",engine_version =\"11.9\",db_name =\"testapp\",port =5432,force_ssl =true,maintenance_window =\"mon:19:00-mon:19:30\",backup_window =\"09:00-10:00\",backup_retention_period =31,parameter_store_path_db_url_name =\"DATABASE_URL\",sql_backup_scheduled_task_environment_variables =[],sync_sql_backup_to_azure =false,replication_bucket_destination_arn =\"arn:aws:s3:::your-destination-bucket-name\",replication_kms_key_id =\"your-destination-kms-key-id\"}' terraform validate")
         Please stub a default value first if message might be received with other args as well. 
      # ./lib/dalmatian/terraform.rb:17:in `validate'
      # ./lib/dalmatian/testable.rb:25:in `terraform_validate'
      # ./lib/dalmatian/testable.rb:9:in `call'
      # ./lib/dalmatian/cluster.rb:358:in `test_aurora'
      # ./lib/dalmatian/cluster.rb:273:in `deploy_aurora'
      # ./lib/dalmatian/cluster.rb:75:in `block (2 levels) in deploy'
      # ./lib/dalmatian/cluster.rb:73:in `each'
      # ./lib/dalmatian/cluster.rb:73:in `block in deploy'
      # ./lib/dalmatian/cluster.rb:59:in `each'
      # ./lib/dalmatian/cluster.rb:59:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:24:in `block in deploy'
      # ./lib/dalmatian/infrastructure.rb:22:in `each'
      # ./lib/dalmatian/infrastructure.rb:22:in `deploy'
      # ./lib/dalmatian/infrastructure.rb:18:in `test'
      # ./spec/integration/tests_local_configuration_spec.rb:3345:in `block (2 levels) in <module:Dalmatian>'
      # ./spec/support/spec_helper.rb:24:in `block (3 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:24:in `block in modify'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `synchronize'
      # /Users/bob/.bundles/ruby/2.7.0/gems/climate_control-1.2.0/lib/climate_control.rb:15:in `modify'
      # ./spec/support/spec_helper.rb:20:in `block (2 levels) in <top (required)>'
      # /Users/bob/.bundles/ruby/2.7.0/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

Finished in 2.39 seconds (files took 0.75613 seconds to load)
513 examples, 30 failures

Failed examples:

rspec ./spec/integration/deploys_local_configuration_spec.rb:1624 # tests local configuration use of "terraform apply" passes the hosted zone config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1628 # tests local configuration use of "terraform apply" passes the s3 config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1632 # tests local configuration use of "terraform apply" passes the vpn customer gateway config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1636 # tests local configuration use of "terraform apply" passes the base config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1641 # tests local configuration use of "terraform apply" passes the waf config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1648 # tests local configuration use of "terraform apply" passes the rds config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1655 # tests local configuration use of "terraform apply" passes the aurora config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1662 # tests local configuration use of "terraform apply" passes the elasticache config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1671 # tests local configuration use of "terraform apply" passes the opensearch config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1680 # tests local configuration use of "terraform apply" passes the service config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1687 # tests local configuration use of "terraform apply" passes the loadbalancer config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1696 # tests local configuration use of "terraform apply" passes the cluster 2 config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1703 # tests local configuration use of "terraform apply" passes the cluster 3 config to "terraform apply"
rspec ./spec/integration/deploys_local_configuration_spec.rb:1707 # tests local configuration use of "terraform apply" passes the cluster 4 config to "terraform apply"
rspec ./spec/integration/tests_local_configuration_spec.rb:3348 # tests local configuration invokes  "terraform validate" with the expected cluster options
rspec ./spec/integration/tests_local_configuration_spec.rb:3387 # tests local configuration invokes  "terraform validate" with the expected source options
rspec ./spec/integration/tests_local_configuration_spec.rb:3393 # tests local configuration use of "terraform plan" passes the hosted zone config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3399 # tests local configuration use of "terraform plan" passes the s3 config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3405 # tests local configuration use of "terraform plan" passes the vpn customer gateway config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3411 # tests local configuration use of "terraform plan" passes the base config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3418 # tests local configuration use of "terraform plan" passes the waf config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3425 # tests local configuration use of "terraform plan" passes the rds config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3432 # tests local configuration use of "terraform plan" passes the aurora config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3439 # tests local configuration use of "terraform plan" passes the elasticache config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3448 # tests local configuration use of "terraform plan" passes the opensearch config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3457 # tests local configuration use of "terraform plan" passes the services config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3464 # tests local configuration use of "terraform plan" passes the loadbalancer config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3473 # tests local configuration use of "terraform plan" passes the cluster 2 config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3480 # tests local configuration use of "terraform plan" passes the cluster 3 config to "terraform plan"
rspec ./spec/integration/tests_local_configuration_spec.rb:3484 # tests local configuration use of "terraform plan" passes the cluster 4 config to "terraform plan"

Coverage report generated for RSpec to /Users/bob/git/dxw/dalmatian/coverage. 4482 / 4551 LOC (98.48%) covered.
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
/Users/bob/.rbenv/versions/2.7.1/bin/ruby -I/Users/bob/.bundles/ruby/2.7.0/gems/rspec-core-3.12.2/lib:/Users/bob/.bundles/ruby/2.7.0/gems/rspec-support-3.12.1/lib /Users/bob/.bundles/ruby/2.7.0/gems/rspec-core-3.12.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed
Exit Code: 1
Process Group PGID: 83276