On Mon, 2011-02-21 at 17:40 -0500, James Antill wrote:
> ---
>  yum/__init__.py |   31 ++++++++++++++++++++++---------
>  1 files changed, 22 insertions(+), 9 deletions(-)
> 
> diff --git a/yum/__init__.py b/yum/__init__.py
> index 059095a..5c44245 100644
> --- a/yum/__init__.py
> +++ b/yum/__init__.py
> @@ -4484,17 +4484,20 @@ class YumBase(depsolve.Depsolve):
>          be imported using askcb.
>          
>          @param po: Package object to retrieve the key of.
> -        @param askcb: Callback function to use for asking for verification.
> +        @param askcb: Callback function to use for asking for permission to
> +                      import a key. This is verification, but also "choice".
>                        Takes arguments of the po, the userid for the key, and
>                        the keyid.
> -        @param fullaskcb: Callback function to use for asking for 
> verification
> -                          of a key. Differs from askcb in that it gets passed
> -                          a dictionary so that we can expand the values 
> passed.
> +        @param fullaskcb: Callback function to use for asking for permission 
> to
> +                          import a key. This is verification, but also 
> "choice".
> +                          Differs from askcb in that it gets passed a
> +                          dictionary so that we can expand the values passed.
>          """
>          repo = self.repos.getRepo(po.repoid)
>          keyurls = repo.gpgkey
>          key_installed = False
>  
> +        user_cb_fail = False
>          for keyurl in keyurls:
>              keys = self._retrievePublicKey(keyurl, repo)
>  
> @@ -4531,7 +4534,8 @@ class YumBase(depsolve.Depsolve):
>                          rc = askcb(po, info['userid'], info['hexkeyid'])
>  
>                      if not rc:
> -                        raise Errors.YumBaseError, _("Not installing key")
> +                        user_cb_fail = True
> +                        continue
>                      
>                  # Import the key
>                  ts = self.rpmdb.readOnlyTS()
> @@ -4542,6 +4546,9 @@ class YumBase(depsolve.Depsolve):
>                  self.logger.info(_('Key imported successfully'))
>                  key_installed = True
>  
> +        if not key_installed and user_cb_fail:
> +            raise Errors.YumBaseError, _("Didn't install any keys")
> +
>          if not key_installed:
>              raise Errors.YumBaseError, \
>                    _('The GPG keys listed for the "%s" repository are ' \
> @@ -4565,11 +4572,13 @@ class YumBase(depsolve.Depsolve):
>          @param destdir: destination of the gpg pub ring
>          @param keyurl_list: list of urls for gpg keys
>          @param is_cakey: bool - are we pulling in a ca key or not
> -        @param callback: Callback function to use for asking for verification
> -                          of a key. Takes a dictionary of key info.
> +        @param callback: Callback function to use for asking for permission 
> to
> +                         import a key. This is verification, but also 
> "choice".
> +                         Takes a dictionary of key info.
>          """
>  
>          key_installed = False
> +        user_cb_fail = False
>          for keyurl in keyurl_list:
>              keys = self._retrievePublicKey(keyurl, repo, getSig=not is_cakey)
>              for info in keys:
> @@ -4610,7 +4619,8 @@ class YumBase(depsolve.Depsolve):
>  
> 
>                      if not rc:
> -                        raise Errors.YumBaseError, _("Not installing key for 
> repo %s") % repo
> +                        user_cb_fail = True
> +                        continue
>                  
>                  # Import the key
>                  result = misc.import_key_to_pubring(info['raw_key'], 
> info['hexkeyid'], gpgdir=destdir)
> @@ -4629,7 +4639,10 @@ class YumBase(depsolve.Depsolve):
>                          except (IOError, OSError):
>                              # maybe a warning - but in general this is 
> not-critical, just annoying to the user
>                              pass
> -                        
> +
> +        if not key_installed and user_cb_fail:
> +            raise Errors.YumBaseError, _("Didn't install any keys for repo 
> %s") % repo
> +
>          if not key_installed:
>              raise Errors.YumBaseError, \
>                    _('The GPG keys listed for the "%s" repository are ' \


lovely.

ACK
-sv


_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to