def execute(self, parameter_pool):
     
     command = parameter_pool.get_value(ParameterName.Command)
     
     if parameter_pool.has(ParameterName.ApplicationName)\
         and parameter_pool.has(ParameterName.EnvironmentName):
         
         app_name = parameter_pool.get_value(ParameterName.ApplicationName)
         env_name = parameter_pool.get_value(ParameterName.EnvironmentName)
         policy = rds_utils.is_rds_delete_to_snapshot(parameter_pool, app_name, env_name)
         local_rds_switch = parameter_pool.get_value(ParameterName.RdsEnabled)
         if policy is not None and not RdsDefault.del_policy_to_bool(policy):
             if command == CommandType.UPDATE:
                 if local_rds_switch:
                     pass
                 else:
                     prompt.result(AskConfirmationOpMessage.CommandWarning[command])
             else:
                 prompt.result(AskConfirmationOpMessage.CommandWarning[command])
     
     if (parameter_pool.has(ParameterName.Force) \
             and parameter_pool.get_value(ParameterName.Force) == ServiceDefault.ENABLED) \
         or TerminalBase.ask_confirmation(AskConfirmationOpMessage.CommandConfirmation[command]):
         ret_result = OperationResult(self, None, None, None)
         return ret_result
     else:
         log.info('User cancelled command.')
         raise EBSCliException()
Exemple #2
0
def is_rds_delete_to_snapshot(parameter_pool, app_name, env_name):
    policy_option = OptionSepcification(RdsDefault.Namespace, 
                                          RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy])
    policy_setting = api_wrapper.retrieve_configuration_settings(parameter_pool, app_name,
                                                                 env_name = env_name, 
                                                                 options = [policy_option])

    if len(policy_setting) != 1:
        return None # Option name not found. No RDS instance
    return RdsDefault.del_policy_to_bool(policy_setting[0].value) 
Exemple #3
0
def is_rds_delete_to_snapshot(parameter_pool, app_name, env_name):
    policy_options = {RdsDefault.Namespace: {RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy]}}
    try:
        policy_setting = api_wrapper.retrieve_configuration_settings(parameter_pool, app_name,
                                                                     env_name = env_name, 
                                                                     options = policy_options)
    except InvalidParameterValueException:
        return None  # Environment not exist. No RDS instance        

    if len(policy_setting) < 1:
        return None # Option name not found. No RDS instance
   
    return RdsDefault.del_policy_to_bool(policy_setting[RdsDefault.Namespace]\
                                         [RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy]]) 
Exemple #4
0
def is_rds_delete_to_snapshot(parameter_pool, app_name, env_name):
    policy_option = OptionSepcification(RdsDefault.Namespace, 
                                          RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy])
    try:
        policy_setting = api_wrapper.retrieve_configuration_settings(parameter_pool, app_name,
                                                                     env_name = env_name, 
                                                                     options = [policy_option])
    except InvalidParameterValueException:
        return None  # Environment not exist. No RDS instance        

    if len(policy_setting) != 1:
        return None # Option name not found. No RDS instance
   
    return RdsDefault.del_policy_to_bool(policy_setting[0].value) 
def is_rds_delete_to_snapshot(parameter_pool, app_name, env_name):
    policy_options = {RdsDefault.Namespace: {RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy]}}
    try:
        policy_setting = api_wrapper.retrieve_configuration_settings(parameter_pool, app_name,
                                                                     env_name = env_name, 
                                                                     options = policy_options)
    except InvalidParameterValueException:
        return None  # Environment not exist. No RDS instance        

    if RdsDefault.Namespace in policy_setting\
        and RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy] in policy_setting[RdsDefault.Namespace]:
        return RdsDefault.del_policy_to_bool(policy_setting[RdsDefault.Namespace]\
                                             [RdsDefault.OptionNames[ParameterName.RdsDeletionPolicy]])
    else: 
        return None 
    def ask_delete_to_snapshot(cls, parameter_pool):
        if parameter_pool.has(PName.RdsDeletionPolicy):
            original_value = parameter_pool.get_value(PName.RdsDeletionPolicy)
            display_value = RdsDefault.del_policy_to_bool(original_value)
            display_value = misc.bool_to_yesno(display_value)
        else:
            display_value = None
                    
        value = cls.ask_parameter(parameter_pool, PName.RdsDeletionPolicy, display_value)

        if value is None:
            return
        elif not isinstance(value, bool):
            value = RdsDefault.bool_to_del_policy(misc.string_to_boolean(value))
            
        parameter_pool.put(Parameter(PName.RdsDeletionPolicy, 
                                     value, 
                                     PSource.Terminal), 
                           True)        
    def _probe_rds_change(self, parameter_pool, command):
        
        if parameter_pool.has(ParameterName.ApplicationName)\
            and parameter_pool.has(ParameterName.EnvironmentName):

            app_name = parameter_pool.get_value(ParameterName.ApplicationName)
            env_name = parameter_pool.get_value(ParameterName.EnvironmentName)
            
            policy = rds_utils.is_rds_delete_to_snapshot(parameter_pool, app_name, env_name)
            local_rds_switch = parameter_pool.get_value(ParameterName.RdsEnabled)

            if policy is not None and not RdsDefault.del_policy_to_bool(policy):
                if command == CommandType.UPDATE:
                    if local_rds_switch:
                        pass
                    else:
                        prompt.result(AskConfirmationOpMessage.CommandWarning[command])
                else:
                    prompt.result(AskConfirmationOpMessage.CommandWarning[command])
Exemple #8
0
    def _probe_rds_change(self, parameter_pool, command):
        
        if parameter_pool.has(PName.ApplicationName)\
            and parameter_pool.has(PName.EnvironmentName):

            app_name = parameter_pool.get_value(PName.ApplicationName, False)
            env_name = parameter_pool.get_value(PName.EnvironmentName, False)
            
            policy = rds_utils.is_rds_delete_to_snapshot(parameter_pool, app_name, env_name)
            local_rds_switch = parameter_pool.get_value(PName.RdsEnabled, False)

            if policy is not None and not RdsDefault.del_policy_to_bool(policy):
                if command == CommandType.UPDATE:
                    if local_rds_switch:
                        pass
                    else:
                        prompt.result(AskConfirmationOpMessage.CommandWarning[command])
                else:
                    prompt.result(AskConfirmationOpMessage.CommandWarning[command])
    def ask_delete_to_snapshot(cls, parameter_pool):
        if parameter_pool.has(PName.RdsDeletionPolicy):
            original_value = parameter_pool.get_value(PName.RdsDeletionPolicy, False)
            display_value = RdsDefault.del_policy_to_bool(original_value)
            display_value = misc.bool_to_yesno(display_value)
        else:
            display_value = None
                    
        value = cls.ask_parameter(parameter_pool, PName.RdsDeletionPolicy, display_value)

        if value is None:
            return
        elif not isinstance(value, bool):
            value = RdsDefault.bool_to_del_policy(misc.string_to_boolean(value))
            
        parameter_pool.put(Parameter(PName.RdsDeletionPolicy, 
                                     value, 
                                     PSource.Terminal), 
                           True)