convection 1.1.7 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/convection.gemspec +2 -0
- data/docs/index.md +7 -0
- data/lib/convection/model/template/resource/aws_elasticache_replication_group.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_elasticache_replication_group_node_group_configuration.rb +18 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8835c1ffa38c162454a2b0ccd3d0e7b6c449e5d4
|
4
|
+
data.tar.gz: d5b208cd2633e490c318f71e1fe6267e43f69f92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 792cb42b688ccd93f1682f514e015a4d2c6ebd680eb72aba0bc2027d8a59a97af739d611bfa2d04dfb527d871a7fa9837ba91771fa6f1a9507787c11617e55f8
|
7
|
+
data.tar.gz: bd5f229ccc8e897466ee302920d8953d576f71fc68ae794fa80bdd2da228a44a26e62ec10bc7b20afc5457e7e0fdb57126f562e8d7b0c519e62a67a980aac68f
|
data/.travis.yml
CHANGED
data/convection.gemspec
CHANGED
data/docs/index.md
CHANGED
@@ -47,5 +47,12 @@ We highly recommend consulting the [getting started guide](./docs/getting-starte
|
|
47
47
|
|
48
48
|
Additionally you can generate the Ruby API documentation by executing `bundle exec rake yard`.
|
49
49
|
|
50
|
+
## TODO: Script to automatically create new AWS resources
|
51
|
+
Amazon publishes a spec for Cloudformation:
|
52
|
+
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
|
53
|
+
|
54
|
+
We should create a tool that uses that to create convection resource
|
55
|
+
code.
|
56
|
+
|
50
57
|
## License
|
51
58
|
Convection is distributed under the MIT license - please refer to the [LICENSE](LICENSE.md) for more information.
|
@@ -21,15 +21,32 @@ module Convection
|
|
21
21
|
property :engine_version, 'EngineVersion'
|
22
22
|
property :notification_topic_arn, 'NotificationTopicArn'
|
23
23
|
property :num_cache_clusters, 'NumCacheClusters'
|
24
|
+
property :num_node_groups, 'NumNodeGroups'
|
24
25
|
property :port, 'Port'
|
25
26
|
property :preferred_cache_cluster_azs, 'PreferredCacheClusterAZs', :type => :list
|
26
27
|
property :preferred_maintenance_window, 'PreferredMaintenanceWindow'
|
28
|
+
property :primary_cluster_id, 'PrimaryClusterId'
|
29
|
+
property :replicas_per_node_group, 'ReplicasPerNodeGroup'
|
27
30
|
property :replication_group_description, 'ReplicationGroupDescription'
|
31
|
+
property :replication_group_id, 'ReplicationGroupId'
|
28
32
|
property :security_group_ids, 'SecurityGroupIds', :type => :list
|
29
33
|
property :snapshot_arns, 'SnapshotArns', :type => :list
|
34
|
+
property :snapshot_name, 'SnapshotName'
|
30
35
|
property :snapshot_retention_limit, 'SnapshotRetentionLimit'
|
31
36
|
property :snapshot_window, 'SnapshotWindow'
|
32
37
|
|
38
|
+
# NodeGroupConfiguration is a list of NodeGroupConfiguration properties.
|
39
|
+
def node_group_configuration(&block)
|
40
|
+
config = ResourceProperty::ElasticacheReplicationGroupNodeGroupConfiguration.new(self)
|
41
|
+
config.instance_exec(&block) if block
|
42
|
+
|
43
|
+
prop = properties['NodeGroupConfiguration']
|
44
|
+
prop = [] if prop.nil?
|
45
|
+
prop << config
|
46
|
+
|
47
|
+
properties['NodeGroupConfiguration'].set(prop)
|
48
|
+
end
|
49
|
+
|
33
50
|
def render(*args)
|
34
51
|
super.tap do |resource|
|
35
52
|
render_tags(resource)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents a {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html
|
8
|
+
# Amazon ElastiCache ReplicationGroup NodeGroupConfiguration}
|
9
|
+
class ElasticacheReplicationGroupNodeGroupConfiguration < ResourceProperty
|
10
|
+
property :primary_availability_zone, 'PrimaryAvailabilityZone'
|
11
|
+
property :replica_availability_zones, 'ReplicaAvailabilityZones', :type => :list
|
12
|
+
property :replica_count, 'ReplicaCount'
|
13
|
+
property :slots, 'Slots'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: convection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Manero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -268,6 +268,7 @@ files:
|
|
268
268
|
- lib/convection/model/template/resource_property/aws_ec2_spot_fleet_request_config_data_launch_specifications_block_device_mapping_ebs.rb
|
269
269
|
- lib/convection/model/template/resource_property/aws_ec2_spot_fleet_request_config_data_launch_specifications_network_interface.rb
|
270
270
|
- lib/convection/model/template/resource_property/aws_ec2_spot_fleet_request_config_data_launch_specifications_security_groups.rb
|
271
|
+
- lib/convection/model/template/resource_property/aws_elasticache_replication_group_node_group_configuration.rb
|
271
272
|
- lib/convection/model/template/resource_property/aws_elbv2_listener_certificates.rb
|
272
273
|
- lib/convection/model/template/resource_property/aws_elbv2_listener_default_action.rb
|
273
274
|
- lib/convection/model/template/resource_property/aws_elbv2_listener_rule_action.rb
|
@@ -350,7 +351,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
350
351
|
requirements:
|
351
352
|
- - ">="
|
352
353
|
- !ruby/object:Gem::Version
|
353
|
-
version: '
|
354
|
+
version: '2.2'
|
354
355
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
355
356
|
requirements:
|
356
357
|
- - ">="
|