Skip to content

Commit ef5511b

Browse files
Add tag support for DB and Global clusters
1 parent 78183d8 commit ef5511b

File tree

10 files changed

+66
-13
lines changed

10 files changed

+66
-13
lines changed

doc/_resource_types/rds_db_cluster.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,11 @@ describe rds_db_cluster('my-rds-db-cluster') do
4545
it { should have_security_group('my-db-sg') }
4646
end
4747
```
48+
49+
### have_tag
50+
51+
```ruby
52+
describe rds_db_cluster('my-rds-db-cluster') do
53+
it { should have_tag('env').value('dev') }
54+
end
55+
```

doc/_resource_types/rds_global_cluster.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,11 @@ describe rds_global_cluster('my-rds-global-cluster') do
3535
it { should have_cluster_member('arn:aws:rds:ap-northeast-3:123456789012:cluster:my-secondary-cluster').is_writer(false) }
3636
end
3737
```
38+
39+
### have_tag
40+
41+
```ruby
42+
describe rds_global_cluster('my-rds-global-cluster') do
43+
it { should have_tag('env').value('dev') }
44+
end
45+
```

doc/resource_types.md

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ describe acm('example.com') do
122122
end
123123
```
124124

125-
### its(:certificate_arn), its(:domain_name), its(:subject_alternative_names), its(:serial), its(:subject), its(:issuer), its(:created_at), its(:issued_at), its(:imported_at), its(:status), its(:revoked_at), its(:revocation_reason), its(:not_before), its(:not_after), its(:key_algorithm), its(:signature_algorithm), its(:in_use_by), its(:failure_reason), its(:type), its(:renewal_summary), its(:key_usages), its(:extended_key_usages), its(:certificate_authority_arn), its(:renewal_eligibility), its(:options)
125+
### its(:certificate_arn), its(:domain_name), its(:subject_alternative_names), its(:managed_by), its(:serial), its(:subject), its(:issuer), its(:created_at), its(:issued_at), its(:imported_at), its(:status), its(:revoked_at), its(:revocation_reason), its(:not_before), its(:not_after), its(:key_algorithm), its(:signature_algorithm), its(:in_use_by), its(:failure_reason), its(:type), its(:renewal_summary), its(:key_usages), its(:extended_key_usages), its(:certificate_authority_arn), its(:renewal_eligibility), its(:options)
126126
## <a name="alb">alb</a>
127127

128128
ALB resource type.
@@ -180,7 +180,7 @@ describe alb('my-alb') do
180180
end
181181
```
182182

183-
### 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), its(:customer_owned_ipv_4_pool), its(:enforce_security_group_inbound_rules_on_private_link_traffic), its(:enable_prefix_for_ipv_6_source_nat)
183+
### 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), its(:customer_owned_ipv_4_pool), its(:enforce_security_group_inbound_rules_on_private_link_traffic), its(:enable_prefix_for_ipv_6_source_nat), its(:ipam_pools)
184184
## <a name="alb_listener">alb_listener</a>
185185

186186
AlbListener resource type.
@@ -464,7 +464,7 @@ describe batch_job_definition('my-batch-job-definition') do
464464
end
465465
```
466466

467-
### its(:job_definition_name), its(:job_definition_arn), its(:revision), its(:status), its(:type), its(:scheduling_priority), its(:parameters), its(:retry_strategy), its(:timeout), its(:node_properties), its(:tags), its(:propagate_tags), its(:platform_capabilities), its(:ecs_properties), its(:eks_properties), its(:container_orchestration_type)
467+
### its(:job_definition_name), its(:job_definition_arn), its(:revision), its(:status), its(:type), its(:scheduling_priority), its(:parameters), its(:retry_strategy), its(:timeout), its(:node_properties), its(:tags), its(:propagate_tags), its(:platform_capabilities), its(:ecs_properties), its(:eks_properties), its(:container_orchestration_type), its(:consumable_resource_properties)
468468
## <a name="batch_job_queue">batch_job_queue</a>
469469

470470
BatchJobQueue resource type.
@@ -591,7 +591,7 @@ describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
591591
end
592592
```
593593

594-
### its(:id), its(:arn), its(:status), its(:last_modified_time), its(:domain_name), its(:origin_groups), its(:comment), its(:price_class), its(:enabled), its(:web_acl_id), its(:http_version), its(:is_ipv6_enabled), its(:alias_icp_recordals), its(:staging), its(:anycast_ip_list_id)
594+
### its(:id), its(:arn), its(:etag), its(:status), its(:last_modified_time), its(:domain_name), its(:origin_groups), its(:comment), its(:price_class), its(:enabled), its(:web_acl_id), its(:http_version), its(:is_ipv6_enabled), its(:alias_icp_recordals), its(:staging), its(:connection_mode), its(:anycast_ip_list_id)
595595
## <a name="cloudtrail">cloudtrail</a>
596596

597597
Cloudtrail resource type.
@@ -1036,7 +1036,7 @@ end
10361036
```
10371037

10381038

1039-
### its(:outpost_arn), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled), its(:throughput), its(:sse_type), its(:operator), its(:volume_id), its(:size), its(:snapshot_id), its(:availability_zone), its(:state), its(:create_time), its(:encrypted), its(:kms_key_id)
1039+
### its(:outpost_arn), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled), its(:throughput), its(:sse_type), its(:operator), its(:volume_initialization_rate), its(:volume_id), its(:size), its(:snapshot_id), its(:availability_zone), its(:state), its(:create_time), its(:encrypted), its(:kms_key_id)
10401040
### :unlock: Advanced use
10411041

10421042
`ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
@@ -1448,7 +1448,7 @@ describe eip('123.0.456.789') do
14481448
end
14491449
```
14501450

1451-
### its(:allocation_id), its(:association_id), its(:domain), its(:network_interface_id), its(:network_interface_owner_id), its(:private_ip_address), its(:public_ipv_4_pool), its(:network_border_group), its(:customer_owned_ip), its(:customer_owned_ipv_4_pool), its(:carrier_ip), its(:instance_id), its(:public_ip)
1451+
### its(:allocation_id), its(:association_id), its(:domain), its(:network_interface_id), its(:network_interface_owner_id), its(:private_ip_address), its(:public_ipv_4_pool), its(:network_border_group), its(:customer_owned_ip), its(:customer_owned_ipv_4_pool), its(:carrier_ip), its(:service_managed), its(:instance_id), its(:public_ip)
14521452
## <a name="eks">eks</a>
14531453

14541454
Eks resource type.
@@ -2844,7 +2844,7 @@ describe nlb('my-nlb') do
28442844
end
28452845
```
28462846

2847-
### 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), its(:customer_owned_ipv_4_pool), its(:enforce_security_group_inbound_rules_on_private_link_traffic), its(:enable_prefix_for_ipv_6_source_nat)
2847+
### 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), its(:customer_owned_ipv_4_pool), its(:enforce_security_group_inbound_rules_on_private_link_traffic), its(:enable_prefix_for_ipv_6_source_nat), its(:ipam_pools)
28482848
## <a name="nlb_listener">nlb_listener</a>
28492849

28502850
NlbListener resource type.
@@ -3094,7 +3094,16 @@ describe rds_db_cluster('my-rds-db-cluster') do
30943094
end
30953095
```
30963096

3097-
### its(:allocated_storage), its(:availability_zones), its(:backup_retention_period), its(:character_set_name), its(:database_name), its(:db_cluster_identifier), its(:db_cluster_parameter_group), its(:db_subnet_group), its(:status), its(:automatic_restart_time), its(:percent_progress), its(:earliest_restorable_time), its(:endpoint), its(:reader_endpoint), its(:custom_endpoints), its(:multi_az), its(:engine), its(:engine_version), its(:latest_restorable_time), its(:port), its(:master_username), its(:db_cluster_option_group_memberships), its(:preferred_backup_window), its(:preferred_maintenance_window), its(:replication_source_identifier), its(:read_replica_identifiers), its(:status_infos), its(:hosted_zone_id), its(:storage_encrypted), its(:kms_key_id), its(:db_cluster_resource_id), its(:db_cluster_arn), its(:associated_roles), its(:iam_database_authentication_enabled), its(:clone_group_id), its(:cluster_create_time), its(:earliest_backtrack_time), its(:backtrack_window), its(:backtrack_consumed_change_records), its(:enabled_cloudwatch_logs_exports), its(:capacity), its(:engine_mode), its(:scaling_configuration_info), its(:rds_custom_cluster_configuration), its(:deletion_protection), its(:http_endpoint_enabled), its(:activity_stream_mode), its(:activity_stream_status), its(:activity_stream_kms_key_id), its(:activity_stream_kinesis_stream_name), its(:copy_tags_to_snapshot), its(:cross_account_clone), its(:domain_memberships), its(:tag_list), its(:global_write_forwarding_status), its(:global_write_forwarding_requested), its(:pending_modified_values), its(:db_cluster_instance_class), its(:storage_type), its(:iops), its(:publicly_accessible), its(:auto_minor_version_upgrade), its(:monitoring_interval), its(:monitoring_role_arn), its(:database_insights_mode), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:serverless_v2_scaling_configuration), its(:network_type), its(:db_system_id), its(:master_user_secret), its(:io_optimized_next_allowed_modification_time), its(:local_write_forwarding_status), its(:aws_backup_recovery_point_arn), its(:limitless_database), its(:storage_throughput), its(:cluster_scalability_type), its(:certificate_details), its(:engine_lifecycle_support)
3097+
3098+
### have_tag
3099+
3100+
```ruby
3101+
describe rds_db_cluster('my-rds-db-cluster') do
3102+
it { should have_tag('env').value('dev') }
3103+
end
3104+
```
3105+
3106+
### its(:allocated_storage), its(:availability_zones), its(:backup_retention_period), its(:character_set_name), its(:database_name), its(:db_cluster_identifier), its(:db_cluster_parameter_group), its(:db_subnet_group), its(:status), its(:automatic_restart_time), its(:percent_progress), its(:earliest_restorable_time), its(:endpoint), its(:reader_endpoint), its(:custom_endpoints), its(:multi_az), its(:engine), its(:engine_version), its(:latest_restorable_time), its(:port), its(:master_username), its(:db_cluster_option_group_memberships), its(:preferred_backup_window), its(:preferred_maintenance_window), its(:replication_source_identifier), its(:read_replica_identifiers), its(:status_infos), its(:hosted_zone_id), its(:storage_encrypted), its(:kms_key_id), its(:db_cluster_resource_id), its(:db_cluster_arn), its(:associated_roles), its(:iam_database_authentication_enabled), its(:clone_group_id), its(:cluster_create_time), its(:earliest_backtrack_time), its(:backtrack_window), its(:backtrack_consumed_change_records), its(:enabled_cloudwatch_logs_exports), its(:capacity), its(:engine_mode), its(:scaling_configuration_info), its(:rds_custom_cluster_configuration), its(:deletion_protection), its(:http_endpoint_enabled), its(:activity_stream_mode), its(:activity_stream_status), its(:activity_stream_kms_key_id), its(:activity_stream_kinesis_stream_name), its(:copy_tags_to_snapshot), its(:cross_account_clone), its(:domain_memberships), its(:global_write_forwarding_status), its(:global_write_forwarding_requested), its(:pending_modified_values), its(:db_cluster_instance_class), its(:storage_type), its(:iops), its(:publicly_accessible), its(:auto_minor_version_upgrade), its(:monitoring_interval), its(:monitoring_role_arn), its(:database_insights_mode), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:serverless_v2_scaling_configuration), its(:network_type), its(:db_system_id), its(:master_user_secret), its(:io_optimized_next_allowed_modification_time), its(:local_write_forwarding_status), its(:aws_backup_recovery_point_arn), its(:limitless_database), its(:storage_throughput), its(:cluster_scalability_type), its(:certificate_details), its(:engine_lifecycle_support)
30983107
## <a name="rds_db_cluster_parameter_group">rds_db_cluster_parameter_group</a>
30993108

31003109
RdsDBClusterParameterGroup resource type.
@@ -3212,7 +3221,16 @@ describe rds_global_cluster('my-rds-global-cluster') do
32123221
end
32133222
```
32143223

3215-
### its(:global_cluster_identifier), its(:global_cluster_resource_id), its(:global_cluster_arn), its(:status), its(:engine), its(:engine_version), its(:engine_lifecycle_support), its(:database_name), its(:storage_encrypted), its(:deletion_protection), its(:endpoint), its(:failover_state), its(:tag_list)
3224+
3225+
### have_tag
3226+
3227+
```ruby
3228+
describe rds_global_cluster('my-rds-global-cluster') do
3229+
it { should have_tag('env').value('dev') }
3230+
end
3231+
```
3232+
3233+
### its(:global_cluster_identifier), its(:global_cluster_resource_id), its(:global_cluster_arn), its(:status), its(:engine), its(:engine_version), its(:engine_lifecycle_support), its(:database_name), its(:storage_encrypted), its(:deletion_protection), its(:endpoint), its(:failover_state)
32163234
## <a name="rds_proxy">rds_proxy</a>
32173235

32183236
RdsProxy resource type.
@@ -4107,7 +4125,7 @@ end
41074125
```
41084126

41094127

4110-
### its(:owner_id), its(:instance_tenancy), its(:ipv_6_cidr_block_association_set), its(:cidr_block_association_set), its(:is_default), its(:block_public_access_states), its(:vpc_id), its(:state), its(:cidr_block), its(:dhcp_options_id)
4128+
### its(:owner_id), its(:instance_tenancy), its(:ipv_6_cidr_block_association_set), its(:cidr_block_association_set), its(:is_default), its(:encryption_control), its(:block_public_access_states), its(:vpc_id), its(:state), its(:cidr_block), its(:dhcp_options_id)
41114129
### :unlock: Advanced use
41124130

41134131
`vpc` can use `Aws::EC2::Vpc` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Vpc.html).

lib/awspec/stub/rds_db_cluster.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,12 @@
7878
copy_tags_to_snapshot: false,
7979
cross_account_clone: false,
8080
domain_memberships: [],
81-
tag_list: [],
81+
tag_list: [
82+
{
83+
key: 'env',
84+
value: 'dev'
85+
}
86+
],
8287
global_write_forwarding_status: nil,
8388
global_write_forwarding_requested: false,
8489
pending_modified_values: nil,

lib/awspec/stub/rds_global_cluster.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,13 @@
3030
global_write_forwarding_status: 'disabled'
3131
}
3232
],
33-
failover_state: nil
33+
failover_state: nil,
34+
tag_list: [
35+
{
36+
key: 'env',
37+
value: 'dev'
38+
}
39+
]
3440
}
3541
],
3642
marker: nil

lib/awspec/type/base.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ def self.tags_allowed
3333
begin
3434
tags = resource_via_client.tags
3535
rescue NoMethodError
36-
tags = resource_via_client.tag_set
36+
begin
37+
tags = resource_via_client.tag_set
38+
rescue NoMethodError
39+
tags = resource_via_client.tag_list
40+
end
3741
end
3842
return false unless tags
3943

lib/awspec/type/rds_db_cluster.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
module Awspec::Type
44
class RdsDBCluster < ResourceBase
55
aws_resource Aws::RDS::Types::DBCluster
6+
tags_allowed
67

78
def resource_via_client
89
@resource_via_client ||= find_db_cluster(@display_name)

lib/awspec/type/rds_global_cluster.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
module Awspec::Type
44
class RdsGlobalCluster < ResourceBase
55
aws_resource Aws::RDS::Types::GlobalCluster
6+
tags_allowed
67

78
def resource_via_client
89
@resource_via_client ||= find_global_cluster(@display_name)

spec/type/rds_db_cluster_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
it { should have_security_group('my-db-sg') }
1212
it { should have_cluster_member('my-rds-db-cluster-instance-1').is_writer(true) }
1313
it { should have_cluster_member('my-rds-db-cluster-instance-2').is_writer(false) }
14+
it { should have_tag('env').value('dev') }
1415
its(:db_cluster_parameter_group) { should eq 'default.aurora-mysql5.7' }
1516
its(:engine) { should eq 'aurora-mysql' }
1617
its(:engine_version) { should eq '5.7.mysql_aurora.2.10.2' }

spec/type/rds_global_cluster_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
it {
1313
should have_cluster_member('arn:aws:rds:ap-northeast-3:123456789012:cluster:my-secondary-cluster').is_writer(false)
1414
}
15+
it { should have_tag('env').value('dev') }
1516
its(:engine) { should eq 'aurora-mysql' }
1617
its(:engine_version) { should eq '5.7.mysql_aurora.2.10.2' }
1718
its(:database_name) { should eq 'example_db' }

0 commit comments

Comments
 (0)