本文整理汇总了Python中template.Template.add_parameter_idempotent方法的典型用法代码示例。如果您正苦于以下问题:Python Template.add_parameter_idempotent方法的具体用法?Python Template.add_parameter_idempotent怎么用?Python Template.add_parameter_idempotent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类template.Template
的用法示例。
在下文中一共展示了Template.add_parameter_idempotent方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: EnvironmentBase
# 需要导入模块: from template import Template [as 别名]
# 或者: from template.Template import add_parameter_idempotent [as 别名]
#.........这里部分代码省略.........
This depends on populating ami_cache.json with the AMI ids that are output by the packer scripts per region
@param template The template to attach the AMI mapping to
@param create_missing_file File loading policy, if true
"""
file_path = None
# Users can provide override ami_cache in their project root
local_amicache = os.path.join(os.getcwd(), res.DEFAULT_AMI_CACHE_FILENAME)
if os.path.isfile(local_amicache):
file_path = local_amicache
# Or sibling to the executing class
elif os.path.isfile(res.DEFAULT_AMI_CACHE_FILENAME):
file_path = res.DEFAULT_AMI_CACHE_FILENAME
if file_path:
with open(file_path, 'r') as json_file:
json_data = json.load(json_file)
elif create_missing_files:
json_data = res.FACTORY_DEFAULT_AMI_CACHE
with open(res.DEFAULT_AMI_CACHE_FILENAME, 'w') as f:
f.write(json.dumps(res.FACTORY_DEFAULT_AMI_CACHE, indent=4, separators=(',', ': ')))
else:
raise IOError(res.DEFAULT_AMI_CACHE_FILENAME + ' could not be found')
template.add_ami_mapping(json_data)
def add_common_parameters(self,
template_config):
'''
Adds common parameters for instance creation to the CloudFormation template
@param template_config [dict] collection of template-level configuration values to drive the setup of this method
'''
self.template.add_parameter_idempotent(Parameter('ec2Key',
Type='String',
Default=template_config.get('ec2_key_default','default-key'),
Description='Name of an existing EC2 KeyPair to enable SSH access to the instances',
AllowedPattern=res.get_str('ec2_key'),
MinLength=1,
MaxLength=255,
ConstraintDescription=res.get_str('ec2_key_message')))
self.remote_access_cidr = self.template.add_parameter(Parameter('remoteAccessLocation',
Description='CIDR block identifying the network address space that will be allowed to ingress into public access points within this solution',
Type='String',
Default='0.0.0.0/0',
MinLength=9,
MaxLength=18,
AllowedPattern=res.get_str('cidr_regex'),
ConstraintDescription=res.get_str('cidr_regex_message')))
def to_json(self):
'''
Centralized method for managing outputting this template with a timestamp identifying when it was generated and for creating a SHA256 hash representing the template for validation purposes
'''
return self.template.to_template_json()
def add_common_params_to_child_template(self, template):
az_count = self.config['network']['az_count']
subnet_types = self.config['network']['subnet_types']
template.add_common_parameters(subnet_types, az_count)
template.add_parameter_idempotent(Parameter(
'ec2Key',
Type='String',
Default=self.config.get('template').get('ec2_key_default', 'default-key'),
示例2: EnvironmentBase
# 需要导入模块: from template import Template [as 别名]
# 或者: from template.Template import add_parameter_idempotent [as 别名]
#.........这里部分代码省略.........
for deploy_handler in self.env_config.deploy_handlers:
self._add_deploy_handler(deploy_handler)
def initialize_template(self):
"""
Create new Template instance, set description and common parameters and load AMI cache.
"""
print 'Generating template for %s stack\n' % self.globals['environment_name']
self.template = Template(self.globals.get('output', 'default_template'))
self.template.description = self.template_args.get('description', 'No Description Specified')
self.init_root_template(self.template_args)
self.template.load_ami_cache()
def generate_ami_cache(self):
"""
Generate ami_cache.json file from defaults
"""
if os.path.isfile(res.DEFAULT_AMI_CACHE_FILENAME):
overwrite = raw_input("%s already exists. Overwrite? (y/n) " % res.DEFAULT_AMI_CACHE_FILENAME).lower()
print
if not overwrite == 'y':
return
with open(res.DEFAULT_AMI_CACHE_FILENAME, 'w') as f:
f.write(json.dumps(res.FACTORY_DEFAULT_AMI_CACHE, indent=4, separators=(',', ': ')))
print "Generated AMI cache file at %s\n" % res.DEFAULT_AMI_CACHE_FILENAME
def init_root_template(self, template_config):
"""
Adds common parameters for instance creation to the CloudFormation template
@param template_config [dict] collection of template-level configuration values to drive the setup of this method
"""
self.template.add_parameter_idempotent(Parameter('ec2Key',
Type='String',
Default=template_config.get('ec2_key_default', 'default-key'),
Description='Name of an existing EC2 KeyPair to enable SSH access to the instances',
AllowedPattern=res.get_str('ec2_key'),
MinLength=1,
MaxLength=255,
ConstraintDescription=res.get_str('ec2_key_message')))
self.template.add_utility_bucket(
name=template_config.get('utility_bucket'),
param_binding_map=self.manual_parameter_bindings)
def to_json(self):
"""
Centralized method for managing outputting this template with a timestamp identifying when it was generated and for creating a SHA256 hash representing the template for validation purposes
"""
return self.template.to_template_json()
def add_common_params_to_child_template(self, template):
az_count = self.config['network']['az_count']
subnet_types = self.config['network']['subnet_types']
template.add_common_parameters(subnet_types, az_count)
template.add_parameter_idempotent(Parameter(
'ec2Key',
Type='String',
Default=self.config.get('template').get('ec2_key_default', 'default-key'),
Description='Name of an existing EC2 KeyPair to enable SSH access to the instances',
AllowedPattern=res.get_str('ec2_key'),
MinLength=1,
MaxLength=255,
ConstraintDescription=res.get_str('ec2_key_message')))