123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /**
- * 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 unstable.
- * Please see http://wiki.apache.org/hadoop/Compatibility
- * for what changes are allowed for a *unstable* .proto interface.
- */
- option java_package = "org.apache.hadoop.cblock.protocol.proto";
- option java_outer_classname = "CBlockClientServerProtocolProtos";
- option java_generic_services = true;
- option java_generate_equals_and_hash = true;
- package hadoop.cblock;
- import "hdds.proto";
- import "CBlockServiceProtocol.proto";
- /**
- * This message is sent from CBlock client side to CBlock server to
- * mount a volume specified by owner name and volume name.
- *
- * Right now, this is the only communication between client and server.
- * After the volume is mounted, CBlock client will talk to containers
- * by itself, nothing to do with CBlock server.
- */
- message MountVolumeRequestProto {
- required string userName = 1;
- required string volumeName = 2;
- }
- /**
- * This message is sent from CBlock server to CBlock client as response
- * of mount a volume. It checks the whether the volume is valid to access
- * at all.(e.g. volume exist)
- *
- * And include enough information (volume size, block size, list of
- * containers for this volume) for client side to perform read/write on
- * the volume.
- */
- message MountVolumeResponseProto {
- required bool isValid = 1;
- optional string userName = 2;
- optional string volumeName = 3;
- optional uint64 volumeSize = 4;
- optional uint32 blockSize = 5;
- repeated ContainerIDProto allContainerIDs = 6;
- }
- /**
- * This message include ID of container which can be used to locate the
- * container. Since the order of containers needs to be maintained, also
- * includes a index field to verify the correctness of the order.
- */
- message ContainerIDProto {
- required string containerID = 1;
- required uint64 index = 2;
- // making pipeline optional to be compatible with exisiting tests
- optional hadoop.hdds.Pipeline pipeline = 3;
- }
- message ListVolumesRequestProto {
- }
- message ListVolumesResponseProto {
- repeated VolumeInfoProto volumeEntry = 1;
- }
- service CBlockClientServerProtocolService {
- /**
- * mount the volume.
- */
- rpc mountVolume(MountVolumeRequestProto) returns (MountVolumeResponseProto);
- rpc listVolumes(ListVolumesRequestProto) returns(ListVolumesResponseProto);
- }
|