def execute(self, parameter_pool): eb_client = self._get_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) version_name = eb_utils.check_app_version(parameter_pool, eb_client) env_name = parameter_pool.get_value(ParameterName.EnvironmentName, False) stack_name = parameter_pool.get_value(ParameterName.SolutionStack, False) tier = parameter_pool.get_value(ParameterName.EnvironmentTier, False) spec = TemplateSpecification() # Try load option setting file if exist option_location = parameter_pool.get_value(ParameterName.OptionSettingFile, False) option_settings = config_file.load_env_option_setting_file(option_location, quiet = True) if option_settings is not None and len(option_settings) > 0: prompt.info(CreateEnvironmentOpMessage.UsingOptionSetting.format(option_location)) else: option_settings = dict() option_remove = dict() # Process extensions first before we process options self._extension_handler(parameter_pool, spec, stack_name, option_settings, option_remove) # Process options self._option_setting_handler(parameter_pool, spec, stack_name, None, option_settings, option_remove) prompt.action(CreateEnvironmentOpMessage.Start.format(env_name)) try: response = eb_client.create_environment(application = app_name, environment = env_name, solution_stack = stack_name, version_label = version_name, option_settings = option_settings, option_remove = option_remove, template_specification = spec, tier = tier) except AlreadyExistException: log.info(u'Environment "{0}" already exist.'.format(env_name)) prompt.result(CreateEnvironmentOpMessage.AlreadyExist.format(env_name)) ret_result = OperationResult(self, None, CreateEnvironmentOpMessage.AlreadyExist.format(env_name), None) else: log.info(u'Received response for CreateEnvironemnt call.') prompt.info(CreateEnvironmentOpMessage.Succeed) prompt.result(CreateEnvironmentOpMessage.WaitAfterLaunch.format(env_name)) self._log_api_result(self.__class__.__name__, u'CreateEnvironment', response.result) parameter_pool.put(Parameter(ParameterName.CreateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput)) ret_result = OperationResult(self, response.request_id, CreateEnvironmentOpMessage.Succeed, response.result) return ret_result
def trim_vpc_options(parameter_pool, option_settings, option_to_remove): if OptionSettingVPC.Namespace in option_settings\ and OptionSettingVPC.MagicOptionName in option_settings[OptionSettingVPC.Namespace]\ and not misc.is_blank_string(option_settings[OptionSettingVPC.Namespace]\ [OptionSettingVPC.MagicOptionName]): # VPC enabled for namespace in OptionSettingVPC.TrimOption: for option in OptionSettingVPC.TrimOption[namespace]: remove_option_setting(option_settings, option_to_remove, namespace, option) # Reapply DBSubnets if RDS is enabled if parameter_pool.get_value(PName.RdsEnabled): option_location = parameter_pool.get_value(PName.OptionSettingFile, False) ori_option_settings = config_file.load_env_option_setting_file( option_location, quiet=True) if OptionSettingVPC.Namespace in ori_option_settings\ and OptionSettingVPC.DBSubnets in ori_option_settings[OptionSettingVPC.Namespace]: dbsubnets = ori_option_settings[OptionSettingVPC.Namespace][ OptionSettingVPC.DBSubnets] if not misc.is_blank_string(dbsubnets): add_option_setting(option_settings, option_to_remove, OptionSettingVPC.Namespace, OptionSettingVPC.DBSubnets, dbsubnets) else: # VPC disabled remove_option_namespace(option_settings, option_to_remove, OptionSettingVPC.Namespace)
def trim_vpc_options(parameter_pool, option_settings, option_to_remove): if OptionSettingVPC.Namespace in option_settings\ and OptionSettingVPC.MagicOptionName in option_settings[OptionSettingVPC.Namespace]\ and not misc.is_blank_string(option_settings[OptionSettingVPC.Namespace]\ [OptionSettingVPC.MagicOptionName]): # VPC enabled for namespace in OptionSettingVPC.TrimOption: for option in OptionSettingVPC.TrimOption[namespace]: remove_option_setting(option_settings, option_to_remove, namespace, option) # Reapply DBSubnets if RDS is enabled if parameter_pool.get_value(PName.RdsEnabled): option_location = parameter_pool.get_value(PName.OptionSettingFile, False) ori_option_settings = config_file.load_env_option_setting_file(option_location, quiet = True) if OptionSettingVPC.Namespace in ori_option_settings\ and OptionSettingVPC.DBSubnets in ori_option_settings[OptionSettingVPC.Namespace]: dbsubnets = ori_option_settings[OptionSettingVPC.Namespace][OptionSettingVPC.DBSubnets] if not misc.is_blank_string(dbsubnets): add_option_setting(option_settings, option_to_remove, OptionSettingVPC.Namespace, OptionSettingVPC.DBSubnets, dbsubnets) else: # VPC disabled remove_option_namespace(option_settings, option_to_remove, OptionSettingVPC.Namespace)
def execute(self, parameter_pool): eb_client = self._get_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) env_name = parameter_pool.get_value(ParameterName.EnvironmentName, False) stack_name = parameter_pool.get_value(ParameterName.SolutionStack, False) prompt.action( UpdateEnvironmentOptionSettingOpMessage.Start.format(env_name)) spec = TemplateSpecification() # Try load option setting file if exist option_location = parameter_pool.get_value( ParameterName.OptionSettingFile, False) option_settings = config_file.load_env_option_setting_file( option_location, quiet=True) if option_settings is not None and len(option_settings) > 0: prompt.info( UpdateEnvironmentOptionSettingOpMessage.UsingOptionSetting. format(option_location)) else: option_settings = dict() option_remove = dict() self._option_setting_handler(parameter_pool, spec, stack_name, option_settings, option_remove) self._validate_change(parameter_pool, eb_client, app_name, env_name, option_settings, option_remove, spec) try: response = eb_client.update_environment( env_name, option_settings=option_settings, option_remove=option_remove, template_specification=spec) except: raise else: log.info(u'Received response for UpdateEnvironemnt call.') prompt.result( UpdateEnvironmentOptionSettingOpMessage.Succeed.format( env_name)) self._log_api_result(self.__class__.__name__, u'UpdateEnvironment', response.result) parameter_pool.put( Parameter(ParameterName.UpdateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput)) ret_result = OperationResult( self, response.request_id, UpdateEnvironmentOptionSettingOpMessage.Succeed.format( env_name), response.result) return ret_result
def execute(self, parameter_pool): eb_client = self._get_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) env_name = parameter_pool.get_value(ParameterName.EnvironmentName, False) stack_name = parameter_pool.get_value(ParameterName.SolutionStack, False) prompt.action(UpdateEnvironmentOptionSettingOpMessage.Start.format(env_name)) tier = parameter_pool.get_value(ParameterName.EnvironmentTier, False) spec = TemplateSpecification() # Try load option setting file if exist option_location = parameter_pool.get_value(ParameterName.OptionSettingFile, False) option_settings = config_file.load_env_option_setting_file(option_location, quiet=True) if option_settings is not None and len(option_settings) > 0: prompt.info(UpdateEnvironmentOptionSettingOpMessage.UsingOptionSetting.format(option_location)) else: option_settings = dict() option_remove = dict() # Process extensions first before we process options self._extension_handler(parameter_pool, spec, stack_name, option_settings, option_remove) # Process options self._option_setting_handler(parameter_pool, spec, stack_name, env_name, option_settings, option_remove) self._validate_change(parameter_pool, eb_client, app_name, env_name, option_settings, option_remove, spec) try: response = eb_client.update_environment( env_name, option_settings=option_settings, option_remove=option_remove, template_specification=spec, tier=tier, ) except: raise else: log.info("Received response for UpdateEnvironemnt call.") prompt.result(UpdateEnvironmentOptionSettingOpMessage.Succeed.format(env_name)) self._log_api_result(self.__class__.__name__, "UpdateEnvironment", response.result) parameter_pool.put( Parameter( ParameterName.UpdateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput ) ) ret_result = OperationResult( self, response.request_id, UpdateEnvironmentOptionSettingOpMessage.Succeed.format(env_name), response.result, ) return ret_result
def execute(self, parameter_pool): eb_client = ElasticBeanstalkClient( parameter_pool.get_value(ParameterName.AwsAccessKeyId), parameter_pool.get_value(ParameterName.AwsSecretAccessKey), parameter_pool.get_value(ParameterName.ServiceEndpoint)) app_name = parameter_pool.get_value(ParameterName.ApplicationName) env_name = parameter_pool.get_value(ParameterName.EnvironmentName) stack_name = parameter_pool.get_value(ParameterName.SolutionStack) prompt.action( UpdateEnvironmentOptionSettingOpMessage.Start.format(env_name)) location = parameter_pool.get_value(ParameterName.OptionSettingFile) option_settings = config_file.load_env_option_setting_file(location, quiet=True) if option_settings is not None and len(option_settings) > 0: prompt.info( UpdateEnvironmentOptionSettingOpMessage.UsingOptionSetting. format(location)) else: option_settings = [] option_remove = set() spec = TemplateSpecification() rds_utils.rds_handler(parameter_pool, spec, stack_name, option_settings, option_remove) self._option_setting_handler(option_settings, option_remove) self._validate_change(parameter_pool, eb_client, app_name, env_name, option_settings, option_remove, spec) try: response = eb_client.update_environment( env_name, option_settings=option_settings, option_remove=option_remove, template_specification=spec) except: raise else: log.info('Received response for UpdateEnvironemnt call.') prompt.result( UpdateEnvironmentOptionSettingOpMessage.Succeed.format( env_name)) self._log_api_result(self.__class__.__name__, 'UpdateEnvironment', response.result) parameter_pool.put( Parameter(ParameterName.UpdateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput)) ret_result = OperationResult( self, response.request_id, UpdateEnvironmentOptionSettingOpMessage.Succeed.format( env_name), response.result) return ret_result
def execute(self, parameter_pool): eb_client = ElasticBeanstalkClient(parameter_pool.get_value(ParameterName.AwsAccessKeyId), parameter_pool.get_value(ParameterName.AwsSecretAccessKey), parameter_pool.get_value(ParameterName.ServiceEndpoint)) app_name = parameter_pool.get_value(ParameterName.ApplicationName) version_name = parameter_pool.get_value(ParameterName.ApplicationVersionName) env_name = parameter_pool.get_value(ParameterName.EnvironmentName) stack_name = parameter_pool.get_value(ParameterName.SolutionStack) # Try load option setting file if exist option_file_location = parameter_pool.get_value(ParameterName.OptionSettingFile) option_settings = config_file.load_env_option_setting_file(option_file_location, quiet = True) if option_settings is not None and len(option_settings) > 0: prompt.info(CreateEnvironmentOpMessage.UsingOptionSetting.format(option_file_location)) else: option_settings = [] option_remove = set() spec = TemplateSpecification() rds_utils.rds_handler(parameter_pool, spec, stack_name, option_settings, option_remove) self._option_setting_handler(option_settings, option_remove) prompt.action(CreateEnvironmentOpMessage.Start.format(env_name)) try: response = eb_client.create_environment(application = app_name, environment = env_name, solution_stack = stack_name, version_label = version_name, option_settings = option_settings, option_remove = option_remove, template_specification = spec, ) except AlreadyExistException: log.info(u'Environment "{0}" already exist.'.format(env_name)) prompt.result(CreateEnvironmentOpMessage.AlreadyExist.format(env_name)) ret_result = OperationResult(self, None, CreateEnvironmentOpMessage.AlreadyExist.format(env_name), None) else: log.info(u'Received response for CreateEnvironemnt call.') prompt.info(CreateEnvironmentOpMessage.Succeed) prompt.result(CreateEnvironmentOpMessage.WaitAfterLaunch.format(env_name)) self._log_api_result(self.__class__.__name__, u'CreateEnvironment', response.result) parameter_pool.put(Parameter(ParameterName.CreateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput)) ret_result = OperationResult(self, response.request_id, CreateEnvironmentOpMessage.Succeed, response.result) return ret_result
def execute(self, parameter_pool): eb_client = ElasticBeanstalkClient( parameter_pool.get_value(ParameterName.AwsAccessKeyId), parameter_pool.get_value(ParameterName.AwsSecretAccessKey), parameter_pool.get_value(ParameterName.ServiceEndpoint), ) app_name = parameter_pool.get_value(ParameterName.ApplicationName) env_name = parameter_pool.get_value(ParameterName.EnvironmentName) stack_name = parameter_pool.get_value(ParameterName.SolutionStack) prompt.action(UpdateEnvironmentOptionSettingOpMessage.Start.format(env_name)) location = parameter_pool.get_value(ParameterName.OptionSettingFile) option_settings = config_file.load_env_option_setting_file(location, quiet=True) if option_settings is not None and len(option_settings) > 0: prompt.info(UpdateEnvironmentOptionSettingOpMessage.UsingOptionSetting.format(location)) else: option_settings = [] option_remove = set() spec = rds_utils.rds_handler(parameter_pool, stack_name, option_settings, option_remove) self._validate_change(parameter_pool, eb_client, app_name, env_name, option_settings, option_remove, spec) try: response = eb_client.update_environment( env_name, option_settings=option_settings, option_remove=option_remove, template_specification=spec ) except: raise else: log.info(u"Received response for UpdateEnvironemnt call.") prompt.result(UpdateEnvironmentOptionSettingOpMessage.Succeed.format(env_name)) self._log_api_result(self.__class__.__name__, u"UpdateEnvironment", response.result) parameter_pool.put( Parameter( ParameterName.UpdateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput ) ) ret_result = OperationResult( self, response.request_id, UpdateEnvironmentOptionSettingOpMessage.Succeed.format(env_name), response.result, ) return ret_result
def execute(self, parameter_pool): eb_client = self._get_eb_client(parameter_pool) app_name = parameter_pool.get_value(ParameterName.ApplicationName, False) version_name = eb_utils.check_app_version(parameter_pool, eb_client) env_name = parameter_pool.get_value(ParameterName.EnvironmentName, False) stack_name = parameter_pool.get_value(ParameterName.SolutionStack, False) tier = parameter_pool.get_value(ParameterName.EnvironmentTier, False) spec = TemplateSpecification() # Try load option setting file if exist option_location = parameter_pool.get_value( ParameterName.OptionSettingFile, False) option_settings = config_file.load_env_option_setting_file( option_location, quiet=True) if option_settings is not None and len(option_settings) > 0: prompt.info( CreateEnvironmentOpMessage.UsingOptionSetting.format( option_location)) else: option_settings = dict() option_remove = dict() # Process extensions first before we process options self._extension_handler(parameter_pool, spec, stack_name, option_settings, option_remove) # Process options self._option_setting_handler(parameter_pool, spec, stack_name, None, option_settings, option_remove) prompt.action(CreateEnvironmentOpMessage.Start.format(env_name)) try: response = eb_client.create_environment( application=app_name, environment=env_name, solution_stack=stack_name, version_label=version_name, option_settings=option_settings, option_remove=option_remove, template_specification=spec, tier=tier) except AlreadyExistException: log.info(u'Environment "{0}" already exist.'.format(env_name)) prompt.result( CreateEnvironmentOpMessage.AlreadyExist.format(env_name)) ret_result = OperationResult( self, None, CreateEnvironmentOpMessage.AlreadyExist.format(env_name), None) else: log.info(u'Received response for CreateEnvironemnt call.') prompt.info(CreateEnvironmentOpMessage.Succeed) prompt.result( CreateEnvironmentOpMessage.WaitAfterLaunch.format(env_name)) self._log_api_result(self.__class__.__name__, u'CreateEnvironment', response.result) parameter_pool.put( Parameter(ParameterName.CreateEnvironmentRequestID, response.request_id, ParameterSource.OperationOutput)) ret_result = OperationResult(self, response.request_id, CreateEnvironmentOpMessage.Succeed, response.result) return ret_result