[email protected] wrote:
> From: Jan Provaznik <[email protected]>
>
> If there were only optional packages in a group, the group
> was marked as selected even if no package was selected.
>
> Now: if there are only optional pkgs in a group, group is marked as selected
> only if all optional packages are selected.
> ---
>  src/app/util/repository_manager.rb |   29 ++++++++++++++++++++---------
>  1 files changed, 20 insertions(+), 9 deletions(-)
>
> diff --git a/src/app/util/repository_manager.rb 
> b/src/app/util/repository_manager.rb
> index d34ccf5..b214583 100644
> --- a/src/app/util/repository_manager.rb
> +++ b/src/app/util/repository_manager.rb
> @@ -65,15 +65,7 @@ class RepositoryManager
>          next unless p = group[:packages][pkg[:name]]
>          p[:selected] = true
>        end
> -      # if all non-optional packages are selected, mark all
> -      # group as selected
> -      group[:selected] = true
> -      group[:packages].each_value do |pkg|
> -        if pkg[:type] != 'optional' and !pkg[:selected]
> -          group[:selected] = false
> -          break
> -        end
> -      end
> +      group[:selected] = is_group_selected(group)
>      end
>      return groups
>    end
> @@ -88,6 +80,25 @@ class RepositoryManager
>  
>    private
>  
> +  # returns true if all non-optional packages are selected
> +  # (if there are only non-optional packages in the group,
> +  # all packages must be selected)
> +  def is_group_selected(group)
> +    all = true
> +    all_nonopt = true
> +    only_opt = true
> +    group[:packages].each_value do |pkg|
> +      all = false unless pkg[:selected]
> +      if pkg[:type] != 'optional'
> +        only_opt = false
> +        if !pkg[:selected]
> +          all_nonopt = false
> +        end
> +      end
> +    end
> +    return only_opt ? all : all_nonopt
> +  end
> +
>    def load_config
>      
> YAML.load_file("#{RAILS_ROOT}/config/image_descriptor_package_repositories.yml")
>    end
>   
Ack and pushed

Scott
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to