awspec 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/_resource_types/nlb.md +41 -0
- data/doc/_resource_types/nlb_listener.md +29 -0
- data/doc/_resource_types/nlb_target_group.md +35 -0
- data/doc/resource_types.md +139 -3
- data/lib/awspec/command/generate.rb +13 -1
- data/lib/awspec/generator.rb +3 -0
- data/lib/awspec/generator/doc/type/nlb.rb +20 -0
- data/lib/awspec/generator/doc/type/nlb_listener.rb +18 -0
- data/lib/awspec/generator/doc/type/nlb_target_group.rb +17 -0
- data/lib/awspec/generator/spec/nlb.rb +38 -0
- data/lib/awspec/generator/spec/rds_db_cluster_parameter_group.rb +23 -0
- data/lib/awspec/generator/spec/rds_db_parameter_group.rb +23 -0
- data/lib/awspec/helper/finder.rb +2 -0
- data/lib/awspec/helper/finder/autoscaling.rb +7 -0
- data/lib/awspec/helper/finder/nlb.rb +57 -0
- data/lib/awspec/helper/finder/rds.rb +28 -0
- data/lib/awspec/helper/type.rb +5 -3
- data/lib/awspec/matcher.rb +3 -0
- data/lib/awspec/matcher/belong_to_nlb.rb +8 -0
- data/lib/awspec/matcher/have_rule.rb +2 -1
- data/lib/awspec/stub/nlb.rb +119 -0
- data/lib/awspec/stub/nlb_listener.rb +131 -0
- data/lib/awspec/stub/nlb_target_group.rb +187 -0
- data/lib/awspec/type/autoscaling_group.rb +8 -0
- data/lib/awspec/type/nlb.rb +35 -0
- data/lib/awspec/type/nlb_listener.rb +36 -0
- data/lib/awspec/type/nlb_target_group.rb +22 -0
- data/lib/awspec/type/rds_db_cluster_parameter_group.rb +1 -14
- data/lib/awspec/type/rds_db_parameter_group.rb +1 -14
- data/lib/awspec/version.rb +1 -1
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5326ef5dcbd3e3d0c6d832875aff370eb2319aeb
|
4
|
+
data.tar.gz: 8d619b765a444302e46962d98561b85ccf405672
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae0828218096b5bdca15b27fa098efd163cd8264556d0f6028c25dc2765798bc1e61fcf6efb745ebdd7e7d922859928120d6bfc53f1a44f54aeab7851b03cb56
|
7
|
+
data.tar.gz: d99ca40c1655e97f5cf031ce7b2dd13dd083c309d14606f91fbea8db5dcaf4455a815311a74011f198c23d4bd0af985b59e180c9f4160658c21a359c57970fde
|
@@ -0,0 +1,41 @@
|
|
1
|
+
### exist
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
describe nlb('my-nlb') do
|
5
|
+
it { should exist }
|
6
|
+
end
|
7
|
+
```
|
8
|
+
|
9
|
+
### be_active, be_provisioning, be_failed
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
describe nlb('my-nlb') do
|
13
|
+
it { should be_active }
|
14
|
+
end
|
15
|
+
```
|
16
|
+
|
17
|
+
### have_security_group
|
18
|
+
|
19
|
+
Note that NLBs never have security groups. The have_security_group() function always returns false. See https://forums.aws.amazon.com/thread.jspa?threadID=263245 for discussion about the security-group-less-ness of NLBs.
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
describe nlb('my-nlb') do
|
23
|
+
it { should_not have_security_group('sg-1a2b3cd4') }
|
24
|
+
end
|
25
|
+
```
|
26
|
+
|
27
|
+
### have_subnet
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
describe nlb('my-nlb') do
|
31
|
+
it { should have_subnet('subnet-1234a567') }
|
32
|
+
end
|
33
|
+
```
|
34
|
+
|
35
|
+
### belong_to_vpc
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
describe nlb('my-nlb') do
|
39
|
+
it { should belong_to_vpc('my-vpc') }
|
40
|
+
end
|
41
|
+
```
|
@@ -0,0 +1,29 @@
|
|
1
|
+
### exist
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
describe nlb_listener('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2') do
|
5
|
+
it { should exist }
|
6
|
+
its(:port) { should eq 80 }
|
7
|
+
its(:protocol) { should eq 'HTTP' }
|
8
|
+
end
|
9
|
+
```
|
10
|
+
|
11
|
+
### have_rule
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
describe nlb_listener('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2') do
|
15
|
+
it { should have_rule('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener-rule/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2/9683b2d02a6cabee') }
|
16
|
+
it do
|
17
|
+
should have_rule.priority('10')
|
18
|
+
.conditions(field: 'path-pattern', values: ['/img/*'])
|
19
|
+
.actions(target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:123456789012:targetgroup/73e2d6bc24d8a067/73e2d6bc24d8a067', type: 'forward')
|
20
|
+
end
|
21
|
+
it do
|
22
|
+
should have_rule.priority('10')
|
23
|
+
.if(field: 'path-pattern', values: ['/img/*'])
|
24
|
+
.then(target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:123456789012:targetgroup/73e2d6bc24d8a067/73e2d6bc24d8a067', type: 'forward')
|
25
|
+
end
|
26
|
+
it { should have_rule.conditions([{ field: 'path-pattern', values: ['/admin/*'] }, { field: 'host-header', values: ['admin.example.com'] }]) }
|
27
|
+
it { should have_rule.actions(target_group_name: 'my-nlb-target-group', type: 'forward') }
|
28
|
+
end
|
29
|
+
```
|
@@ -0,0 +1,35 @@
|
|
1
|
+
### exist
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
describe nlb_target_group('my-nlb-target-group') do
|
5
|
+
it { should exist }
|
6
|
+
its(:health_check_path) { should eq '/' }
|
7
|
+
its(:health_check_port) { should eq 'traffic-port' }
|
8
|
+
its(:health_check_protocol) { should eq 'HTTP' }
|
9
|
+
end
|
10
|
+
```
|
11
|
+
|
12
|
+
### have_ec2
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
describe nlb_target_group('my-nlb-target-group') do
|
16
|
+
it { should have_ec2('my-ec2') }
|
17
|
+
end
|
18
|
+
```
|
19
|
+
|
20
|
+
### belong_to_nlb
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
describe nlb_target_group('my-nlb-target-group') do
|
24
|
+
it { should belong_to_nlb('my-nlb') }
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
### belong_to_vpc
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
describe nlb_target_group('my-nlb-target-group') do
|
32
|
+
it { should belong_to_vpc('my-vpc') }
|
33
|
+
end
|
34
|
+
```
|
35
|
+
|
data/doc/resource_types.md
CHANGED
@@ -40,6 +40,9 @@
|
|
40
40
|
| [nat_gateway](#nat_gateway)
|
41
41
|
| [network_acl](#network_acl)
|
42
42
|
| [network_interface](#network_interface)
|
43
|
+
| [nlb](#nlb)
|
44
|
+
| [nlb_listener](#nlb_listener)
|
45
|
+
| [nlb_target_group](#nlb_target_group)
|
43
46
|
| [rds](#rds)
|
44
47
|
| [rds_db_cluster_parameter_group](#rds_db_cluster_parameter_group)
|
45
48
|
| [rds_db_parameter_group](#rds_db_parameter_group)
|
@@ -279,6 +282,8 @@ end
|
|
279
282
|
```
|
280
283
|
|
281
284
|
|
285
|
+
### have_nlb_target_group
|
286
|
+
|
282
287
|
### have_suspended_process
|
283
288
|
|
284
289
|
### have_tag
|
@@ -957,7 +962,7 @@ describe ecs_service('my-ecs-service') do
|
|
957
962
|
end
|
958
963
|
```
|
959
964
|
|
960
|
-
### its(:service_arn), its(:service_name), its(:cluster_arn), its(:load_balancers), its(:status), its(:desired_count), its(:running_count), its(:pending_count), its(:launch_type), its(:platform_version), its(:task_definition), its(:role_arn), its(:created_at), its(:placement_constraints), its(:placement_strategy), its(:network_configuration)
|
965
|
+
### its(:service_arn), its(:service_name), its(:cluster_arn), its(:load_balancers), its(:status), its(:desired_count), its(:running_count), its(:pending_count), its(:launch_type), its(:platform_version), its(:task_definition), its(:role_arn), its(:created_at), its(:placement_constraints), its(:placement_strategy), its(:network_configuration), its(:health_check_grace_period_seconds)
|
961
966
|
## <a name="ecs_task_definition">ecs_task_definition</a>
|
962
967
|
|
963
968
|
ECS Task Definition resource type.
|
@@ -1670,7 +1675,7 @@ end
|
|
1670
1675
|
|
1671
1676
|
This matcher does not support Amazon S3 event sources. ( [See SDK doc](http://docs.aws.amazon.com/sdkforruby/api/Aws/Lambda/Client.html#list_event_source_mappings-instance_method) )
|
1672
1677
|
|
1673
|
-
### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version), its(:vpc_config), its(:dead_letter_config), its(:environment), its(:kms_key_arn), its(:tracing_config), its(:master_arn)
|
1678
|
+
### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version), its(:vpc_config), its(:dead_letter_config), its(:environment), its(:kms_key_arn), its(:tracing_config), its(:master_arn), its(:revision_id)
|
1674
1679
|
## <a name="launch_configuration">launch_configuration</a>
|
1675
1680
|
|
1676
1681
|
LaunchConfiguration resource type.
|
@@ -1886,6 +1891,137 @@ end
|
|
1886
1891
|
```
|
1887
1892
|
|
1888
1893
|
### its(:association), its(:availability_zone), its(:description), its(:interface_type), its(:ipv_6_addresses), its(:mac_address), its(:network_interface_id), its(:owner_id), its(:private_dns_name), its(:private_ip_address), its(:requester_id), its(:requester_managed), its(:source_dest_check), its(:status), its(:subnet_id), its(:vpc_id)
|
1894
|
+
## <a name="nlb">nlb</a>
|
1895
|
+
|
1896
|
+
NLB resource type.
|
1897
|
+
|
1898
|
+
### exist
|
1899
|
+
|
1900
|
+
```ruby
|
1901
|
+
describe nlb('my-nlb') do
|
1902
|
+
it { should exist }
|
1903
|
+
end
|
1904
|
+
```
|
1905
|
+
|
1906
|
+
|
1907
|
+
### be_active, be_provisioning, be_failed
|
1908
|
+
|
1909
|
+
```ruby
|
1910
|
+
describe nlb('my-nlb') do
|
1911
|
+
it { should be_active }
|
1912
|
+
end
|
1913
|
+
```
|
1914
|
+
|
1915
|
+
|
1916
|
+
### have_security_group
|
1917
|
+
|
1918
|
+
Note that NLBs never have security groups. The have_security_group() function always returns false. See https://forums.aws.amazon.com/thread.jspa?threadID=263245 for discussion about the security-group-less-ness of NLBs.
|
1919
|
+
|
1920
|
+
```ruby
|
1921
|
+
describe nlb('my-nlb') do
|
1922
|
+
it { should_not have_security_group('sg-1a2b3cd4') }
|
1923
|
+
end
|
1924
|
+
```
|
1925
|
+
|
1926
|
+
|
1927
|
+
### have_subnet
|
1928
|
+
|
1929
|
+
```ruby
|
1930
|
+
describe nlb('my-nlb') do
|
1931
|
+
it { should have_subnet('subnet-1234a567') }
|
1932
|
+
end
|
1933
|
+
```
|
1934
|
+
|
1935
|
+
|
1936
|
+
### belong_to_vpc
|
1937
|
+
|
1938
|
+
```ruby
|
1939
|
+
describe nlb('my-nlb') do
|
1940
|
+
it { should belong_to_vpc('my-vpc') }
|
1941
|
+
end
|
1942
|
+
```
|
1943
|
+
|
1944
|
+
### its(:load_balancer_arn), its(:dns_name), its(:canonical_hosted_zone_id), its(:created_time), its(:load_balancer_name), its(:scheme), its(:vpc_id), its(:type), its(:security_groups), its(:ip_address_type)
|
1945
|
+
## <a name="nlb_listener">nlb_listener</a>
|
1946
|
+
|
1947
|
+
NlbListener resource type.
|
1948
|
+
|
1949
|
+
### exist
|
1950
|
+
|
1951
|
+
```ruby
|
1952
|
+
describe nlb_listener('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2') do
|
1953
|
+
it { should exist }
|
1954
|
+
its(:port) { should eq 80 }
|
1955
|
+
its(:protocol) { should eq 'HTTP' }
|
1956
|
+
end
|
1957
|
+
```
|
1958
|
+
|
1959
|
+
|
1960
|
+
### have_rule
|
1961
|
+
|
1962
|
+
```ruby
|
1963
|
+
describe nlb_listener('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2') do
|
1964
|
+
it { should have_rule('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener-rule/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2/9683b2d02a6cabee') }
|
1965
|
+
it do
|
1966
|
+
should have_rule.priority('10')
|
1967
|
+
.conditions(field: 'path-pattern', values: ['/img/*'])
|
1968
|
+
.actions(target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:123456789012:targetgroup/73e2d6bc24d8a067/73e2d6bc24d8a067', type: 'forward')
|
1969
|
+
end
|
1970
|
+
it do
|
1971
|
+
should have_rule.priority('10')
|
1972
|
+
.if(field: 'path-pattern', values: ['/img/*'])
|
1973
|
+
.then(target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:123456789012:targetgroup/73e2d6bc24d8a067/73e2d6bc24d8a067', type: 'forward')
|
1974
|
+
end
|
1975
|
+
it { should have_rule.conditions([{ field: 'path-pattern', values: ['/admin/*'] }, { field: 'host-header', values: ['admin.example.com'] }]) }
|
1976
|
+
it { should have_rule.actions(target_group_name: 'my-nlb-target-group', type: 'forward') }
|
1977
|
+
end
|
1978
|
+
```
|
1979
|
+
|
1980
|
+
### its(:listener_arn), its(:load_balancer_arn), its(:port), its(:protocol), its(:certificates), its(:ssl_policy)
|
1981
|
+
## <a name="nlb_target_group">nlb_target_group</a>
|
1982
|
+
|
1983
|
+
NlbTargetGroup resource type.
|
1984
|
+
|
1985
|
+
### exist
|
1986
|
+
|
1987
|
+
```ruby
|
1988
|
+
describe nlb_target_group('my-nlb-target-group') do
|
1989
|
+
it { should exist }
|
1990
|
+
its(:health_check_path) { should eq '/' }
|
1991
|
+
its(:health_check_port) { should eq 'traffic-port' }
|
1992
|
+
its(:health_check_protocol) { should eq 'HTTP' }
|
1993
|
+
end
|
1994
|
+
```
|
1995
|
+
|
1996
|
+
|
1997
|
+
### have_ec2
|
1998
|
+
|
1999
|
+
```ruby
|
2000
|
+
describe nlb_target_group('my-nlb-target-group') do
|
2001
|
+
it { should have_ec2('my-ec2') }
|
2002
|
+
end
|
2003
|
+
```
|
2004
|
+
|
2005
|
+
|
2006
|
+
### belong_to_nlb
|
2007
|
+
|
2008
|
+
```ruby
|
2009
|
+
describe nlb_target_group('my-nlb-target-group') do
|
2010
|
+
it { should belong_to_nlb('my-nlb') }
|
2011
|
+
end
|
2012
|
+
```
|
2013
|
+
|
2014
|
+
|
2015
|
+
### belong_to_vpc
|
2016
|
+
|
2017
|
+
```ruby
|
2018
|
+
describe nlb_target_group('my-nlb-target-group') do
|
2019
|
+
it { should belong_to_vpc('my-vpc') }
|
2020
|
+
end
|
2021
|
+
```
|
2022
|
+
|
2023
|
+
|
2024
|
+
### its(:target_group_arn), its(:target_group_name), its(:protocol), its(:port), its(:vpc_id), its(:health_check_protocol), its(:health_check_port), its(:health_check_interval_seconds), its(:health_check_timeout_seconds), its(:healthy_threshold_count), its(:unhealthy_threshold_count), its(:health_check_path), its(:load_balancer_arns), its(:target_type)
|
1889
2025
|
## <a name="rds">rds</a>
|
1890
2026
|
|
1891
2027
|
RDS resource type.
|
@@ -1974,7 +2110,7 @@ end
|
|
1974
2110
|
```
|
1975
2111
|
|
1976
2112
|
|
1977
|
-
### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:status_infos), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:domain_memberships), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn), its(:timezone), its(:iam_database_authentication_enabled), its(:performance_insights_enabled), its(:performance_insights_kms_key_id)
|
2113
|
+
### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:status_infos), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:domain_memberships), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn), its(:timezone), its(:iam_database_authentication_enabled), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:enabled_cloudwatch_logs_exports)
|
1978
2114
|
### :unlock: Advanced use
|
1979
2115
|
|
1980
2116
|
`rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
|
@@ -8,7 +8,7 @@ module Awspec
|
|
8
8
|
class_option :secrets_path
|
9
9
|
|
10
10
|
types = %w(
|
11
|
-
vpc ec2 rds security_group elb network_acl route_table subnet nat_gateway network_interface alb
|
11
|
+
vpc ec2 rds security_group elb network_acl route_table subnet nat_gateway network_interface alb nlb
|
12
12
|
internet_gateway
|
13
13
|
)
|
14
14
|
|
@@ -36,6 +36,18 @@ module Awspec
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
types = %w(
|
40
|
+
rds_db_parameter_group rds_db_cluster_parameter_group
|
41
|
+
)
|
42
|
+
|
43
|
+
types.each do |type|
|
44
|
+
desc type + ' [paramater_name]', "Generate #{type} spec from paramater name."
|
45
|
+
define_method type do |_paramater_name|
|
46
|
+
Awsecrets.load(profile: options[:profile], region: options[:region], secrets_path: options[:secrets_path])
|
47
|
+
eval "puts Awspec::Generator::Spec::#{type.camelize}.new.generate_by_paramater_group(_paramater_name)"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
39
51
|
types_for_generate_all = %w(
|
40
52
|
cloudwatch_alarm cloudwatch_event directconnect ebs efs
|
41
53
|
elasticsearch iam_group iam_policy iam_role iam_user kms lambda
|
data/lib/awspec/generator.rb
CHANGED
@@ -25,9 +25,12 @@ require 'awspec/generator/spec/iam_role'
|
|
25
25
|
require 'awspec/generator/spec/acm'
|
26
26
|
require 'awspec/generator/spec/cloudwatch_logs'
|
27
27
|
require 'awspec/generator/spec/alb'
|
28
|
+
require 'awspec/generator/spec/nlb'
|
28
29
|
require 'awspec/generator/spec/internet_gateway'
|
29
30
|
require 'awspec/generator/spec/elasticsearch'
|
30
31
|
require 'awspec/generator/spec/eip'
|
32
|
+
require 'awspec/generator/spec/rds_db_parameter_group'
|
33
|
+
require 'awspec/generator/spec/rds_db_cluster_parameter_group'
|
31
34
|
|
32
35
|
# Doc
|
33
36
|
require 'awspec/generator/doc/type'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class Nlb < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type_name = 'NLB'
|
8
|
+
@type = Awspec::Type::Nlb.new('my-nlb')
|
9
|
+
@ret = @type.resource_via_client
|
10
|
+
@matchers = [
|
11
|
+
Awspec::Type::Nlb::STATES.map { |state| 'be_' + state }.join(', '),
|
12
|
+
'belong_to_vpc'
|
13
|
+
]
|
14
|
+
@ignore_matchers = Awspec::Type::Nlb::STATES.map { |state| 'be_' + state }
|
15
|
+
@describes = []
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class NlbListener < Base
|
5
|
+
# rubocop:disable Metrics/LineLength
|
6
|
+
def initialize
|
7
|
+
super
|
8
|
+
@type_name = 'NlbListener'
|
9
|
+
@type = Awspec::Type::NlbListener.new('arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener/app/my-nlb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2')
|
10
|
+
@ret = @type.resource_via_client
|
11
|
+
@matchers = []
|
12
|
+
@ignore_matchers = []
|
13
|
+
@describes = []
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class NlbTargetGroup < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type_name = 'NlbTargetGroup'
|
8
|
+
@type = Awspec::Type::NlbTargetGroup.new('my-nlb-target-group')
|
9
|
+
@ret = @type.resource_via_client
|
10
|
+
@matchers = %w(belong_to_nlb belong_to_vpc)
|
11
|
+
@ignore_matchers = []
|
12
|
+
@describes = []
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Spec
|
3
|
+
class Nlb
|
4
|
+
include Awspec::Helper::Finder
|
5
|
+
def generate_by_vpc_id(vpc_id)
|
6
|
+
describes = %w(
|
7
|
+
load_balancer_name
|
8
|
+
)
|
9
|
+
vpc = find_vpc(vpc_id)
|
10
|
+
raise 'Not Found VPC' unless vpc
|
11
|
+
@vpc_id = vpc[:vpc_id]
|
12
|
+
@vpc_tag_name = vpc.tag_name
|
13
|
+
nlbs = select_nlb_by_vpc_id(@vpc_id)
|
14
|
+
|
15
|
+
specs = nlbs.map do |nlb|
|
16
|
+
content = ERB.new(nlb_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
|
17
|
+
end
|
18
|
+
specs.join("\n")
|
19
|
+
end
|
20
|
+
|
21
|
+
def nlb_spec_template
|
22
|
+
template = <<-'EOF'
|
23
|
+
describe nlb('<%= nlb.load_balancer_name %>') do
|
24
|
+
it { should exist }
|
25
|
+
its(:load_balancer_arn) { should eq '<%= nlb.load_balancer_arn %>' }
|
26
|
+
its(:dns_name) { should eq '<%= nlb.dns_name %>' }
|
27
|
+
its(:load_balancer_name) { should eq '<%= nlb.load_balancer_name %>' }
|
28
|
+
its(:scheme) { should eq '<%= nlb.scheme %>' }
|
29
|
+
its(:vpc_id) { should eq '<%= nlb.vpc_id %>' }
|
30
|
+
its(:type) { should eq '<%= nlb.type %>' }
|
31
|
+
its(:ip_address_type) { should eq '<%= nlb.ip_address_type %>' }
|
32
|
+
end
|
33
|
+
EOF
|
34
|
+
template
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Spec
|
3
|
+
class RdsDbClusterParameterGroup
|
4
|
+
include Awspec::Helper::Finder
|
5
|
+
def generate_by_paramater_group(paramater_group)
|
6
|
+
@paramater_group = paramater_group
|
7
|
+
res = select_all_rds_db_cluster_parameters(@paramater_group)
|
8
|
+
ERB.new(db_cluster_parameter_group_template, nil, '-').result(binding).gsub(/^\n/, '')
|
9
|
+
end
|
10
|
+
|
11
|
+
def db_cluster_parameter_group_template
|
12
|
+
template = <<-'EOF'
|
13
|
+
describe rds_db_cluster_parameter_group('<%= @paramater_group %>') do
|
14
|
+
<% res.each do |key, value| %>
|
15
|
+
its('<%= key %>') { should eq '<%= value %>' }
|
16
|
+
<% end %>
|
17
|
+
end
|
18
|
+
EOF
|
19
|
+
template
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|