def test(yaml_file_path): ganesha_test_config = { 'mount_point': 'ganesha-mount', 'rgw_user_info': yaml_file_path } log.info('ganesha_test_config :%s\n' % ganesha_test_config) log.info('initiating nfs ganesha') add_io_info = AddIOInfo() add_io_info.initialize() nfs_ganesha = PrepNFSGanesha( mount_point=ganesha_test_config['mount_point'], yaml_fname=ganesha_test_config['rgw_user_info']) nfs_ganesha.initialize() config = Config() config.bucket_count = 5 config.objects_count = 2 config.objects_size_range = {'min': 10, 'max': 50} log.info('begin IO') rgw_user = nfs_ganesha.read_config() rgw = ObjectOps(config, rgw_user) buckets = rgw.create_bucket() rgw.upload(buckets) time.sleep(20) bdir = BaseDir(count=None, json_fname=rgw.json_file_upload, mount_point=ganesha_test_config['mount_point'], auth=rgw.connection) subd = SubdirAndObjects(base_dir_list=None, config=None, json_fname=rgw.json_file_upload, auth=rgw.connection) time.sleep(15) log.info('verification starts') log.info('bucket verification starts') bstatus = bdir.verify_nfs() log.info('bucket verification complete:%s' % bstatus) log.info('key verificaion starts') kstatus = subd.verify_nfs(mount_point=ganesha_test_config['mount_point']) log.info('key verification complete: %s' % kstatus) verification = {'bucket': True, 'key': True} if not bstatus: verification['bucket'] = False else: verification['bucket'] = True for ks in kstatus: if not ks['exists']: verification['key'] = False if not ks['md5_matched']: verification['key'] = False break if not ks['size_matched']: verification['key'] = False break return verification
def test_exec_read(config): """ config.bucket_count = 3 config.objects_count = 3 config.objects_size_range = {'min': 50, 'max': 100} """ add_io_info = AddIOInfo() add_io_info.initialize() grants = {'permission': 'READ', 'user_id': None, 'recursive': True} test_info = AddTestInfo('Test with read permission on buckets') try: # test case starts test_info.started_info() with open('user_details') as fout: all_user_details = simplejson.load(fout) for each_user in all_user_details: add_io_info.add_user_info(**{'user_id': each_user['user_id'], 'access_key': each_user['access_key'], 'secret_key': each_user['secret_key']}) user1 = all_user_details[0] log.info('user1: %s' % user1) user2 = all_user_details[1] log.info('user2: %s' % user2) u1 = ObjectOps(config, user1) u2 = ObjectOps(config, user2) u2_canonical_id = u2.canonical_id log.info('canonical id of u2: %s' % u2_canonical_id) grants['user_id'] = u2_canonical_id u1.grants = None u1.create_bucket() u1.set_bucket_properties() u2.bucket_names = u1.bucket_names u2.buckets_created = u1.buckets_created u2.grants = None u2.set_bucket_properties() # set permissions and read u1.grants = grants u1.set_bucket_properties() u2.bucket_names = u1.bucket_names u2.buckets_created = u1.buckets_created u2.grants = None u2.set_bucket_properties() test_info.success_status('test completed') except AssertionError, e: log.error(e) test_info.failed_status('test failed: %s' % e) sys.exit(1)
def test(yaml_file_path): ganesha_test_config = { 'mount_point': 'ganesha-mount', 'rgw_user_info': yaml_file_path } log.info('ganesha_test_config :%s\n' % ganesha_test_config) add_io_info = AddIOInfo() add_io_info.initialize() log.info('initiating nfs ganesha') nfs_ganesha = PrepNFSGanesha( mount_point=ganesha_test_config['mount_point'], yaml_fname=ganesha_test_config['rgw_user_info']) nfs_ganesha.initialize() config = Config() config.bucket_count = 1 config.objects_count = 2 config.objects_size_range = {'min': 10, 'max': 50} log.info('begin IO') rgw_user = nfs_ganesha.read_config() rgw = ObjectOps(config, rgw_user) buckets = rgw.create_bucket() rgw.upload(buckets) time.sleep(20) bdir = BaseDir(count=None, json_fname=rgw.json_file_upload, mount_point=ganesha_test_config['mount_point'], auth=rgw.connection['conn']) subd = SubdirAndObjects(base_dir_list=None, config=None, json_fname=rgw.json_file_upload, auth=rgw.connection['conn']) ks_op_status = subd.operation_on_s3(op_code='move') time.sleep(300) # wait for 5 mins # after move, verify on nfs for the changes verification = {'delete': True, 'key': True} for status in ks_op_status: if not status['op_code_status']: verification['delete'] = False break if verification['delete']: log.info('verification starts') log.info('key verificaion starts') kstatus = subd.verify_nfs( mount_point=ganesha_test_config['mount_point']) log.info('key verification complete: %s' % kstatus) for ks in kstatus: if ks['exists']: verification['key'] = True else: verification['key'] = False return verification