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()
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)
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]])
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])
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)