def is_rds_snippet_compatible(parameter_pool, solution_stack, snippet_url=None): if snippet_url is None: snippet_url = parameter_pool.get_value(ParameterName.RdsSnippetUrl) eb_client = api_wrapper.create_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName) api_wrapper.create_application(parameter_pool, app_name, eb_client=eb_client) spec = TemplateSpecification(TemplateSource(solution_stack), [ TemplateSnippet(RdsDefault.SnippetName, snippet_url, order=RdsDefault.SnippetAddOrder) ]) try: log.info('Send request for ValidateConfigurationSettings call.') response = eb_client.validate_configuration_settings( application_name=app_name, template_specification=spec) log.info('Received response for ValidateConfigurationSettings call.') api_wrapper.log_response('ValidateConfigurationSettings', response.result) except MissingParameterException: return False else: log.info('Received response for ValidateConfigurationSettings call.') api_wrapper.log_response('ValidateConfigurationSettings', response.result) return True
def ask_environment_type(cls, parameter_pool): # Ensure application existence eb_client = api_wrapper.create_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) api_wrapper.create_application(parameter_pool, app_name, eb_client = eb_client) # Get available environment types solution_stack = parameter_pool.get_value(ParameterName.SolutionStack, False) optionDef = eb_utils.get_option_def(eb_client = eb_client, app_name = app_name, namespace = OptionSettingEnvironmentType.Namespace, option_name = OptionSettingEnvironmentType.OptionName, solution_stack = solution_stack) if optionDef and len(optionDef.value_options) > 0: # Ask for environment type is option is available original_value = parameter_pool.get_value(ParameterName.EnvironmentType) append_message = u'' if original_value is None \ else TerminalMessage.CurrentValue.format(original_value) print(TerminalPromptAskingMessage[ParameterName.EnvironmentType].\ format(append_message)) availableTypes = optionDef.value_options type_index = cls.single_choice(choice_list = availableTypes, title = TerminalMessage.AvailableEnvironmentType, message = None, can_return_none = original_value is not None) value = availableTypes[type_index] if type_index is not None else original_value envtype = Parameter(ParameterName.EnvironmentType, value, ParameterSource.Terminal) parameter_pool.put(envtype, True) else: # Remove environment type parameter_pool.remove(ParameterName.EnvironmentType)
def is_rds_snippet_compatible(parameter_pool, solution_stack, snippet_url = None): if snippet_url is None: snippet_url = parameter_pool.get_value(ParameterName.RdsSnippetUrl, False) eb_client = api_wrapper.create_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) api_wrapper.create_application(parameter_pool, app_name, eb_client = eb_client) spec = TemplateSpecification() spec.template_snippets.append(TemplateSnippet(RdsDefault.SnippetName, snippet_url, order = RdsDefault.SnippetAddOrder)) spec.template_source.solution_stack_name = solution_stack try: log.info('Send request for ValidateConfigurationSettings call.') response = eb_client.validate_configuration_settings(application_name = app_name, template_specification = spec) log.info('Received response for ValidateConfigurationSettings call.') api_wrapper.log_response('ValidateConfigurationSettings', response.result) except MissingParameterException: return False else: log.info('Received response for ValidateConfigurationSettings call.') api_wrapper.log_response('ValidateConfigurationSettings', response.result) return True
def ask_environment_type(cls, parameter_pool): # Ensure application existence eb_client = api_wrapper.create_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) api_wrapper.create_application(parameter_pool, app_name, eb_client = eb_client) # Get available environment types solution_stack = parameter_pool.get_value(ParameterName.SolutionStack, False) optionDef = eb_utils.get_option_def(eb_client = eb_client, app_name = app_name, namespace = OptionSettingEnvironmentType.Namespace, option_name = OptionSettingEnvironmentType.OptionName, solution_stack = solution_stack) if optionDef and len(optionDef.value_options) > 0: # Ask for environment type is option is available original_value = parameter_pool.get_value(ParameterName.EnvironmentType) append_message = '' if original_value is None \ else TerminalMessage.CurrentValue.format(original_value) print((TerminalPromptAskingMessage[ParameterName.EnvironmentType].\ format(append_message))) availableTypes = optionDef.value_options type_index = cls.single_choice(choice_list = availableTypes, title = TerminalMessage.AvailableEnvironmentType, message = None, can_return_none = original_value is not None) value = availableTypes[type_index] if type_index is not None else original_value envtype = Parameter(ParameterName.EnvironmentType, value, ParameterSource.Terminal) parameter_pool.put(envtype, True) else: # Remove environment type parameter_pool.remove(ParameterName.EnvironmentType)