Example #1
0
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)
Example #3
0
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
Example #4
0
    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)