[PATCH] BZ 786344 added pre-launch validation for multi-instance deployments
Tomas Sedovic
tsedovic at redhat.com
Fri Feb 3 12:06:41 UTC 2012
On 02/02/2012 05:42 PM, Tzu-Mainn Chen wrote:
> ---
> src/app/models/deployment.rb | 17 +++++++++++++----
> 1 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
> index 8f6fac1..89a5ff5 100644
> --- a/src/app/models/deployment.rb
> +++ b/src/app/models/deployment.rb
> @@ -333,8 +333,9 @@ class Deployment< ActiveRecord::Base
> # if a match is found
> def check_assemblies_matches(user)
> errs = []
> - deployable_xml.assemblies.each do |assembly|
> - begin
> + instances = []
> + begin
> + deployable_xml.assemblies.each do |assembly|
> hw_profile = permissioned_frontend_hwprofile(user, assembly.hwp)
> raise "Hardware Profile #{assembly.hwp} not found." unless hw_profile
> instance = Instance.new(
> @@ -349,13 +350,21 @@ class Deployment< ActiveRecord::Base
> :owner => user,
> :hardware_profile => hw_profile
> )
> + instances<< instance
> possibles, errors = instance.matches
> if possibles.empty? and not errors.empty?
> raise Aeolus::Conductor::MultiError::UnlaunchableAssembly.new(I18n.t('deployments.flash.error.not_launched'), errors)
> end
> - rescue
> - errs = $!.message
> end
> +
> + deployment_errors = []
> + deployment_errors<< I18n.t('instances.errors.pool_quota_reached') if not pool.quota.can_start?(instances)
> + deployment_errors<< I18n.t('instances.errors.pool_family_quota_reached') if not pool.pool_family.quota.can_start?(instances)
> + if not deployment_errors.empty?
> + raise Aeolus::Conductor::MultiError::UnlaunchableAssembly.new(I18n.t('deployments.flash.error.not_launched'), deployment_errors)
> + end
> + rescue
> + errs = $!.message
> end
> errs
> end
ACK
More information about the aeolus-devel
mailing list