@@ -932,69 +932,70 @@ def test_replica_number(self):
932
932
933
933
def test_repave_replicas (self ):
934
934
# Can't do one step open/create with older servers
935
- if self .sess .server_version <= (4 , 1 , 4 ):
935
+ server_vsn = self .sess .server_version
936
+ if server_vsn <= (4 , 1 , 4 ):
936
937
self .skipTest ('For iRODS 4.1.5 and newer' )
938
+ try :
939
+ number_of_replicas = 7
940
+ session = self .sess
941
+ zone = session .zone
942
+ username = session .username
943
+ test_dir = '/tmp'
944
+ filename = 'repave_replica_test_file.txt'
945
+ test_file = os .path .join (test_dir , filename )
946
+ obj_path = '/{zone}/home/{username}/{filename}' .format (** locals ())
947
+ ufs_resources = []
948
+
949
+ # make test file
950
+ obj_content = u'foobar'
951
+ checksum = base64 .b64encode (hashlib .sha256 (obj_content .encode ('utf-8' )).digest ()).decode ()
952
+ with open (test_file , 'w' ) as f :
953
+ f .write (obj_content )
954
+
955
+ # put test file onto default resource
956
+ options = {kw .REG_CHKSUM_KW : '' }
957
+ session .data_objects .put (test_file , obj_path , ** options )
958
+
959
+ # make ufs resources and replicate object
960
+ for i in range (number_of_replicas ):
961
+ resource_name = unique_name (my_function_name (),i )
962
+ resource_type = 'unixfilesystem'
963
+ resource_host = session .host
964
+ resource_path = '/tmp/{}' .format (resource_name )
965
+ ufs_resources .append (session .resources .create (
966
+ resource_name , resource_type , resource_host , resource_path ))
937
967
938
- number_of_replicas = 7
939
- session = self .sess
940
- zone = session .zone
941
- username = session .username
942
- test_dir = '/tmp'
943
- filename = 'repave_replica_test_file.txt'
944
- test_file = os .path .join (test_dir , filename )
945
- obj_path = '/{zone}/home/{username}/{filename}' .format (** locals ())
946
-
947
- # make test file
948
- obj_content = u'foobar'
949
- checksum = base64 .b64encode (hashlib .sha256 (obj_content .encode ('utf-8' )).digest ()).decode ()
950
- with open (test_file , 'w' ) as f :
951
- f .write (obj_content )
952
-
953
- # put test file onto default resource
954
- options = {kw .REG_CHKSUM_KW : '' }
955
- session .data_objects .put (test_file , obj_path , ** options )
956
-
957
- # make ufs resources and replicate object
958
- ufs_resources = []
959
- for i in range (number_of_replicas ):
960
- resource_name = unique_name (my_function_name (),i )
961
- resource_type = 'unixfilesystem'
962
- resource_host = session .host
963
- resource_path = '/tmp/{}' .format (resource_name )
964
- ufs_resources .append (session .resources .create (
965
- resource_name , resource_type , resource_host , resource_path ))
966
-
967
- session .data_objects .replicate (obj_path , resource = resource_name )
968
-
969
- # refresh object
970
- obj = session .data_objects .get (obj_path )
968
+ session .data_objects .replicate (obj_path , resource = resource_name )
971
969
972
- # verify each replica's checksum
973
- for replica in obj .replicas :
974
- self .assertEqual (replica .checksum , 'sha2:{}' .format (checksum ))
970
+ # refresh object
971
+ obj = session .data_objects .get (obj_path )
975
972
976
- # now repave test file
977
- obj_content = u'bar'
978
- checksum = base64 .b64encode (hashlib .sha256 (obj_content .encode ('utf-8' )).digest ()).decode ()
979
- with open (test_file , 'w' ) as f :
980
- f .write (obj_content )
973
+ # verify each replica's checksum
974
+ for replica in obj .replicas :
975
+ self .assertEqual (replica .checksum , 'sha2:{}' .format (checksum ))
981
976
982
- # update all replicas
983
- options = {kw .REG_CHKSUM_KW : '' , kw .ALL_KW : '' }
984
- session .data_objects .put (test_file , obj_path , ** options )
985
- obj = session .data_objects .get (obj_path )
977
+ # now repave test file
978
+ obj_content = u'bar'
979
+ checksum = base64 .b64encode (hashlib .sha256 (obj_content .encode ('utf-8' )).digest ()).decode ()
980
+ with open (test_file , 'w' ) as f :
981
+ f .write (obj_content )
986
982
987
- # verify each replica's checksum
988
- for replica in obj . replicas :
989
- self . assertEqual ( replica . checksum , 'sha2:{}' . format ( checksum ) )
983
+ options = { kw . REG_CHKSUM_KW : '' , kw . ALL_KW : '' }
984
+ session . data_objects . put ( test_file , obj_path , ** options )
985
+ obj = session . data_objects . get ( obj_path )
990
986
991
- # remove object
992
- obj .unlink (force = True )
993
-
994
- # remove ufs resources
995
- for resource in ufs_resources :
996
- resource .remove ()
987
+ # verify each replica's checksum
988
+ for replica in obj .replicas :
989
+ self .assertEqual (replica .checksum , 'sha2:{}' .format (checksum ))
997
990
991
+ finally :
992
+ # remove data object
993
+ data = self .sess .data_objects
994
+ if data .exists (obj_path ):
995
+ data .unlink (obj_path ,force = True )
996
+ # remove ufs resources
997
+ for resource in ufs_resources :
998
+ resource .remove ()
998
999
999
1000
def test_get_replica_size (self ):
1000
1001
session = self .sess
0 commit comments