@@ -2866,12 +2866,34 @@ def test_subvolume_info(self):
28662866
28672867 self .assertEqual (subvol_info ["earmark" ], earmark )
28682868
2869+ self .assertNotIn ('source' , subvol_info )
2870+
28692871 # remove subvolumes
28702872 self ._fs_cmd ("subvolume" , "rm" , self .volname , subvolume )
28712873
28722874 # verify trash dir is clean
28732875 self ._wait_for_trash_empty ()
28742876
2877+ def test_subvol_src_info_with_custom_group (self ):
2878+ '''
2879+ Test that source info is NOT printed by "subvolume info" command for a
2880+ subvolume that is not created by cloning even when it is located in a
2881+ custom group.
2882+ '''
2883+ subvol_name = self ._gen_subvol_name ()
2884+ group_name = self ._gen_subvol_grp_name ()
2885+
2886+ self .run_ceph_cmd (f'fs subvolumegroup create { self .volname } '
2887+ f'{ group_name } ' )
2888+ self .run_ceph_cmd (f'fs subvolume create { self .volname } { subvol_name } '
2889+ f'{ group_name } ' )
2890+
2891+ subvol_info = self .get_ceph_cmd_stdout (
2892+ f'fs subvolume info { self .volname } { subvol_name } { group_name } ' )
2893+ subvol_info = json .loads (subvol_info )
2894+
2895+ self .assertNotIn ('source' , subvol_info )
2896+
28752897 def test_subvolume_ls (self ):
28762898 # tests the 'fs subvolume ls' command
28772899
@@ -6731,6 +6753,7 @@ def test_clone_subvolume_info(self):
67316753 # remove snapshot
67326754 self ._fs_cmd ("subvolume" , "snapshot" , "rm" , self .volname , subvolume , snapshot )
67336755
6756+ # actual testing begins now...
67346757 subvol_info = json .loads (self ._get_subvolume_info (self .volname , clone ))
67356758 if len (subvol_info ) == 0 :
67366759 raise RuntimeError ("Expected the 'fs subvolume info' command to list metadata of subvolume" )
@@ -6740,13 +6763,48 @@ def test_clone_subvolume_info(self):
67406763 if subvol_info ["type" ] != "clone" :
67416764 raise RuntimeError ("type should be set to clone" )
67426765
6766+ self .assertEqual (subvol_info ['source' ]['volume' ], self .volname )
6767+ self .assertEqual (subvol_info ['source' ]['subvolume' ], subvolume )
6768+ self .assertEqual (subvol_info ['source' ]['snapshot' ], snapshot )
6769+ self .assertEqual (subvol_info ['source' ]['group' ], '_nogroup' )
6770+
67436771 # remove subvolumes
67446772 self ._fs_cmd ("subvolume" , "rm" , self .volname , subvolume )
67456773 self ._fs_cmd ("subvolume" , "rm" , self .volname , clone )
67466774
67476775 # verify trash dir is clean
67486776 self ._wait_for_trash_empty ()
67496777
6778+ def test_clone_src_info_with_custom_group (self ):
6779+ '''
6780+ Test that clone's source subvolume's group is printed properly when
6781+ "subvolume info" command is run for clone.
6782+ '''
6783+ subvol_name = self ._gen_subvol_name ()
6784+ group_name = self ._gen_subvol_grp_name ()
6785+ snap_name = self ._gen_subvol_snap_name ()
6786+ clone_name = self ._gen_subvol_clone_name ()
6787+
6788+ self .run_ceph_cmd (f'fs subvolumegroup create { self .volname } '
6789+ f'{ group_name } --mode=777' )
6790+ self .run_ceph_cmd (f'fs subvolume create { self .volname } { subvol_name } '
6791+ f'{ group_name } --mode=777' )
6792+ self ._do_subvolume_io (subvol_name , group_name , number_of_files = 1 )
6793+ self .run_ceph_cmd (f'fs subvolume snapshot create { self .volname } '
6794+ f'{ subvol_name } { snap_name } { group_name } ' )
6795+ self .run_ceph_cmd (f'fs subvolume snapshot clone { self .volname } '
6796+ f'{ subvol_name } { snap_name } { clone_name } '
6797+ f'--group-name { group_name } ' )
6798+ self ._wait_for_clone_to_complete (clone_name )
6799+
6800+ subvol_info = self .get_ceph_cmd_stdout (
6801+ f'fs subvolume info { self .volname } { clone_name } ' )
6802+ subvol_info = json .loads (subvol_info )
6803+ self .assertEqual (subvol_info ['source' ]['volume' ], self .volname )
6804+ self .assertEqual (subvol_info ['source' ]['subvolume' ], subvol_name )
6805+ self .assertEqual (subvol_info ['source' ]['snapshot' ], snap_name )
6806+ self .assertEqual (subvol_info ['source' ]['group' ], group_name )
6807+
67506808 def test_subvolume_snapshot_info_without_snapshot_clone (self ):
67516809 """
67526810 Verify subvolume snapshot info output without cloning snapshot.
0 commit comments