http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientDatanodeProtocol.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientDatanodeProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientDatanodeProtocol.proto deleted file mode 100644 index e0d1f5f..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientDatanodeProtocol.proto +++ /dev/null @@ -1,247 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * These .proto interfaces are private and stable. - * Please see http://wiki.apache.org/hadoop/Compatibility - * for what changes are allowed for a *stable* .proto interface. - */ - -// This file contains protocol buffers that are used throughout HDFS -- i.e. -// by the client, server, and data transfer protocols. - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "ClientDatanodeProtocolProtos"; -option java_generic_services = true; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "Security.proto"; -import "hdfs.proto"; - -/** - * block - block for which visible length is requested - */ -message GetReplicaVisibleLengthRequestProto { - required ExtendedBlockProto block = 1; -} - -/** - * length - visible length of the block - */ -message GetReplicaVisibleLengthResponseProto { - required uint64 length = 1; -} - -/** - * void request - */ -message RefreshNamenodesRequestProto { -} - -/** - * void response - */ -message RefreshNamenodesResponseProto { -} - -/** - * blockPool - block pool to be deleted - * force - if false, delete the block pool only if it is empty. - * if true, delete the block pool even if it has blocks. - */ -message DeleteBlockPoolRequestProto { - required string blockPool = 1; - required bool force = 2; -} - -/** - * void response - */ -message DeleteBlockPoolResponseProto { -} - -/** - * Gets the file information where block and its metadata is stored - * block - block for which path information is being requested - * token - block token - * - * This message is deprecated in favor of file descriptor passing. - */ -message GetBlockLocalPathInfoRequestProto { - required ExtendedBlockProto block = 1; - required hadoop.common.TokenProto token = 2; -} - -/** - * block - block for which file path information is being returned - * localPath - file path where the block data is stored - * localMetaPath - file path where the block meta data is stored - * - * This message is deprecated in favor of file descriptor passing. - */ -message GetBlockLocalPathInfoResponseProto { - required ExtendedBlockProto block = 1; - required string localPath = 2; - required string localMetaPath = 3; -} - -/** - * Query for the disk locations of a number of blocks on this DN. - * blockPoolId - the pool to query - * blockIds - list of block IDs to query - * tokens - list of access tokens corresponding to list of block IDs - */ -message GetHdfsBlockLocationsRequestProto { - // Removed: HDFS-3969 - // repeated ExtendedBlockProto blocks = 1; - repeated hadoop.common.TokenProto tokens = 2; - - required string blockPoolId = 3; - repeated sfixed64 blockIds = 4 [ packed = true ]; -} - -/** - * volumeIds - id of each volume, potentially multiple bytes - * volumeIndexes - for each block, an index into volumeIds specifying the volume - * on which it is located. If block is not present on any volume, - * index is set to MAX_INT. - */ -message GetHdfsBlockLocationsResponseProto { - repeated bytes volumeIds = 1; - repeated uint32 volumeIndexes = 2 [ packed = true ]; -} - -/** - * forUpgrade - if true, clients are advised to wait for restart and quick - * upgrade restart is instrumented. Otherwise, datanode does - * the regular shutdown. - */ -message ShutdownDatanodeRequestProto { - required bool forUpgrade = 1; -} - -message ShutdownDatanodeResponseProto { -} - -/** - * Ping datanode for liveness and quick info - */ -message GetDatanodeInfoRequestProto { -} - -message GetDatanodeInfoResponseProto { - required DatanodeLocalInfoProto localInfo = 1; -} - -/** Asks DataNode to reload configuration file. */ -message StartReconfigurationRequestProto { -} - -message StartReconfigurationResponseProto { -} - -message TriggerBlockReportRequestProto { - required bool incremental = 1; -} - -message TriggerBlockReportResponseProto { -} - -/** Query the running status of reconfiguration process */ -message GetReconfigurationStatusRequestProto { -} - -message GetReconfigurationStatusConfigChangeProto { - required string name = 1; - required string oldValue = 2; - optional string newValue = 3; - optional string errorMessage = 4; // It is empty if success. -} - -message GetReconfigurationStatusResponseProto { - required int64 startTime = 1; - optional int64 endTime = 2; - repeated GetReconfigurationStatusConfigChangeProto changes = 3; -} - -message ListReconfigurablePropertiesRequestProto { -} - -/** Query the reconfigurable properties on DataNode. */ -message ListReconfigurablePropertiesResponseProto { - repeated string name = 1; -} - -/** - * Protocol used from client to the Datanode. - * See the request and response for details of rpc call. - */ -service ClientDatanodeProtocolService { - /** - * Returns the visible length of the replica - */ - rpc getReplicaVisibleLength(GetReplicaVisibleLengthRequestProto) - returns(GetReplicaVisibleLengthResponseProto); - - /** - * Refresh the list of federated namenodes from updated configuration. - * Adds new namenodes and stops the deleted namenodes. - */ - rpc refreshNamenodes(RefreshNamenodesRequestProto) - returns(RefreshNamenodesResponseProto); - - /** - * Delete the block pool from the datanode. - */ - rpc deleteBlockPool(DeleteBlockPoolRequestProto) - returns(DeleteBlockPoolResponseProto); - - /** - * Retrieves the path names of the block file and metadata file stored on the - * local file system. - */ - rpc getBlockLocalPathInfo(GetBlockLocalPathInfoRequestProto) - returns(GetBlockLocalPathInfoResponseProto); - - /** - * Retrieve additional HDFS-specific metadata about a set of blocks stored - * on the local file system. - */ - rpc getHdfsBlockLocations(GetHdfsBlockLocationsRequestProto) - returns(GetHdfsBlockLocationsResponseProto); - - rpc shutdownDatanode(ShutdownDatanodeRequestProto) - returns(ShutdownDatanodeResponseProto); - - rpc getDatanodeInfo(GetDatanodeInfoRequestProto) - returns(GetDatanodeInfoResponseProto); - - rpc getReconfigurationStatus(GetReconfigurationStatusRequestProto) - returns(GetReconfigurationStatusResponseProto); - - rpc startReconfiguration(StartReconfigurationRequestProto) - returns(StartReconfigurationResponseProto); - - rpc listReconfigurableProperties( - ListReconfigurablePropertiesRequestProto) - returns(ListReconfigurablePropertiesResponseProto); - - rpc triggerBlockReport(TriggerBlockReportRequestProto) - returns(TriggerBlockReportResponseProto); -}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientNamenodeProtocol.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientNamenodeProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientNamenodeProtocol.proto deleted file mode 100644 index b44c556..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/ClientNamenodeProtocol.proto +++ /dev/null @@ -1,863 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * These .proto interfaces are private and stable. - * Please see http://wiki.apache.org/hadoop/Compatibility - * for what changes are allowed for a *stable* .proto interface. - */ - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "ClientNamenodeProtocolProtos"; -option java_generic_services = true; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "Security.proto"; -import "hdfs.proto"; -import "acl.proto"; -import "xattr.proto"; -import "encryption.proto"; -import "inotify.proto"; - -/** - * The ClientNamenodeProtocol Service defines the interface between a client - * (as runnign inside a MR Task) and the Namenode. - * See org.apache.hadoop.hdfs.protocol.ClientProtocol for the javadoc - * for each of the methods. - * The exceptions declared in the above class also apply to this protocol. - * Exceptions are unwrapped and thrown by the PB libraries. - */ - -message GetBlockLocationsRequestProto { - required string src = 1; // file name - required uint64 offset = 2; // range start offset - required uint64 length = 3; // range length -} - -message GetBlockLocationsResponseProto { - optional LocatedBlocksProto locations = 1; -} - -message GetServerDefaultsRequestProto { // No parameters -} - -message GetServerDefaultsResponseProto { - required FsServerDefaultsProto serverDefaults = 1; -} - -enum CreateFlagProto { - CREATE = 0x01; // Create a file - OVERWRITE = 0x02; // Truncate/overwrite a file. Same as POSIX O_TRUNC - APPEND = 0x04; // Append to a file - LAZY_PERSIST = 0x10; // File with reduced durability guarantees. - NEW_BLOCK = 0x20; // Write data to a new block when appending -} - -message CreateRequestProto { - required string src = 1; - required FsPermissionProto masked = 2; - required string clientName = 3; - required uint32 createFlag = 4; // bits set using CreateFlag - required bool createParent = 5; - required uint32 replication = 6; // Short: Only 16 bits used - required uint64 blockSize = 7; - repeated CryptoProtocolVersionProto cryptoProtocolVersion = 8; -} - -message CreateResponseProto { - optional HdfsFileStatusProto fs = 1; -} - -message AppendRequestProto { - required string src = 1; - required string clientName = 2; - optional uint32 flag = 3; // bits set using CreateFlag -} - -message AppendResponseProto { - optional LocatedBlockProto block = 1; - optional HdfsFileStatusProto stat = 2; -} - -message SetReplicationRequestProto { - required string src = 1; - required uint32 replication = 2; // Short: Only 16 bits used -} - -message SetReplicationResponseProto { - required bool result = 1; -} - -message SetStoragePolicyRequestProto { - required string src = 1; - required string policyName = 2; -} - -message SetStoragePolicyResponseProto { // void response -} - -message GetStoragePoliciesRequestProto { // void request -} - -message GetStoragePoliciesResponseProto { - repeated BlockStoragePolicyProto policies = 1; -} - -message SetPermissionRequestProto { - required string src = 1; - required FsPermissionProto permission = 2; -} - -message SetPermissionResponseProto { // void response -} - -message SetOwnerRequestProto { - required string src = 1; - optional string username = 2; - optional string groupname = 3; -} - -message SetOwnerResponseProto { // void response -} - -message AbandonBlockRequestProto { - required ExtendedBlockProto b = 1; - required string src = 2; - required string holder = 3; - optional uint64 fileId = 4 [default = 0]; // default to GRANDFATHER_INODE_ID -} - -message AbandonBlockResponseProto { // void response -} - -message AddBlockRequestProto { - required string src = 1; - required string clientName = 2; - optional ExtendedBlockProto previous = 3; - repeated DatanodeInfoProto excludeNodes = 4; - optional uint64 fileId = 5 [default = 0]; // default as a bogus id - repeated string favoredNodes = 6; //the set of datanodes to use for the block -} - -message AddBlockResponseProto { - required LocatedBlockProto block = 1; -} - -message GetAdditionalDatanodeRequestProto { - required string src = 1; - required ExtendedBlockProto blk = 2; - repeated DatanodeInfoProto existings = 3; - repeated DatanodeInfoProto excludes = 4; - required uint32 numAdditionalNodes = 5; - required string clientName = 6; - repeated string existingStorageUuids = 7; - optional uint64 fileId = 8 [default = 0]; // default to GRANDFATHER_INODE_ID -} - -message GetAdditionalDatanodeResponseProto { - required LocatedBlockProto block = 1; -} - -message CompleteRequestProto { - required string src = 1; - required string clientName = 2; - optional ExtendedBlockProto last = 3; - optional uint64 fileId = 4 [default = 0]; // default to GRANDFATHER_INODE_ID -} - -message CompleteResponseProto { - required bool result = 1; -} - -message ReportBadBlocksRequestProto { - repeated LocatedBlockProto blocks = 1; -} - -message ReportBadBlocksResponseProto { // void response -} - -message ConcatRequestProto { - required string trg = 1; - repeated string srcs = 2; -} - -message ConcatResponseProto { // void response -} - -message TruncateRequestProto { - required string src = 1; - required uint64 newLength = 2; - required string clientName = 3; -} - -message TruncateResponseProto { - required bool result = 1; -} - -message RenameRequestProto { - required string src = 1; - required string dst = 2; -} - -message RenameResponseProto { - required bool result = 1; -} - - -message Rename2RequestProto { - required string src = 1; - required string dst = 2; - required bool overwriteDest = 3; -} - -message Rename2ResponseProto { // void response -} - -message DeleteRequestProto { - required string src = 1; - required bool recursive = 2; -} - -message DeleteResponseProto { - required bool result = 1; -} - -message MkdirsRequestProto { - required string src = 1; - required FsPermissionProto masked = 2; - required bool createParent = 3; -} -message MkdirsResponseProto { - required bool result = 1; -} - -message GetListingRequestProto { - required string src = 1; - required bytes startAfter = 2; - required bool needLocation = 3; -} -message GetListingResponseProto { - optional DirectoryListingProto dirList = 1; -} - -message GetSnapshottableDirListingRequestProto { // no input parameters -} -message GetSnapshottableDirListingResponseProto { - optional SnapshottableDirectoryListingProto snapshottableDirList = 1; -} - -message GetSnapshotDiffReportRequestProto { - required string snapshotRoot = 1; - required string fromSnapshot = 2; - required string toSnapshot = 3; -} -message GetSnapshotDiffReportResponseProto { - required SnapshotDiffReportProto diffReport = 1; -} - -message RenewLeaseRequestProto { - required string clientName = 1; -} - -message RenewLeaseResponseProto { //void response -} - -message RecoverLeaseRequestProto { - required string src = 1; - required string clientName = 2; -} -message RecoverLeaseResponseProto { - required bool result = 1; -} - -message GetFsStatusRequestProto { // no input paramters -} - -message GetFsStatsResponseProto { - required uint64 capacity = 1; - required uint64 used = 2; - required uint64 remaining = 3; - required uint64 under_replicated = 4; - required uint64 corrupt_blocks = 5; - required uint64 missing_blocks = 6; - optional uint64 missing_repl_one_blocks = 7; -} - -enum DatanodeReportTypeProto { // type of the datanode report - ALL = 1; - LIVE = 2; - DEAD = 3; - DECOMMISSIONING = 4; -} - -message GetDatanodeReportRequestProto { - required DatanodeReportTypeProto type = 1; -} - -message GetDatanodeReportResponseProto { - repeated DatanodeInfoProto di = 1; -} - -message GetDatanodeStorageReportRequestProto { - required DatanodeReportTypeProto type = 1; -} - -message DatanodeStorageReportProto { - required DatanodeInfoProto datanodeInfo = 1; - repeated StorageReportProto storageReports = 2; -} - -message GetDatanodeStorageReportResponseProto { - repeated DatanodeStorageReportProto datanodeStorageReports = 1; -} - -message GetPreferredBlockSizeRequestProto { - required string filename = 1; -} - -message GetPreferredBlockSizeResponseProto { - required uint64 bsize = 1; -} - -enum SafeModeActionProto { - SAFEMODE_LEAVE = 1; - SAFEMODE_ENTER = 2; - SAFEMODE_GET = 3; -} - -message SetSafeModeRequestProto { - required SafeModeActionProto action = 1; - optional bool checked = 2 [default = false]; -} - -message SetSafeModeResponseProto { - required bool result = 1; -} - -message SaveNamespaceRequestProto { - optional uint64 timeWindow = 1 [default = 0]; - optional uint64 txGap = 2 [default = 0]; -} - -message SaveNamespaceResponseProto { // void response - optional bool saved = 1 [default = true]; -} - -message RollEditsRequestProto { // no parameters -} - -message RollEditsResponseProto { // response - required uint64 newSegmentTxId = 1; -} - -message RestoreFailedStorageRequestProto { - required string arg = 1; -} - -message RestoreFailedStorageResponseProto { - required bool result = 1; -} - -message RefreshNodesRequestProto { // no parameters -} - -message RefreshNodesResponseProto { // void response -} - -message FinalizeUpgradeRequestProto { // no parameters -} - -message FinalizeUpgradeResponseProto { // void response -} - -enum RollingUpgradeActionProto { - QUERY = 1; - START = 2; - FINALIZE = 3; -} - -message RollingUpgradeRequestProto { - required RollingUpgradeActionProto action = 1; -} - -message RollingUpgradeInfoProto { - required RollingUpgradeStatusProto status = 1; - required uint64 startTime = 2; - required uint64 finalizeTime = 3; - required bool createdRollbackImages = 4; -} - -message RollingUpgradeResponseProto { - optional RollingUpgradeInfoProto rollingUpgradeInfo= 1; -} - -message ListCorruptFileBlocksRequestProto { - required string path = 1; - optional string cookie = 2; -} - -message ListCorruptFileBlocksResponseProto { - required CorruptFileBlocksProto corrupt = 1; -} - -message MetaSaveRequestProto { - required string filename = 1; -} - -message MetaSaveResponseProto { // void response -} - -message GetFileInfoRequestProto { - required string src = 1; -} - -message GetFileInfoResponseProto { - optional HdfsFileStatusProto fs = 1; -} - -message IsFileClosedRequestProto { - required string src = 1; -} - -message IsFileClosedResponseProto { - required bool result = 1; -} - -message CacheDirectiveInfoProto { - optional int64 id = 1; - optional string path = 2; - optional uint32 replication = 3; - optional string pool = 4; - optional CacheDirectiveInfoExpirationProto expiration = 5; -} - -message CacheDirectiveInfoExpirationProto { - required int64 millis = 1; - required bool isRelative = 2; -} - -message CacheDirectiveStatsProto { - required int64 bytesNeeded = 1; - required int64 bytesCached = 2; - required int64 filesNeeded = 3; - required int64 filesCached = 4; - required bool hasExpired = 5; -} - -enum CacheFlagProto { - FORCE = 0x01; // Ignore pool resource limits -} - -message AddCacheDirectiveRequestProto { - required CacheDirectiveInfoProto info = 1; - optional uint32 cacheFlags = 2; // bits set using CacheFlag -} - -message AddCacheDirectiveResponseProto { - required int64 id = 1; -} - -message ModifyCacheDirectiveRequestProto { - required CacheDirectiveInfoProto info = 1; - optional uint32 cacheFlags = 2; // bits set using CacheFlag -} - -message ModifyCacheDirectiveResponseProto { -} - -message RemoveCacheDirectiveRequestProto { - required int64 id = 1; -} - -message RemoveCacheDirectiveResponseProto { -} - -message ListCacheDirectivesRequestProto { - required int64 prevId = 1; - required CacheDirectiveInfoProto filter = 2; -} - -message CacheDirectiveEntryProto { - required CacheDirectiveInfoProto info = 1; - required CacheDirectiveStatsProto stats = 2; -} - -message ListCacheDirectivesResponseProto { - repeated CacheDirectiveEntryProto elements = 1; - required bool hasMore = 2; -} - -message CachePoolInfoProto { - optional string poolName = 1; - optional string ownerName = 2; - optional string groupName = 3; - optional int32 mode = 4; - optional int64 limit = 5; - optional int64 maxRelativeExpiry = 6; -} - -message CachePoolStatsProto { - required int64 bytesNeeded = 1; - required int64 bytesCached = 2; - required int64 bytesOverlimit = 3; - required int64 filesNeeded = 4; - required int64 filesCached = 5; -} - -message AddCachePoolRequestProto { - required CachePoolInfoProto info = 1; -} - -message AddCachePoolResponseProto { // void response -} - -message ModifyCachePoolRequestProto { - required CachePoolInfoProto info = 1; -} - -message ModifyCachePoolResponseProto { // void response -} - -message RemoveCachePoolRequestProto { - required string poolName = 1; -} - -message RemoveCachePoolResponseProto { // void response -} - -message ListCachePoolsRequestProto { - required string prevPoolName = 1; -} - -message ListCachePoolsResponseProto { - repeated CachePoolEntryProto entries = 1; - required bool hasMore = 2; -} - -message CachePoolEntryProto { - required CachePoolInfoProto info = 1; - required CachePoolStatsProto stats = 2; -} - -message GetFileLinkInfoRequestProto { - required string src = 1; -} - -message GetFileLinkInfoResponseProto { - optional HdfsFileStatusProto fs = 1; -} - -message GetContentSummaryRequestProto { - required string path = 1; -} - -message GetContentSummaryResponseProto { - required ContentSummaryProto summary = 1; -} - -message SetQuotaRequestProto { - required string path = 1; - required uint64 namespaceQuota = 2; - required uint64 storagespaceQuota = 3; - optional StorageTypeProto storageType = 4; -} - -message SetQuotaResponseProto { // void response -} - -message FsyncRequestProto { - required string src = 1; - required string client = 2; - optional sint64 lastBlockLength = 3 [default = -1]; - optional uint64 fileId = 4 [default = 0]; // default to GRANDFATHER_INODE_ID -} - -message FsyncResponseProto { // void response -} - -message SetTimesRequestProto { - required string src = 1; - required uint64 mtime = 2; - required uint64 atime = 3; -} - -message SetTimesResponseProto { // void response -} - -message CreateSymlinkRequestProto { - required string target = 1; - required string link = 2; - required FsPermissionProto dirPerm = 3; - required bool createParent = 4; -} - -message CreateSymlinkResponseProto { // void response -} - -message GetLinkTargetRequestProto { - required string path = 1; -} -message GetLinkTargetResponseProto { - optional string targetPath = 1; -} - -message UpdateBlockForPipelineRequestProto { - required ExtendedBlockProto block = 1; - required string clientName = 2; -} - -message UpdateBlockForPipelineResponseProto { - required LocatedBlockProto block = 1; -} - -message UpdatePipelineRequestProto { - required string clientName = 1; - required ExtendedBlockProto oldBlock = 2; - required ExtendedBlockProto newBlock = 3; - repeated DatanodeIDProto newNodes = 4; - repeated string storageIDs = 5; -} - -message UpdatePipelineResponseProto { // void response -} - -message SetBalancerBandwidthRequestProto { - required int64 bandwidth = 1; -} - -message SetBalancerBandwidthResponseProto { // void response -} - -message GetDataEncryptionKeyRequestProto { // no parameters -} - -message GetDataEncryptionKeyResponseProto { - optional DataEncryptionKeyProto dataEncryptionKey = 1; -} - -message CreateSnapshotRequestProto { - required string snapshotRoot = 1; - optional string snapshotName = 2; -} - -message CreateSnapshotResponseProto { - required string snapshotPath = 1; -} - -message RenameSnapshotRequestProto { - required string snapshotRoot = 1; - required string snapshotOldName = 2; - required string snapshotNewName = 3; -} - -message RenameSnapshotResponseProto { // void response -} - -message AllowSnapshotRequestProto { - required string snapshotRoot = 1; -} - -message AllowSnapshotResponseProto { -} - -message DisallowSnapshotRequestProto { - required string snapshotRoot = 1; -} - -message DisallowSnapshotResponseProto { -} - -message DeleteSnapshotRequestProto { - required string snapshotRoot = 1; - required string snapshotName = 2; -} - -message DeleteSnapshotResponseProto { // void response -} - -message CheckAccessRequestProto { - required string path = 1; - required AclEntryProto.FsActionProto mode = 2; -} - -message CheckAccessResponseProto { // void response -} - -message GetCurrentEditLogTxidRequestProto { -} - -message GetCurrentEditLogTxidResponseProto { - required int64 txid = 1; -} - -message GetEditsFromTxidRequestProto { - required int64 txid = 1; -} - -message GetEditsFromTxidResponseProto { - required EventsListProto eventsList = 1; -} - -service ClientNamenodeProtocol { - rpc getBlockLocations(GetBlockLocationsRequestProto) - returns(GetBlockLocationsResponseProto); - rpc getServerDefaults(GetServerDefaultsRequestProto) - returns(GetServerDefaultsResponseProto); - rpc create(CreateRequestProto)returns(CreateResponseProto); - rpc append(AppendRequestProto) returns(AppendResponseProto); - rpc setReplication(SetReplicationRequestProto) - returns(SetReplicationResponseProto); - rpc setStoragePolicy(SetStoragePolicyRequestProto) - returns(SetStoragePolicyResponseProto); - rpc getStoragePolicies(GetStoragePoliciesRequestProto) - returns(GetStoragePoliciesResponseProto); - rpc setPermission(SetPermissionRequestProto) - returns(SetPermissionResponseProto); - rpc setOwner(SetOwnerRequestProto) returns(SetOwnerResponseProto); - rpc abandonBlock(AbandonBlockRequestProto) returns(AbandonBlockResponseProto); - rpc addBlock(AddBlockRequestProto) returns(AddBlockResponseProto); - rpc getAdditionalDatanode(GetAdditionalDatanodeRequestProto) - returns(GetAdditionalDatanodeResponseProto); - rpc complete(CompleteRequestProto) returns(CompleteResponseProto); - rpc reportBadBlocks(ReportBadBlocksRequestProto) - returns(ReportBadBlocksResponseProto); - rpc concat(ConcatRequestProto) returns(ConcatResponseProto); - rpc truncate(TruncateRequestProto) returns(TruncateResponseProto); - rpc rename(RenameRequestProto) returns(RenameResponseProto); - rpc rename2(Rename2RequestProto) returns(Rename2ResponseProto); - rpc delete(DeleteRequestProto) returns(DeleteResponseProto); - rpc mkdirs(MkdirsRequestProto) returns(MkdirsResponseProto); - rpc getListing(GetListingRequestProto) returns(GetListingResponseProto); - rpc renewLease(RenewLeaseRequestProto) returns(RenewLeaseResponseProto); - rpc recoverLease(RecoverLeaseRequestProto) - returns(RecoverLeaseResponseProto); - rpc getFsStats(GetFsStatusRequestProto) returns(GetFsStatsResponseProto); - rpc getDatanodeReport(GetDatanodeReportRequestProto) - returns(GetDatanodeReportResponseProto); - rpc getDatanodeStorageReport(GetDatanodeStorageReportRequestProto) - returns(GetDatanodeStorageReportResponseProto); - rpc getPreferredBlockSize(GetPreferredBlockSizeRequestProto) - returns(GetPreferredBlockSizeResponseProto); - rpc setSafeMode(SetSafeModeRequestProto) - returns(SetSafeModeResponseProto); - rpc saveNamespace(SaveNamespaceRequestProto) - returns(SaveNamespaceResponseProto); - rpc rollEdits(RollEditsRequestProto) - returns(RollEditsResponseProto); - rpc restoreFailedStorage(RestoreFailedStorageRequestProto) - returns(RestoreFailedStorageResponseProto); - rpc refreshNodes(RefreshNodesRequestProto) returns(RefreshNodesResponseProto); - rpc finalizeUpgrade(FinalizeUpgradeRequestProto) - returns(FinalizeUpgradeResponseProto); - rpc rollingUpgrade(RollingUpgradeRequestProto) - returns(RollingUpgradeResponseProto); - rpc listCorruptFileBlocks(ListCorruptFileBlocksRequestProto) - returns(ListCorruptFileBlocksResponseProto); - rpc metaSave(MetaSaveRequestProto) returns(MetaSaveResponseProto); - rpc getFileInfo(GetFileInfoRequestProto) returns(GetFileInfoResponseProto); - rpc addCacheDirective(AddCacheDirectiveRequestProto) - returns (AddCacheDirectiveResponseProto); - rpc modifyCacheDirective(ModifyCacheDirectiveRequestProto) - returns (ModifyCacheDirectiveResponseProto); - rpc removeCacheDirective(RemoveCacheDirectiveRequestProto) - returns (RemoveCacheDirectiveResponseProto); - rpc listCacheDirectives(ListCacheDirectivesRequestProto) - returns (ListCacheDirectivesResponseProto); - rpc addCachePool(AddCachePoolRequestProto) - returns(AddCachePoolResponseProto); - rpc modifyCachePool(ModifyCachePoolRequestProto) - returns(ModifyCachePoolResponseProto); - rpc removeCachePool(RemoveCachePoolRequestProto) - returns(RemoveCachePoolResponseProto); - rpc listCachePools(ListCachePoolsRequestProto) - returns(ListCachePoolsResponseProto); - rpc getFileLinkInfo(GetFileLinkInfoRequestProto) - returns(GetFileLinkInfoResponseProto); - rpc getContentSummary(GetContentSummaryRequestProto) - returns(GetContentSummaryResponseProto); - rpc setQuota(SetQuotaRequestProto) returns(SetQuotaResponseProto); - rpc fsync(FsyncRequestProto) returns(FsyncResponseProto); - rpc setTimes(SetTimesRequestProto) returns(SetTimesResponseProto); - rpc createSymlink(CreateSymlinkRequestProto) - returns(CreateSymlinkResponseProto); - rpc getLinkTarget(GetLinkTargetRequestProto) - returns(GetLinkTargetResponseProto); - rpc updateBlockForPipeline(UpdateBlockForPipelineRequestProto) - returns(UpdateBlockForPipelineResponseProto); - rpc updatePipeline(UpdatePipelineRequestProto) - returns(UpdatePipelineResponseProto); - rpc getDelegationToken(hadoop.common.GetDelegationTokenRequestProto) - returns(hadoop.common.GetDelegationTokenResponseProto); - rpc renewDelegationToken(hadoop.common.RenewDelegationTokenRequestProto) - returns(hadoop.common.RenewDelegationTokenResponseProto); - rpc cancelDelegationToken(hadoop.common.CancelDelegationTokenRequestProto) - returns(hadoop.common.CancelDelegationTokenResponseProto); - rpc setBalancerBandwidth(SetBalancerBandwidthRequestProto) - returns(SetBalancerBandwidthResponseProto); - rpc getDataEncryptionKey(GetDataEncryptionKeyRequestProto) - returns(GetDataEncryptionKeyResponseProto); - rpc createSnapshot(CreateSnapshotRequestProto) - returns(CreateSnapshotResponseProto); - rpc renameSnapshot(RenameSnapshotRequestProto) - returns(RenameSnapshotResponseProto); - rpc allowSnapshot(AllowSnapshotRequestProto) - returns(AllowSnapshotResponseProto); - rpc disallowSnapshot(DisallowSnapshotRequestProto) - returns(DisallowSnapshotResponseProto); - rpc getSnapshottableDirListing(GetSnapshottableDirListingRequestProto) - returns(GetSnapshottableDirListingResponseProto); - rpc deleteSnapshot(DeleteSnapshotRequestProto) - returns(DeleteSnapshotResponseProto); - rpc getSnapshotDiffReport(GetSnapshotDiffReportRequestProto) - returns(GetSnapshotDiffReportResponseProto); - rpc isFileClosed(IsFileClosedRequestProto) - returns(IsFileClosedResponseProto); - rpc modifyAclEntries(ModifyAclEntriesRequestProto) - returns(ModifyAclEntriesResponseProto); - rpc removeAclEntries(RemoveAclEntriesRequestProto) - returns(RemoveAclEntriesResponseProto); - rpc removeDefaultAcl(RemoveDefaultAclRequestProto) - returns(RemoveDefaultAclResponseProto); - rpc removeAcl(RemoveAclRequestProto) - returns(RemoveAclResponseProto); - rpc setAcl(SetAclRequestProto) - returns(SetAclResponseProto); - rpc getAclStatus(GetAclStatusRequestProto) - returns(GetAclStatusResponseProto); - rpc setXAttr(SetXAttrRequestProto) - returns(SetXAttrResponseProto); - rpc getXAttrs(GetXAttrsRequestProto) - returns(GetXAttrsResponseProto); - rpc listXAttrs(ListXAttrsRequestProto) - returns(ListXAttrsResponseProto); - rpc removeXAttr(RemoveXAttrRequestProto) - returns(RemoveXAttrResponseProto); - rpc checkAccess(CheckAccessRequestProto) - returns(CheckAccessResponseProto); - rpc createEncryptionZone(CreateEncryptionZoneRequestProto) - returns(CreateEncryptionZoneResponseProto); - rpc listEncryptionZones(ListEncryptionZonesRequestProto) - returns(ListEncryptionZonesResponseProto); - rpc getEZForPath(GetEZForPathRequestProto) - returns(GetEZForPathResponseProto); - rpc getCurrentEditLogTxid(GetCurrentEditLogTxidRequestProto) - returns(GetCurrentEditLogTxidResponseProto); - rpc getEditsFromTxid(GetEditsFromTxidRequestProto) - returns(GetEditsFromTxidResponseProto); -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/acl.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/acl.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/acl.proto deleted file mode 100644 index 57cc855..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/acl.proto +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "AclProtos"; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "hdfs.proto"; - -message AclEntryProto { - enum AclEntryScopeProto { - ACCESS = 0x0; - DEFAULT = 0x1; - } - - enum AclEntryTypeProto { - USER = 0x0; - GROUP = 0x1; - MASK = 0x2; - OTHER = 0x3; - } - - enum FsActionProto { - NONE = 0x0; - EXECUTE = 0x1; - WRITE = 0x2; - WRITE_EXECUTE = 0x3; - READ = 0x4; - READ_EXECUTE = 0x5; - READ_WRITE = 0x6; - PERM_ALL = 0x7; - } - - required AclEntryTypeProto type = 1; - required AclEntryScopeProto scope = 2; - required FsActionProto permissions = 3; - optional string name = 4; -} - -message AclStatusProto { - required string owner = 1; - required string group = 2; - required bool sticky = 3; - repeated AclEntryProto entries = 4; - optional FsPermissionProto permission = 5; -} - -message AclEditLogProto { - required string src = 1; - repeated AclEntryProto entries = 2; -} - -message ModifyAclEntriesRequestProto { - required string src = 1; - repeated AclEntryProto aclSpec = 2; -} - -message ModifyAclEntriesResponseProto { -} - -message RemoveAclRequestProto { - required string src = 1; -} - -message RemoveAclResponseProto { -} - -message RemoveAclEntriesRequestProto { - required string src = 1; - repeated AclEntryProto aclSpec = 2; -} - -message RemoveAclEntriesResponseProto { -} - -message RemoveDefaultAclRequestProto { - required string src = 1; -} - -message RemoveDefaultAclResponseProto { -} - -message SetAclRequestProto { - required string src = 1; - repeated AclEntryProto aclSpec = 2; -} - -message SetAclResponseProto { -} - -message GetAclStatusRequestProto { - required string src = 1; -} - -message GetAclStatusResponseProto { - required AclStatusProto result = 1; -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/datatransfer.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/datatransfer.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/datatransfer.proto deleted file mode 100644 index 5071d15..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/datatransfer.proto +++ /dev/null @@ -1,304 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * These .proto interfaces are private and stable. - * Please see http://wiki.apache.org/hadoop/Compatibility - * for what changes are allowed for a *stable* .proto interface. - */ - -// This file contains protocol buffers that are used to transfer data -// to and from the datanode, as well as between datanodes. - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "DataTransferProtos"; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "Security.proto"; -import "hdfs.proto"; - -message DataTransferEncryptorMessageProto { - enum DataTransferEncryptorStatus { - SUCCESS = 0; - ERROR_UNKNOWN_KEY = 1; - ERROR = 2; - } - required DataTransferEncryptorStatus status = 1; - optional bytes payload = 2; - optional string message = 3; - repeated CipherOptionProto cipherOption = 4; -} - -message BaseHeaderProto { - required ExtendedBlockProto block = 1; - optional hadoop.common.TokenProto token = 2; - optional DataTransferTraceInfoProto traceInfo = 3; -} - -message DataTransferTraceInfoProto { - required uint64 traceId = 1; - required uint64 parentId = 2; -} - -message ClientOperationHeaderProto { - required BaseHeaderProto baseHeader = 1; - required string clientName = 2; -} - -message CachingStrategyProto { - optional bool dropBehind = 1; - optional int64 readahead = 2; -} - -message OpReadBlockProto { - required ClientOperationHeaderProto header = 1; - required uint64 offset = 2; - required uint64 len = 3; - optional bool sendChecksums = 4 [default = true]; - optional CachingStrategyProto cachingStrategy = 5; -} - - -message ChecksumProto { - required ChecksumTypeProto type = 1; - required uint32 bytesPerChecksum = 2; -} - -message OpWriteBlockProto { - required ClientOperationHeaderProto header = 1; - repeated DatanodeInfoProto targets = 2; - optional DatanodeInfoProto source = 3; - enum BlockConstructionStage { - PIPELINE_SETUP_APPEND = 0; - // pipeline set up for failed PIPELINE_SETUP_APPEND recovery - PIPELINE_SETUP_APPEND_RECOVERY = 1; - // data streaming - DATA_STREAMING = 2; - // pipeline setup for failed data streaming recovery - PIPELINE_SETUP_STREAMING_RECOVERY = 3; - // close the block and pipeline - PIPELINE_CLOSE = 4; - // Recover a failed PIPELINE_CLOSE - PIPELINE_CLOSE_RECOVERY = 5; - // pipeline set up for block creation - PIPELINE_SETUP_CREATE = 6; - // transfer RBW for adding datanodes - TRANSFER_RBW = 7; - // transfer Finalized for adding datanodes - TRANSFER_FINALIZED = 8; - } - required BlockConstructionStage stage = 4; - required uint32 pipelineSize = 5; - required uint64 minBytesRcvd = 6; - required uint64 maxBytesRcvd = 7; - required uint64 latestGenerationStamp = 8; - - /** - * The requested checksum mechanism for this block write. - */ - required ChecksumProto requestedChecksum = 9; - optional CachingStrategyProto cachingStrategy = 10; - optional StorageTypeProto storageType = 11 [default = DISK]; - repeated StorageTypeProto targetStorageTypes = 12; - - /** - * Hint to the DataNode that the block can be allocated on transient - * storage i.e. memory and written to disk lazily. The DataNode is free - * to ignore this hint. - */ - optional bool allowLazyPersist = 13 [default = false]; - //whether to pin the block, so Balancer won't move it. - optional bool pinning = 14 [default = false]; - repeated bool targetPinnings = 15; -} - -message OpTransferBlockProto { - required ClientOperationHeaderProto header = 1; - repeated DatanodeInfoProto targets = 2; - repeated StorageTypeProto targetStorageTypes = 3; -} - -message OpReplaceBlockProto { - required BaseHeaderProto header = 1; - required string delHint = 2; - required DatanodeInfoProto source = 3; - optional StorageTypeProto storageType = 4 [default = DISK]; -} - -message OpCopyBlockProto { - required BaseHeaderProto header = 1; -} - -message OpBlockChecksumProto { - required BaseHeaderProto header = 1; -} - -/** - * An ID uniquely identifying a shared memory segment. - */ -message ShortCircuitShmIdProto { - required int64 hi = 1; - required int64 lo = 2; -} - -/** - * An ID uniquely identifying a slot within a shared memory segment. - */ -message ShortCircuitShmSlotProto { - required ShortCircuitShmIdProto shmId = 1; - required int32 slotIdx = 2; -} - -message OpRequestShortCircuitAccessProto { - required BaseHeaderProto header = 1; - - /** In order to get short-circuit access to block data, clients must set this - * to the highest version of the block data that they can understand. - * Currently 1 is the only version, but more versions may exist in the future - * if the on-disk format changes. - */ - required uint32 maxVersion = 2; - - /** - * The shared memory slot to use, if we are using one. - */ - optional ShortCircuitShmSlotProto slotId = 3; - - /** - * True if the client supports verifying that the file descriptor has been - * sent successfully. - */ - optional bool supportsReceiptVerification = 4 [default = false]; -} - -message ReleaseShortCircuitAccessRequestProto { - required ShortCircuitShmSlotProto slotId = 1; - optional DataTransferTraceInfoProto traceInfo = 2; -} - -message ReleaseShortCircuitAccessResponseProto { - required Status status = 1; - optional string error = 2; -} - -message ShortCircuitShmRequestProto { - // The name of the client requesting the shared memory segment. This is - // purely for logging / debugging purposes. - required string clientName = 1; - optional DataTransferTraceInfoProto traceInfo = 2; -} - -message ShortCircuitShmResponseProto { - required Status status = 1; - optional string error = 2; - optional ShortCircuitShmIdProto id = 3; -} - -message PacketHeaderProto { - // All fields must be fixed-length! - required sfixed64 offsetInBlock = 1; - required sfixed64 seqno = 2; - required bool lastPacketInBlock = 3; - required sfixed32 dataLen = 4; - optional bool syncBlock = 5 [default = false]; -} - -// Status is a 4-bit enum -enum Status { - SUCCESS = 0; - ERROR = 1; - ERROR_CHECKSUM = 2; - ERROR_INVALID = 3; - ERROR_EXISTS = 4; - ERROR_ACCESS_TOKEN = 5; - CHECKSUM_OK = 6; - ERROR_UNSUPPORTED = 7; - OOB_RESTART = 8; // Quick restart - OOB_RESERVED1 = 9; // Reserved - OOB_RESERVED2 = 10; // Reserved - OOB_RESERVED3 = 11; // Reserved - IN_PROGRESS = 12; -} - -enum ShortCircuitFdResponse { - DO_NOT_USE_RECEIPT_VERIFICATION = 0; - USE_RECEIPT_VERIFICATION = 1; -} - -message PipelineAckProto { - required sint64 seqno = 1; - repeated Status reply = 2; - optional uint64 downstreamAckTimeNanos = 3 [default = 0]; - repeated uint32 flag = 4 [packed=true]; -} - -/** - * Sent as part of the BlockOpResponseProto - * for READ_BLOCK and COPY_BLOCK operations. - */ -message ReadOpChecksumInfoProto { - required ChecksumProto checksum = 1; - - /** - * The offset into the block at which the first packet - * will start. This is necessary since reads will align - * backwards to a checksum chunk boundary. - */ - required uint64 chunkOffset = 2; -} - -message BlockOpResponseProto { - required Status status = 1; - - optional string firstBadLink = 2; - optional OpBlockChecksumResponseProto checksumResponse = 3; - optional ReadOpChecksumInfoProto readOpChecksumInfo = 4; - - /** explanatory text which may be useful to log on the client side */ - optional string message = 5; - - /** If the server chooses to agree to the request of a client for - * short-circuit access, it will send a response message with the relevant - * file descriptors attached. - * - * In the body of the message, this version number will be set to the - * specific version number of the block data that the client is about to - * read. - */ - optional uint32 shortCircuitAccessVersion = 6; -} - -/** - * Message sent from the client to the DN after reading the entire - * read request. - */ -message ClientReadStatusProto { - required Status status = 1; -} - -message DNTransferAckProto { - required Status status = 1; -} - -message OpBlockChecksumResponseProto { - required uint32 bytesPerCrc = 1; - required uint64 crcPerBlock = 2; - required bytes md5 = 3; - optional ChecksumTypeProto crcType = 4; -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/editlog.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/editlog.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/editlog.proto new file mode 100644 index 0000000..f25fe59 --- /dev/null +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/editlog.proto @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +option java_package = "org.apache.hadoop.hdfs.protocol.proto"; +option java_outer_classname = "EditLogProtos"; +option java_generate_equals_and_hash = true; +package hadoop.hdfs; + +import "acl.proto"; +import "xattr.proto"; + +message AclEditLogProto { + required string src = 1; + repeated AclEntryProto entries = 2; +} + +message XAttrEditLogProto { + optional string src = 1; + repeated XAttrProto xAttrs = 2; +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/encryption.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/encryption.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/encryption.proto deleted file mode 100644 index 68b2f3a..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/encryption.proto +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * These .proto interfaces are private and stable. - * Please see http://wiki.apache.org/hadoop/Compatibility - * for what changes are allowed for a *stable* .proto interface. - */ - -// This file contains protocol buffers that are used throughout HDFS -- i.e. -// by the client, server, and data transfer protocols. - - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "EncryptionZonesProtos"; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "hdfs.proto"; - -message CreateEncryptionZoneRequestProto { - required string src = 1; - optional string keyName = 2; -} - -message CreateEncryptionZoneResponseProto { -} - -message ListEncryptionZonesRequestProto { - required int64 id = 1; -} - -message EncryptionZoneProto { - required int64 id = 1; - required string path = 2; - required CipherSuiteProto suite = 3; - required CryptoProtocolVersionProto cryptoProtocolVersion = 4; - required string keyName = 5; -} - -message ListEncryptionZonesResponseProto { - repeated EncryptionZoneProto zones = 1; - required bool hasMore = 2; -} - -message GetEZForPathRequestProto { - required string src = 1; -} - -message GetEZForPathResponseProto { - optional EncryptionZoneProto zone = 1; -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/hdfs.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/hdfs.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/hdfs.proto deleted file mode 100644 index 86fb462..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/hdfs.proto +++ /dev/null @@ -1,611 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * These .proto interfaces are private and stable. - * Please see http://wiki.apache.org/hadoop/Compatibility - * for what changes are allowed for a *stable* .proto interface. - */ - -// This file contains protocol buffers that are used throughout HDFS -- i.e. -// by the client, server, and data transfer protocols. - - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "HdfsProtos"; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "Security.proto"; - -/** - * Extended block idenfies a block - */ -message ExtendedBlockProto { - required string poolId = 1; // Block pool id - gloablly unique across clusters - required uint64 blockId = 2; // the local id within a pool - required uint64 generationStamp = 3; - optional uint64 numBytes = 4 [default = 0]; // len does not belong in ebid - // here for historical reasons -} - -/** - * Identifies a Datanode - */ -message DatanodeIDProto { - required string ipAddr = 1; // IP address - required string hostName = 2; // hostname - required string datanodeUuid = 3; // UUID assigned to the Datanode. For - // upgraded clusters this is the same - // as the original StorageID of the - // Datanode. - required uint32 xferPort = 4; // data streaming port - required uint32 infoPort = 5; // datanode http port - required uint32 ipcPort = 6; // ipc server port - optional uint32 infoSecurePort = 7 [default = 0]; // datanode https port -} - -/** - * Datanode local information - */ -message DatanodeLocalInfoProto { - required string softwareVersion = 1; - required string configVersion = 2; - required uint64 uptime = 3; -} - -/** - * DatanodeInfo array - */ -message DatanodeInfosProto { - repeated DatanodeInfoProto datanodes = 1; -} - -/** - * The status of a Datanode - */ -message DatanodeInfoProto { - required DatanodeIDProto id = 1; - optional uint64 capacity = 2 [default = 0]; - optional uint64 dfsUsed = 3 [default = 0]; - optional uint64 remaining = 4 [default = 0]; - optional uint64 blockPoolUsed = 5 [default = 0]; - optional uint64 lastUpdate = 6 [default = 0]; - optional uint32 xceiverCount = 7 [default = 0]; - optional string location = 8; - enum AdminState { - NORMAL = 0; - DECOMMISSION_INPROGRESS = 1; - DECOMMISSIONED = 2; - } - - optional AdminState adminState = 10 [default = NORMAL]; - optional uint64 cacheCapacity = 11 [default = 0]; - optional uint64 cacheUsed = 12 [default = 0]; - optional uint64 lastUpdateMonotonic = 13 [default = 0]; -} - -/** - * Represents a storage available on the datanode - */ -message DatanodeStorageProto { - enum StorageState { - NORMAL = 0; - READ_ONLY_SHARED = 1; - } - - required string storageUuid = 1; - optional StorageState state = 2 [default = NORMAL]; - optional StorageTypeProto storageType = 3 [default = DISK]; -} - -message StorageReportProto { - required string storageUuid = 1 [ deprecated = true ]; - optional bool failed = 2 [ default = false ]; - optional uint64 capacity = 3 [ default = 0 ]; - optional uint64 dfsUsed = 4 [ default = 0 ]; - optional uint64 remaining = 5 [ default = 0 ]; - optional uint64 blockPoolUsed = 6 [ default = 0 ]; - optional DatanodeStorageProto storage = 7; // supersedes StorageUuid -} - -/** - * Summary of a file or directory - */ -message ContentSummaryProto { - required uint64 length = 1; - required uint64 fileCount = 2; - required uint64 directoryCount = 3; - required uint64 quota = 4; - required uint64 spaceConsumed = 5; - required uint64 spaceQuota = 6; - optional StorageTypeQuotaInfosProto typeQuotaInfos = 7; -} - -/** - * Storage type quota and usage information of a file or directory - */ -message StorageTypeQuotaInfosProto { - repeated StorageTypeQuotaInfoProto typeQuotaInfo = 1; -} - -message StorageTypeQuotaInfoProto { - required StorageTypeProto type = 1; - required uint64 quota = 2; - required uint64 consumed = 3; -} - -/** - * Contains a list of paths corresponding to corrupt files and a cookie - * used for iterative calls to NameNode.listCorruptFileBlocks. - * - */ -message CorruptFileBlocksProto { - repeated string files = 1; - required string cookie = 2; -} - -/** - * File or Directory permision - same spec as posix - */ -message FsPermissionProto { - required uint32 perm = 1; // Actually a short - only 16bits used -} - -/** - * Types of recognized storage media. - */ -enum StorageTypeProto { - DISK = 1; - SSD = 2; - ARCHIVE = 3; - RAM_DISK = 4; -} - -/** - * A list of storage types. - */ -message StorageTypesProto { - repeated StorageTypeProto storageTypes = 1; -} - -/** - * Block replica storage policy. - */ -message BlockStoragePolicyProto { - required uint32 policyId = 1; - required string name = 2; - // a list of storage types for storing the block replicas when creating a - // block. - required StorageTypesProto creationPolicy = 3; - // A list of storage types for creation fallback storage. - optional StorageTypesProto creationFallbackPolicy = 4; - optional StorageTypesProto replicationFallbackPolicy = 5; -} - -/** - * A list of storage IDs. - */ -message StorageUuidsProto { - repeated string storageUuids = 1; -} - -/** - * A LocatedBlock gives information about a block and its location. - */ -message LocatedBlockProto { - required ExtendedBlockProto b = 1; - required uint64 offset = 2; // offset of first byte of block in the file - repeated DatanodeInfoProto locs = 3; // Locations ordered by proximity to client ip - required bool corrupt = 4; // true if all replicas of a block are corrupt, else false - // If block has few corrupt replicas, they are filtered and - // their locations are not part of this object - - required hadoop.common.TokenProto blockToken = 5; - repeated bool isCached = 6 [packed=true]; // if a location in locs is cached - repeated StorageTypeProto storageTypes = 7; - repeated string storageIDs = 8; -} - -message DataEncryptionKeyProto { - required uint32 keyId = 1; - required string blockPoolId = 2; - required bytes nonce = 3; - required bytes encryptionKey = 4; - required uint64 expiryDate = 5; - optional string encryptionAlgorithm = 6; -} - -/** - * Cipher suite. - */ -enum CipherSuiteProto { - UNKNOWN = 1; - AES_CTR_NOPADDING = 2; -} - -/** - * Crypto protocol version used to access encrypted files. - */ -enum CryptoProtocolVersionProto { - UNKNOWN_PROTOCOL_VERSION = 1; - ENCRYPTION_ZONES = 2; -} - -/** - * Encryption information for a file. - */ -message FileEncryptionInfoProto { - required CipherSuiteProto suite = 1; - required CryptoProtocolVersionProto cryptoProtocolVersion = 2; - required bytes key = 3; - required bytes iv = 4; - required string keyName = 5; - required string ezKeyVersionName = 6; -} - -/** - * Encryption information for an individual - * file within an encryption zone - */ -message PerFileEncryptionInfoProto { - required bytes key = 1; - required bytes iv = 2; - required string ezKeyVersionName = 3; -} - -/** - * Encryption information for an encryption - * zone - */ -message ZoneEncryptionInfoProto { - required CipherSuiteProto suite = 1; - required CryptoProtocolVersionProto cryptoProtocolVersion = 2; - required string keyName = 3; -} - -/** - * Cipher option - */ -message CipherOptionProto { - required CipherSuiteProto suite = 1; - optional bytes inKey = 2; - optional bytes inIv = 3; - optional bytes outKey = 4; - optional bytes outIv = 5; -} - -/** - * A set of file blocks and their locations. - */ -message LocatedBlocksProto { - required uint64 fileLength = 1; - repeated LocatedBlockProto blocks = 2; - required bool underConstruction = 3; - optional LocatedBlockProto lastBlock = 4; - required bool isLastBlockComplete = 5; - optional FileEncryptionInfoProto fileEncryptionInfo = 6; -} - -/** - * Status of a file, directory or symlink - * Optionally includes a file's block locations if requested by client on the rpc call. - */ -message HdfsFileStatusProto { - enum FileType { - IS_DIR = 1; - IS_FILE = 2; - IS_SYMLINK = 3; - } - required FileType fileType = 1; - required bytes path = 2; // local name of inode encoded java UTF8 - required uint64 length = 3; - required FsPermissionProto permission = 4; - required string owner = 5; - required string group = 6; - required uint64 modification_time = 7; - required uint64 access_time = 8; - - // Optional fields for symlink - optional bytes symlink = 9; // if symlink, target encoded java UTF8 - - // Optional fields for file - optional uint32 block_replication = 10 [default = 0]; // only 16bits used - optional uint64 blocksize = 11 [default = 0]; - optional LocatedBlocksProto locations = 12; // suppled only if asked by client - - // Optional field for fileId - optional uint64 fileId = 13 [default = 0]; // default as an invalid id - optional int32 childrenNum = 14 [default = -1]; - // Optional field for file encryption - optional FileEncryptionInfoProto fileEncryptionInfo = 15; - - optional uint32 storagePolicy = 16 [default = 0]; // block storage policy id -} - -/** - * Checksum algorithms/types used in HDFS - * Make sure this enum's integer values match enum values' id properties defined - * in org.apache.hadoop.util.DataChecksum.Type - */ -enum ChecksumTypeProto { - CHECKSUM_NULL = 0; - CHECKSUM_CRC32 = 1; - CHECKSUM_CRC32C = 2; -} - -/** - * HDFS Server Defaults - */ -message FsServerDefaultsProto { - required uint64 blockSize = 1; - required uint32 bytesPerChecksum = 2; - required uint32 writePacketSize = 3; - required uint32 replication = 4; // Actually a short - only 16 bits used - required uint32 fileBufferSize = 5; - optional bool encryptDataTransfer = 6 [default = false]; - optional uint64 trashInterval = 7 [default = 0]; - optional ChecksumTypeProto checksumType = 8 [default = CHECKSUM_CRC32]; -} - - -/** - * Directory listing - */ -message DirectoryListingProto { - repeated HdfsFileStatusProto partialListing = 1; - required uint32 remainingEntries = 2; -} - -/** - * Status of a snapshottable directory: besides the normal information for - * a directory status, also include snapshot quota, number of snapshots, and - * the full path of the parent directory. - */ -message SnapshottableDirectoryStatusProto { - required HdfsFileStatusProto dirStatus = 1; - - // Fields specific for snapshottable directory - required uint32 snapshot_quota = 2; - required uint32 snapshot_number = 3; - required bytes parent_fullpath = 4; -} - -/** - * Snapshottable directory listing - */ -message SnapshottableDirectoryListingProto { - repeated SnapshottableDirectoryStatusProto snapshottableDirListing = 1; -} - -/** - * Snapshot diff report entry - */ -message SnapshotDiffReportEntryProto { - required bytes fullpath = 1; - required string modificationLabel = 2; - optional bytes targetPath = 3; -} - -/** - * Snapshot diff report - */ -message SnapshotDiffReportProto { - // full path of the directory where snapshots were taken - required string snapshotRoot = 1; - required string fromSnapshot = 2; - required string toSnapshot = 3; - repeated SnapshotDiffReportEntryProto diffReportEntries = 4; -} - -/** - * Common node information shared by all the nodes in the cluster - */ -message StorageInfoProto { - required uint32 layoutVersion = 1; // Layout version of the file system - required uint32 namespceID = 2; // File system namespace ID - required string clusterID = 3; // ID of the cluster - required uint64 cTime = 4; // File system creation time -} - -/** - * Information sent by a namenode to identify itself to the primary namenode. - */ -message NamenodeRegistrationProto { - required string rpcAddress = 1; // host:port of the namenode RPC address - required string httpAddress = 2; // host:port of the namenode http server - enum NamenodeRoleProto { - NAMENODE = 1; - BACKUP = 2; - CHECKPOINT = 3; - } - required StorageInfoProto storageInfo = 3; // Node information - optional NamenodeRoleProto role = 4 [default = NAMENODE]; // Namenode role -} - -/** - * Unique signature to identify checkpoint transactions. - */ -message CheckpointSignatureProto { - required string blockPoolId = 1; - required uint64 mostRecentCheckpointTxId = 2; - required uint64 curSegmentTxId = 3; - required StorageInfoProto storageInfo = 4; -} - -/** - * Command sent from one namenode to another namenode. - */ -message NamenodeCommandProto { - enum Type { - NamenodeCommand = 0; // Base command - CheckPointCommand = 1; // Check point command - } - required uint32 action = 1; - required Type type = 2; - optional CheckpointCommandProto checkpointCmd = 3; -} - -/** - * Command returned from primary to checkpointing namenode. - * This command has checkpoint signature that identifies - * checkpoint transaction and is needed for further - * communication related to checkpointing. - */ -message CheckpointCommandProto { - // Unique signature to identify checkpoint transation - required CheckpointSignatureProto signature = 1; - - // If true, return transfer image to primary upon the completion of checkpoint - required bool needToReturnImage = 2; -} - -/** - * Block information - * - * Please be wary of adding additional fields here, since INodeFiles - * need to fit in PB's default max message size of 64MB. - * We restrict the max # of blocks per file - * (dfs.namenode.fs-limits.max-blocks-per-file), but it's better - * to avoid changing this. - */ -message BlockProto { - required uint64 blockId = 1; - required uint64 genStamp = 2; - optional uint64 numBytes = 3 [default = 0]; -} - -/** - * Block and datanodes where is it located - */ -message BlockWithLocationsProto { - required BlockProto block = 1; // Block - repeated string datanodeUuids = 2; // Datanodes with replicas of the block - repeated string storageUuids = 3; // Storages with replicas of the block - repeated StorageTypeProto storageTypes = 4; -} - -/** - * List of block with locations - */ -message BlocksWithLocationsProto { - repeated BlockWithLocationsProto blocks = 1; -} - -/** - * Editlog information with available transactions - */ -message RemoteEditLogProto { - required uint64 startTxId = 1; // Starting available edit log transaction - required uint64 endTxId = 2; // Ending available edit log transaction - optional bool isInProgress = 3 [default = false]; -} - -/** - * Enumeration of editlogs available on a remote namenode - */ -message RemoteEditLogManifestProto { - repeated RemoteEditLogProto logs = 1; -} - -/** - * Namespace information that describes namespace on a namenode - */ -message NamespaceInfoProto { - required string buildVersion = 1; // Software revision version (e.g. an svn or git revision) - required uint32 unused = 2; // Retained for backward compatibility - required string blockPoolID = 3; // block pool used by the namespace - required StorageInfoProto storageInfo = 4;// Node information - required string softwareVersion = 5; // Software version number (e.g. 2.0.0) - optional uint64 capabilities = 6 [default = 0]; // feature flags -} - -/** - * Block access token information - */ -message BlockKeyProto { - required uint32 keyId = 1; // Key identifier - required uint64 expiryDate = 2; // Expiry time in milliseconds - optional bytes keyBytes = 3; // Key secret -} - -/** - * Current key and set of block keys at the namenode. - */ -message ExportedBlockKeysProto { - required bool isBlockTokenEnabled = 1; - required uint64 keyUpdateInterval = 2; - required uint64 tokenLifeTime = 3; - required BlockKeyProto currentKey = 4; - repeated BlockKeyProto allKeys = 5; -} - -/** - * State of a block replica at a datanode - */ -enum ReplicaStateProto { - FINALIZED = 0; // State of a replica when it is not modified - RBW = 1; // State of replica that is being written to - RWR = 2; // State of replica that is waiting to be recovered - RUR = 3; // State of replica that is under recovery - TEMPORARY = 4; // State of replica that is created for replication -} - -/** - * Block that needs to be recovered with at a given location - */ -message RecoveringBlockProto { - required uint64 newGenStamp = 1; // New genstamp post recovery - required LocatedBlockProto block = 2; // Block to be recovered - optional BlockProto truncateBlock = 3; // New block for recovery (truncate) -} - -/** - * void request - */ -message VersionRequestProto { -} - -/** - * Version response from namenode. - */ -message VersionResponseProto { - required NamespaceInfoProto info = 1; -} - -/** - * Information related to a snapshot - * TODO: add more information - */ -message SnapshotInfoProto { - required string snapshotName = 1; - required string snapshotRoot = 2; - required FsPermissionProto permission = 3; - required string owner = 4; - required string group = 5; - required string createTime = 6; - // TODO: do we need access time? -} - -/** - * Rolling upgrade status - */ -message RollingUpgradeStatusProto { - required string blockPoolId = 1; - optional bool finalized = 2 [default = false]; -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/inotify.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/inotify.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/inotify.proto deleted file mode 100644 index 5b78fe6..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/inotify.proto +++ /dev/null @@ -1,126 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * These .proto interfaces are private and stable. - * Please see http://wiki.apache.org/hadoop/Compatibility - * for what changes are allowed for a *stable* .proto interface. - */ - -// This file contains protocol buffers used to communicate edits to clients -// as part of the inotify system. - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "InotifyProtos"; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -import "acl.proto"; -import "xattr.proto"; -import "hdfs.proto"; - -enum EventType { - EVENT_CREATE = 0x0; - EVENT_CLOSE = 0x1; - EVENT_APPEND = 0x2; - EVENT_RENAME = 0x3; - EVENT_METADATA = 0x4; - EVENT_UNLINK = 0x5; -} - -message EventProto { - required EventType type = 1; - required bytes contents = 2; -} - -message EventBatchProto { - required int64 txid = 1; - repeated EventProto events = 2; -} - -enum INodeType { - I_TYPE_FILE = 0x0; - I_TYPE_DIRECTORY = 0x1; - I_TYPE_SYMLINK = 0x2; -} - -enum MetadataUpdateType { - META_TYPE_TIMES = 0x0; - META_TYPE_REPLICATION = 0x1; - META_TYPE_OWNER = 0x2; - META_TYPE_PERMS = 0x3; - META_TYPE_ACLS = 0x4; - META_TYPE_XATTRS = 0x5; -} - -message CreateEventProto { - required INodeType type = 1; - required string path = 2; - required int64 ctime = 3; - required string ownerName = 4; - required string groupName = 5; - required FsPermissionProto perms = 6; - optional int32 replication = 7; - optional string symlinkTarget = 8; - optional bool overwrite = 9; - optional int64 defaultBlockSize = 10 [default=0]; -} - -message CloseEventProto { - required string path = 1; - required int64 fileSize = 2; - required int64 timestamp = 3; -} - -message AppendEventProto { - required string path = 1; - optional bool newBlock = 2 [default = false]; -} - -message RenameEventProto { - required string srcPath = 1; - required string destPath = 2; - required int64 timestamp = 3; -} - -message MetadataUpdateEventProto { - required string path = 1; - required MetadataUpdateType type = 2; - optional int64 mtime = 3; - optional int64 atime = 4; - optional int32 replication = 5; - optional string ownerName = 6; - optional string groupName = 7; - optional FsPermissionProto perms = 8; - repeated AclEntryProto acls = 9; - repeated XAttrProto xAttrs = 10; - optional bool xAttrsRemoved = 11; -} - -message UnlinkEventProto { - required string path = 1; - required int64 timestamp = 2; -} - -message EventsListProto { - repeated EventProto events = 1; // deprecated - required int64 firstTxid = 2; - required int64 lastTxid = 3; - required int64 syncTxid = 4; - repeated EventBatchProto batch = 5; -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc6182d5/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/xattr.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/xattr.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/xattr.proto deleted file mode 100644 index acdc28e..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/xattr.proto +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -option java_package = "org.apache.hadoop.hdfs.protocol.proto"; -option java_outer_classname = "XAttrProtos"; -option java_generate_equals_and_hash = true; -package hadoop.hdfs; - -message XAttrProto { - enum XAttrNamespaceProto { - USER = 0; - TRUSTED = 1; - SECURITY = 2; - SYSTEM = 3; - RAW = 4; - } - - required XAttrNamespaceProto namespace = 1; - required string name = 2; - optional bytes value = 3; -} - -message XAttrEditLogProto { - optional string src = 1; - repeated XAttrProto xAttrs = 2; -} - -enum XAttrSetFlagProto { - XATTR_CREATE = 0x01; - XATTR_REPLACE = 0x02; -} - -message SetXAttrRequestProto { - required string src = 1; - optional XAttrProto xAttr = 2; - optional uint32 flag = 3; //bits set using XAttrSetFlagProto -} - -message SetXAttrResponseProto { -} - -message GetXAttrsRequestProto { - required string src = 1; - repeated XAttrProto xAttrs = 2; -} - -message GetXAttrsResponseProto { - repeated XAttrProto xAttrs = 1; -} - -message ListXAttrsRequestProto { - required string src = 1; -} - -message ListXAttrsResponseProto { - repeated XAttrProto xAttrs = 1; -} - -message RemoveXAttrRequestProto { - required string src = 1; - optional XAttrProto xAttr = 2; -} - -message RemoveXAttrResponseProto { -}