From b04efa22c4403ca869e94e7918721306d23afa8d Mon Sep 17 00:00:00 2001 From: Sarah Haskins Date: Fri, 21 Aug 2015 11:33:28 -0400 Subject: [PATCH] Expose cache_parameter_group_name in elasticache module The cache_parameter_group_name was not previously exposed in elasticachy.py, I have exposed it, as optional. --- cloud/amazon/elasticache.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/cloud/amazon/elasticache.py b/cloud/amazon/elasticache.py index 31ed4696628..32756bb8c22 100644 --- a/cloud/amazon/elasticache.py +++ b/cloud/amazon/elasticache.py @@ -43,6 +43,11 @@ options: - The version number of the cache engine required: false default: none + cache_parameter_group_name: + description: + - The name of the cache parameter group to associate with this cache cluster. If this argument is omitted, the default cache parameter group for the specified engine will be used. + required: false + default: none node_type: description: - The compute and memory capacity of the nodes in the cache cluster @@ -150,11 +155,12 @@ class ElastiCacheManager(object): def __init__(self, module, name, engine, cache_engine_version, node_type, num_nodes, cache_port, cache_subnet_group, cache_security_groups, security_group_ids, zone, wait, - hard_modify, region, **aws_connect_kwargs): + hard_modify, region, cache_parameter_group_name=None, **aws_connect_kwargs): self.module = module self.name = name self.engine = engine self.cache_engine_version = cache_engine_version + self.cache_parameter_group_name = cache_parameter_group_name self.node_type = node_type self.num_nodes = num_nodes self.cache_port = cache_port @@ -214,6 +220,7 @@ class ElastiCacheManager(object): cache_node_type=self.node_type, engine=self.engine, engine_version=self.cache_engine_version, + cache_parameter_group_name=self.cache_parameter_group_name, cache_security_group_names=self.cache_security_groups, security_group_ids=self.security_group_ids, cache_subnet_group_name=self.cache_subnet_group, @@ -293,7 +300,8 @@ class ElastiCacheManager(object): cache_security_group_names=self.cache_security_groups, security_group_ids=self.security_group_ids, apply_immediately=True, - engine_version=self.cache_engine_version) + engine_version=self.cache_engine_version, + cache_parameter_group_name=self.cache_parameter_group_name) except boto.exception.BotoServerError, e: self.module.fail_json(msg=e.message) @@ -478,6 +486,7 @@ def main(): name={'required': True}, engine={'required': False, 'default': 'memcached'}, cache_engine_version={'required': False}, + cache_parameter_group_name={'required': False}, node_type={'required': False, 'default': 'cache.m1.small'}, num_nodes={'required': False, 'default': None, 'type': 'int'}, cache_port={'required': False, 'type': 'int'}, @@ -505,6 +514,7 @@ def main(): state = module.params['state'] engine = module.params['engine'] cache_engine_version = module.params['cache_engine_version'] + cache_parameter_group_name = module.params['cache_parameter_group_name'] node_type = module.params['node_type'] num_nodes = module.params['num_nodes'] cache_port = module.params['cache_port'] @@ -530,12 +540,15 @@ def main(): module.fail_json(msg=str("Either region or AWS_REGION or EC2_REGION environment variable or boto config aws_region or ec2_region must be set.")) elasticache_manager = ElastiCacheManager(module, name, engine, - cache_engine_version, node_type, + cache_engine_version, + node_type, num_nodes, cache_port, cache_subnet_group, cache_security_groups, security_group_ids, zone, wait, - hard_modify, region, **aws_connect_kwargs) + hard_modify, region, + cache_parameter_group_name=cache_parameter_group_name, + **aws_connect_kwargs) if state == 'present': elasticache_manager.ensure_present()