diff --git a/.gitignore b/.gitignore index 57b5c7ce..5d562c0d 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ thirdparty output .build src/version.cc +.DS_Store diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index 75ce0795..4727d976 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -340,8 +340,8 @@ int bfs_du(bfs_fs_t* fs, const char* path) { int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive) { return fs->bfs_fs->DeleteDirectory(path, recursive); } - -int bfs_change_bfs_fslica_num(bfs_fs_t* fs, const char* path, + +int bfs_change_replica_num(bfs_fs_t* fs, const char* path, const char* bfs_fslica_num) { if (!isdigit(*bfs_fslica_num)) { return -1; @@ -374,5 +374,24 @@ int bfs_location(bfs_fs_t* fs, const char* path) { return 0; } +int bfs_status(bfs_fs_t* fs, char* &status){ + std::string stat_name("StatAll"); + std::string result; + int32_t ret = fs->bfs_fs->SysStat(stat_name, &result); + if(ret !=0){ + return ret; + } + if(result.length()>0){ + if(status != NULL) + delete []status; + status=new char[result.length()+1]; + strcpy(status,result.c_str()); + return 0; + }else{ + return -9; + } + +} + } /* vim: set expandtab ts=4 sw=4 sts=4 tw=100: */ diff --git a/src/sdk/bfs_c.h b/src/sdk/bfs_c.h index 33c54719..ab63a7fc 100644 --- a/src/sdk/bfs_c.h +++ b/src/sdk/bfs_c.h @@ -38,6 +38,7 @@ int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive); int bfs_change_replica_num(bfs_fs_t* fs, const char* path, const char* replica_num); int bfs_chmod(bfs_fs_t* fs, const char* str_mode, const char* path); int bfs_location(bfs_fs_t* fs, const char* path); +int bfs_status(bfs_fs_t* fs, char* &status); #ifdef __cplusplus }/*end extern "C" */ diff --git a/src/sdk/fs_impl.cc b/src/sdk/fs_impl.cc index 473567f6..c000c0d0 100644 --- a/src/sdk/fs_impl.cc +++ b/src/sdk/fs_impl.cc @@ -453,7 +453,7 @@ int32_t FSImpl::Rename(const char* oldpath, const char* newpath) { return OK; } int32_t FSImpl::ChangeReplicaNum(const char* file_name, int32_t replica_num) { - /* + ChangeReplicaNumRequest request; ChangeReplicaNumResponse response; request.set_file_name(file_name); @@ -471,8 +471,8 @@ int32_t FSImpl::ChangeReplicaNum(const char* file_name, int32_t replica_num) { file_name, replica_num, StatusCode_Name(response.status()).c_str()); return GetErrorCode(response.status()); } - */ - return PERMISSION_DENIED; + + return OK; } int32_t FSImpl::Symlink(const char* src, const char* dst)