Re: [PATCH] added rhel4/py2.3 sha support into getfile using same method as copyfile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2011-02-14 at 22:21 -0600, Greg Swift wrote:
> Signed-off-by: Greg Swift <gregswift@xxxxxxxxx>
> ---
>  func/minion/modules/getfile.py   |   17 ++++++++++++++---
>  func/overlord/modules/getfile.py |   22 +++++++++++++++++-----
>  2 files changed, 31 insertions(+), 8 deletions(-)
> 
> diff --git a/func/minion/modules/getfile.py b/func/minion/modules/getfile.py
> index b2f23b1..1b54791 100644
> --- a/func/minion/modules/getfile.py
> +++ b/func/minion/modules/getfile.py
> @@ -15,13 +15,24 @@
>  
>  """Get a file, chunk by chunk. Minion side."""
>  import sys
> -import sha
>  import func_module
>  try:
> +    # py 2.4+
> +    import hashlib
> +except ImportError:
> +    # py 2.3 support for RHEL4
> +    import sha
> +    class hashlib:
> +        @staticmethod
> +        def new(algo):
> +            if algo == 'sha1':
> +                return sha.new()
> +            raise ValueError, "Bad checksum type"
> +try:
>  # py 2.4
>      from base64 import b64encode
>  except ImportError:
> -# py 2.3
> +# py 2.3 for RHEL4
>      from base64 import encodestring as b64encode
>  
> 
> @@ -56,7 +67,7 @@ class GetFile(func_module.FuncModule):
>              return(checksum, '')
>          fic.seek(bufsize*chunknum)
>          chunk = b64encode(fic.read(bufsize))
> -        mysha = sha.new()
> +        mysha = hashlib.new('sha1')
>          mysha.update(chunk)
>          checksum = mysha.hexdigest()
>          fic.close()
> diff --git a/func/overlord/modules/getfile.py b/func/overlord/modules/getfile.py
> index 8c4ffd2..7050c41 100644
> --- a/func/overlord/modules/getfile.py
> +++ b/func/overlord/modules/getfile.py
> @@ -16,12 +16,24 @@
>  """Get a file on the minions, chunk by chunk. Overlord side."""
>  from func.overlord import overlord_module
>  import os
> -import sha
> +
> +try:
> +    # py 2.4+
> +    import hashlib
> +except ImportError:
> +    # py 2.3 support for RHEL4
> +    import sha
> +    class hashlib:
> +        @staticmethod
> +        def new(algo):
> +            if algo == 'sha1':
> +                return sha.new()
> +            raise ValueError, "Bad checksum type"
>  try:
> -    # py 2.4
> +    # py 2.4+
>      from base64 import b64decode
>  except ImportError:
> -    # py 2.3
> +    # py 2.3 support for RHEL4
>      from base64 import decodestring as b64decode
>  
>  class getfile(overlord_module.BaseModule):
> @@ -53,7 +65,7 @@ class getfile(overlord_module.BaseModule):
>              status = 1
>              return status, msg
>  
> -        nullsha = sha.new().hexdigest()
> +        nullsha = hashlib.new('sha1').hexdigest()
>          sourcebasename = os.path.basename(source)
>          excluderrlist = [] 
>  
> @@ -70,7 +82,7 @@ class getfile(overlord_module.BaseModule):
>                      # Probably a REMOTE_ERROR
>                      excluderrlist.append(minion)
>                      continue
> -                mysha = sha.new()
> +                mysha = hashlib.new('sha1')
>                  mysha.update(chunk)
>                  if checksum == -1:
>                      # On this minion there was no file to get


ACK, push it.

thanks
-sv


_______________________________________________
Func-list mailing list
Func-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/func-list


[Index of Archives]     [Fedora Users]     [Linux Networking]     [Fedora Legacy List]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux