This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/master by this push:
     new 4c9c7262f3 Agent FS initial change
4c9c7262f3 is described below

commit 4c9c7262f37a0368f9f2c20497ad38d69a62dcb2
Author: Dimuthu Wannipurage <[email protected]>
AuthorDate: Mon Jul 22 01:05:52 2024 -0400

    Agent FS initial change
---
 .../jupyter/labconfig/jupyter_lab_config.py        |  10 +
 .../airavata-fuse/src/grpcfs/pb/grpcfs.pb.go       | 578 ++++++++++++---------
 .../airavata-fuse/src/grpcfs/pb/grpcfs_grpc.pb.go  |  36 +-
 .../airavata-fuse/src/grpcfs_client/main.go        |   2 +-
 .../airavata-fuse/src/proto/grpcfs.proto           |   2 +-
 .../connection/service/handlers/AgentHandler.java  |   2 +-
 .../connection/service/handlers/FuseFSHandler.java | 112 ++++
 7 files changed, 473 insertions(+), 269 deletions(-)

diff --git 
a/modules/agent-framework/airavata-agent/jupyter/labconfig/jupyter_lab_config.py
 
b/modules/agent-framework/airavata-agent/jupyter/labconfig/jupyter_lab_config.py
index d6d733ce58..a160cd77cb 100644
--- 
a/modules/agent-framework/airavata-agent/jupyter/labconfig/jupyter_lab_config.py
+++ 
b/modules/agent-framework/airavata-agent/jupyter/labconfig/jupyter_lab_config.py
@@ -1,5 +1,15 @@
+import sys
+sys.path.append('/')
+
 c = get_config()
 
+c.InteractiveShellApp.exec_lines = [
+    "import sys"
+    "sys.path.append('/')"
+    "import airavata_magics",
+    "airavata_magics.load_ipython_extension(get_ipython())"
+]
+
 # Set the IP address Jupyter Lab will listen on
 c.ServerApp.ip = '0.0.0.0'
 
diff --git a/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs.pb.go 
b/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs.pb.go
index 85ee6a14eb..7906f84738 100644
--- a/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs.pb.go
+++ b/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs.pb.go
@@ -1,7 +1,23 @@
+//
+// 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.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
 //     protoc-gen-go v1.34.2
-//     protoc        v5.27.1
+//     protoc        v4.24.4
 // source: proto/grpcfs.proto
 
 package pb
@@ -680,9 +696,9 @@ type InodeAtt struct {
        Size     uint64                 
`protobuf:"varint,1,opt,name=Size,proto3" json:"Size,omitempty"`
        Nlink    uint32                 
`protobuf:"varint,2,opt,name=Nlink,proto3" json:"Nlink,omitempty"`
        FileMode uint32                 
`protobuf:"varint,3,opt,name=FileMode,proto3" json:"FileMode,omitempty"`
-       Atime    *timestamppb.Timestamp 
`protobuf:"bytes,5,opt,name=Atime,proto3" json:"Atime,omitempty"`
-       Mtime    *timestamppb.Timestamp 
`protobuf:"bytes,6,opt,name=Mtime,proto3" json:"Mtime,omitempty"`
-       Ctime    *timestamppb.Timestamp 
`protobuf:"bytes,7,opt,name=Ctime,proto3" json:"Ctime,omitempty"`
+       Atime    *timestamppb.Timestamp 
`protobuf:"bytes,4,opt,name=Atime,proto3" json:"Atime,omitempty"`
+       Mtime    *timestamppb.Timestamp 
`protobuf:"bytes,5,opt,name=Mtime,proto3" json:"Mtime,omitempty"`
+       Ctime    *timestamppb.Timestamp 
`protobuf:"bytes,6,opt,name=Ctime,proto3" json:"Ctime,omitempty"`
 }
 
 func (x *InodeAtt) Reset() {
@@ -1629,143 +1645,161 @@ var File_proto_grpcfs_proto 
protoreflect.FileDescriptor
 
 var file_proto_grpcfs_proto_rawDesc = []byte{
        0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x72, 0x70, 0x63, 
0x66, 0x73, 0x2e, 0x70,
-       0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x1f, 0x67, 0x6f, 
0x6f, 0x67, 0x6c, 0x65,
-       0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 
0x6d, 0x65, 0x73, 0x74,
-       0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x66, 0x0a, 
0x0a, 0x52, 0x50, 0x43,
-       0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x47, 
0x61, 0x74, 0x65, 0x77,
-       0x61, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 
0x47, 0x61, 0x74, 0x65,
-       0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 
0x65, 0x73, 0x73, 0x54,
-       0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 
0x41, 0x63, 0x63, 0x65,
-       0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 
0x67, 0x65, 0x6e, 0x74,
-       0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x67, 
0x65, 0x6e, 0x74, 0x49,
-       0x64, 0x22, 0x47, 0x0a, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 
0x78, 0x74, 0x12, 0x16,
-       0x0a, 0x06, 0x46, 0x75, 0x73, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 
0x28, 0x04, 0x52, 0x06,
-       0x46, 0x75, 0x73, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x69, 
0x64, 0x18, 0x02, 0x20,
-       0x01, 0x28, 0x04, 0x52, 0x03, 0x50, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 
0x55, 0x69, 0x64, 0x18,
-       0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0xd8, 
0x01, 0x0a, 0x06, 0x53,
-       0x74, 0x61, 0x74, 0x46, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 
0x63, 0x6b, 0x53, 0x69,
-       0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x42, 0x6c, 
0x6f, 0x63, 0x6b, 0x53,
-       0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 
0x73, 0x18, 0x02, 0x20,
-       0x01, 0x28, 0x04, 0x52, 0x06, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 
0x1e, 0x0a, 0x0a, 0x42,
-       0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x46, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 
0x01, 0x28, 0x04, 0x52,
-       0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x46, 0x72, 0x65, 0x65, 0x12, 
0x28, 0x0a, 0x0f, 0x42,
-       0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 
0x6c, 0x65, 0x18, 0x04,
-       0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 
0x41, 0x76, 0x61, 0x69,
-       0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6f, 0x53, 
0x69, 0x7a, 0x65, 0x18,
-       0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x49, 0x6f, 0x53, 0x69, 0x7a, 
0x65, 0x12, 0x16, 0x0a,
-       0x06, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 
0x04, 0x52, 0x06, 0x49,
-       0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6e, 0x6f, 
0x64, 0x65, 0x73, 0x46,
-       0x72, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
-       0x73, 0x46, 0x72, 0x65, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x08, 0x46, 0x69, 
0x6c, 0x65, 0x49, 0x6e,
-       0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x09,
-       0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x69, 
0x7a, 0x65, 0x18, 0x02,
-       0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 
0x0a, 0x04, 0x4d, 0x6f,
-       0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x4d, 0x6f, 
0x64, 0x65, 0x12, 0x34,
-       0x0a, 0x07, 0x4d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 
0x01, 0x28, 0x0b, 0x32,
-       0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 
0x74, 0x6f, 0x62, 0x75,
-       0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 
0x07, 0x4d, 0x6f, 0x64,
-       0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 
0x72, 0x18, 0x05, 0x20,
-       0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x72, 0x12, 0x10, 
0x0a, 0x03, 0x49, 0x6e,
-       0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x49, 0x6e, 0x6f, 
0x22, 0xa0, 0x01, 0x0a,
-       0x09, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x44, 0x69, 0x72, 0x12, 0x14, 
0x0a, 0x05, 0x49, 0x6e,
+       0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 
0x61, 0x63, 0x68, 0x65,
+       0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 
0x73, 0x65, 0x1a, 0x1f,
+       0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 
0x62, 0x75, 0x66, 0x2f,
+       0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 
0x6f, 0x74, 0x6f, 0x22,
+       0x66, 0x0a, 0x0a, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 
0x74, 0x12, 0x1c, 0x0a,
+       0x09, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x09,
+       0x52, 0x09, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 
0x20, 0x0a, 0x0b, 0x41,
+       0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 
0x20, 0x01, 0x28, 0x09,
+       0x52, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 
0x6e, 0x12, 0x18, 0x0a,
+       0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 
0x28, 0x09, 0x52, 0x07,
+       0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x09, 0x4f, 
0x70, 0x43, 0x6f, 0x6e,
+       0x74, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x75, 0x73, 0x65, 
0x49, 0x64, 0x18, 0x01,
+       0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x46, 0x75, 0x73, 0x65, 0x49, 0x64, 
0x12, 0x10, 0x0a, 0x03,
+       0x50, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x50, 
0x69, 0x64, 0x12, 0x10,
+       0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 
0x03, 0x55, 0x69, 0x64,
+       0x22, 0xd8, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x46, 0x73, 0x12, 
0x1c, 0x0a, 0x09, 0x42,
+       0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 
0x28, 0x0d, 0x52, 0x09,
+       0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 
0x06, 0x42, 0x6c, 0x6f,
+       0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x42, 
0x6c, 0x6f, 0x63, 0x6b,
+       0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x46, 
0x72, 0x65, 0x65, 0x18,
+       0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 
0x73, 0x46, 0x72, 0x65,
+       0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 
0x76, 0x61, 0x69, 0x6c,
+       0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 
0x42, 0x6c, 0x6f, 0x63,
+       0x6b, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 
0x16, 0x0a, 0x06, 0x49,
+       0x6f, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 
0x06, 0x49, 0x6f, 0x53,
+       0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x6f, 0x64, 0x65, 
0x73, 0x18, 0x06, 0x20,
+       0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 
0x1e, 0x0a, 0x0a, 0x49,
+       0x6e, 0x6f, 0x64, 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, 0x18, 0x07, 0x20, 
0x01, 0x28, 0x04, 0x52,
+       0x0a, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, 0x22, 
0xa4, 0x01, 0x0a, 0x08,
+       0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 
0x4e, 0x61, 0x6d, 0x65,
+       0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 
0x12, 0x12, 0x0a, 0x04,
+       0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 
0x53, 0x69, 0x7a, 0x65,
+       0x12, 0x12, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 
0x28, 0x0d, 0x52, 0x04,
+       0x4d, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x4d, 0x6f, 0x64, 0x54, 
0x69, 0x6d, 0x65, 0x18,
+       0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 
0x6c, 0x65, 0x2e, 0x70,
+       0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 
0x73, 0x74, 0x61, 0x6d,
+       0x70, 0x52, 0x07, 0x4d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 
0x0a, 0x05, 0x49, 0x73,
+       0x44, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 
0x73, 0x44, 0x69, 0x72,
+       0x12, 0x10, 0x0a, 0x03, 0x49, 0x6e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 
0x04, 0x52, 0x03, 0x49,
+       0x6e, 0x6f, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x65, 
0x64, 0x44, 0x69, 0x72,
+       0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 
0x01, 0x28, 0x04, 0x52,
+       0x05, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 
0x6e, 0x64, 0x6c, 0x65,
+       0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x48, 0x61, 0x6e, 0x64, 
0x6c, 0x65, 0x12, 0x41,
+       0x0a, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 
0x03, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 
0x68, 0x65, 0x2e, 0x61,
+       0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 
0x2e, 0x4f, 0x70, 0x43,
+       0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x09, 0x4f, 0x70, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
+       0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 
0x72, 0x18, 0x04, 0x20,
+       0x01, 0x28, 0x08, 0x52, 0x08, 0x43, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 
0x72, 0x12, 0x1c, 0x0a,
+       0x09, 0x4b, 0x65, 0x65, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x05, 
0x20, 0x01, 0x28, 0x08,
+       0x52, 0x09, 0x4b, 0x65, 0x65, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x22, 
0xe3, 0x01, 0x0a, 0x0a,
+       0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 
0x0a, 0x05, 0x49, 0x6e,
        0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
        0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 
0x20, 0x01, 0x28, 0x04,
-       0x52, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x09, 
0x4f, 0x70, 0x43, 0x6f,
-       0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 
0x0d, 0x2e, 0x70, 0x62,
-       0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x09, 
0x4f, 0x70, 0x43, 0x6f,
-       0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x63, 
0x68, 0x65, 0x44, 0x69,
-       0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x43, 0x61, 0x63, 
0x68, 0x65, 0x44, 0x69,
-       0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4b, 0x65, 0x65, 0x70, 0x43, 0x61, 0x63, 
0x68, 0x65, 0x18, 0x05,
-       0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x4b, 0x65, 0x65, 0x70, 0x43, 0x61, 
0x63, 0x68, 0x65, 0x22,
-       0xcd, 0x01, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x46, 0x69, 
0x6c, 0x65, 0x12, 0x14,
-       0x0a, 0x05, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 
0x04, 0x52, 0x05, 0x49,
-       0x6e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6e, 0x64, 
0x6c, 0x65, 0x18, 0x02,
-       0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 
0x12, 0x24, 0x0a, 0x0d,
-       0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x67, 0x65, 0x43, 0x61, 0x63, 0x68, 
0x65, 0x18, 0x03, 0x20,
-       0x01, 0x28, 0x08, 0x52, 0x0d, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x67, 
0x65, 0x43, 0x61, 0x63,
-       0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x44, 0x69, 0x72, 
0x65, 0x63, 0x74, 0x49,
-       0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x55, 0x73, 0x65, 
0x44, 0x69, 0x72, 0x65,
-       0x63, 0x74, 0x49, 0x4f, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 
0x46, 0x6c, 0x61, 0x67,
-       0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4f, 0x70, 0x65, 
0x6e, 0x46, 0x6c, 0x61,
-       0x67, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 
0x65, 0x78, 0x74, 0x18,
-       0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 
0x70, 0x43, 0x6f, 0x6e,
-       0x74, 0x65, 0x78, 0x74, 0x52, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 
0x65, 0x78, 0x74, 0x22,
-       0x72, 0x0a, 0x08, 0x44, 0x69, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 
0x12, 0x0a, 0x04, 0x4e,
-       0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 
0x61, 0x6d, 0x65, 0x12,
-       0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 
0x28, 0x08, 0x52, 0x05,
-       0x49, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 
0x65, 0x4d, 0x6f, 0x64,
-       0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x46, 0x69, 0x6c, 
0x65, 0x4d, 0x6f, 0x64,
-       0x65, 0x12, 0x20, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 
0x01, 0x28, 0x0b, 0x32,
-       0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 
0x6f, 0x52, 0x04, 0x49,
-       0x6e, 0x66, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 
0x45, 0x6e, 0x74, 0x72,
-       0x79, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x04,
-       0x52, 0x05, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x48, 
0x61, 0x6e, 0x64, 0x6c,
-       0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x48, 0x61, 0x6e, 
0x64, 0x6c, 0x65, 0x12,
-       0x16, 0x0a, 0x06, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 
0x01, 0x28, 0x03, 0x52,
-       0x06, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 
0x69, 0x7a, 0x65, 0x18,
-       0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 
0x10, 0x0a, 0x03, 0x44,
-       0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x44, 0x73, 
0x74, 0x12, 0x12, 0x0a,
-       0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 
0x04, 0x44, 0x61, 0x74,
-       0x61, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 
0x61, 0x64, 0x18, 0x07,
-       0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 
0x65, 0x61, 0x64, 0x12,
-       0x2b, 0x0a, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 
0x18, 0x08, 0x20, 0x01,
-       0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
-       0x74, 0x52, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 
0x22, 0xe6, 0x01, 0x0a,
-       0x08, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x12, 0x12, 0x0a, 
0x04, 0x53, 0x69, 0x7a,
-       0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x53, 0x69, 0x7a, 
0x65, 0x12, 0x14, 0x0a,
-       0x05, 0x4e, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 
0x52, 0x05, 0x4e, 0x6c,
-       0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4d, 
0x6f, 0x64, 0x65, 0x18,
-       0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4d, 
0x6f, 0x64, 0x65, 0x12,
-       0x30, 0x0a, 0x05, 0x41, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 
0x28, 0x0b, 0x32, 0x1a,
-       0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 
0x6f, 0x62, 0x75, 0x66,
-       0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 
0x41, 0x74, 0x69, 0x6d,
-       0x65, 0x12, 0x30, 0x0a, 0x05, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 
0x20, 0x01, 0x28, 0x0b,
-       0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 
0x6f, 0x74, 0x6f, 0x62,
-       0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 
0x52, 0x05, 0x4d, 0x74,
-       0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x43, 0x74, 0x69, 0x6d, 0x65, 
0x18, 0x07, 0x20, 0x01,
-       0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 
0x70, 0x72, 0x6f, 0x74,
-       0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 
0x6d, 0x70, 0x52, 0x05,
-       0x43, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x09, 0x53, 0x74, 0x61, 
0x74, 0x46, 0x73, 0x52,
-       0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x09,
-       0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
-       0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 
0x2e, 0x52, 0x50, 0x43,
-       0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 
0x74, 0x65, 0x78, 0x74,
-       0x22, 0x4b, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 
0x52, 0x65, 0x71, 0x12,
-       0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 
0x09, 0x52, 0x04, 0x4e,
-       0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 
0x78, 0x74, 0x18, 0x02,
-       0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 
0x43, 0x43, 0x6f, 0x6e,
-       0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 
0x74, 0x22, 0x4a, 0x0a,
-       0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x72, 0x52, 0x65, 0x71, 0x12, 
0x12, 0x0a, 0x04, 0x4e,
-       0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 
0x61, 0x6d, 0x65, 0x12,
-       0x28, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 
0x20, 0x01, 0x28, 0x0b,
-       0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 
0x74, 0x65, 0x78, 0x74,
-       0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4b, 0x0a, 
0x0b, 0x4f, 0x70, 0x65,
-       0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 
0x4e, 0x61, 0x6d, 0x65,
-       0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 
0x12, 0x28, 0x0a, 0x07,
-       0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 
0x0b, 0x32, 0x0e, 0x2e,
-       0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 
0x74, 0x52, 0x07, 0x43,
-       0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4a, 0x0a, 0x0a, 0x52, 0x65, 
0x61, 0x64, 0x44, 0x69,
-       0x72, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 
0x18, 0x01, 0x20, 0x01,
-       0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 
0x43, 0x6f, 0x6e, 0x74,
-       0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 
0x70, 0x62, 0x2e, 0x52,
-       0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 
0x6f, 0x6e, 0x74, 0x65,
-       0x78, 0x74, 0x22, 0x4b, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 
0x6c, 0x65, 0x52, 0x65,
+       0x52, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 
0x4b, 0x65, 0x65, 0x70,
+       0x50, 0x61, 0x67, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 
0x01, 0x28, 0x08, 0x52,
+       0x0d, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x67, 0x65, 0x43, 0x61, 0x63, 
0x68, 0x65, 0x12, 0x20,
+       0x0a, 0x0b, 0x55, 0x73, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x49, 
0x4f, 0x18, 0x04, 0x20,
+       0x01, 0x28, 0x08, 0x52, 0x0b, 0x55, 0x73, 0x65, 0x44, 0x69, 0x72, 0x65, 
0x63, 0x74, 0x49, 0x4f,
+       0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x6c, 0x61, 0x67, 
0x73, 0x18, 0x05, 0x20,
+       0x01, 0x28, 0x0d, 0x52, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x6c, 0x61, 
0x67, 0x73, 0x12, 0x41,
+       0x0a, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 
0x06, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 
0x68, 0x65, 0x2e, 0x61,
+       0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 
0x2e, 0x4f, 0x70, 0x43,
+       0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x09, 0x4f, 0x70, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
+       0x74, 0x22, 0x88, 0x01, 0x0a, 0x08, 0x44, 0x69, 0x72, 0x45, 0x6e, 0x74, 
0x72, 0x79, 0x12, 0x12,
+       0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 
0x52, 0x04, 0x4e, 0x61,
+       0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x72, 0x18, 
0x02, 0x20, 0x01, 0x28,
+       0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1a, 0x0a, 0x08, 
0x46, 0x69, 0x6c, 0x65,
+       0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 
0x46, 0x69, 0x6c, 0x65,
+       0x4d, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 
0x18, 0x04, 0x20, 0x01,
+       0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 
0x63, 0x68, 0x65, 0x2e,
+       0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 
0x65, 0x2e, 0x46, 0x69,
+       0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 
0x22, 0xec, 0x01, 0x0a,
+       0x09, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 
0x0a, 0x05, 0x49, 0x6e,
+       0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
+       0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 
0x20, 0x01, 0x28, 0x04,
+       0x52, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 
0x4f, 0x66, 0x66, 0x73,
+       0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x4f, 0x66, 
0x66, 0x73, 0x65, 0x74,
+       0x12, 0x12, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 
0x28, 0x03, 0x52, 0x04,
+       0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x73, 0x74, 0x18, 
0x05, 0x20, 0x01, 0x28,
+       0x0c, 0x52, 0x03, 0x44, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 
0x74, 0x61, 0x18, 0x06,
+       0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 
0x0a, 0x09, 0x42, 0x79,
+       0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 
0x05, 0x52, 0x09, 0x42,
+       0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x41, 0x0a, 0x09, 
0x4f, 0x70, 0x43, 0x6f,
+       0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 
0x23, 0x2e, 0x6f, 0x72,
+       0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 
0x61, 0x76, 0x61, 0x74,
+       0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 
0x74, 0x65, 0x78, 0x74,
+       0x52, 0x09, 0x4f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 
0xe6, 0x01, 0x0a, 0x08,
+       0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x12, 0x12, 0x0a, 0x04, 
0x53, 0x69, 0x7a, 0x65,
+       0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 
0x12, 0x14, 0x0a, 0x05,
+       0x4e, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 
0x05, 0x4e, 0x6c, 0x69,
+       0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x6f, 
0x64, 0x65, 0x18, 0x03,
+       0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x6f, 
0x64, 0x65, 0x12, 0x30,
+       0x0a, 0x05, 0x41, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 
0x0b, 0x32, 0x1a, 0x2e,
+       0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 
0x62, 0x75, 0x66, 0x2e,
+       0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x41, 
0x74, 0x69, 0x6d, 0x65,
+       0x12, 0x30, 0x0a, 0x05, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 
0x01, 0x28, 0x0b, 0x32,
+       0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 
0x74, 0x6f, 0x62, 0x75,
+       0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 
0x05, 0x4d, 0x74, 0x69,
+       0x6d, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x43, 0x74, 0x69, 0x6d, 0x65, 0x18, 
0x06, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 
0x72, 0x6f, 0x74, 0x6f,
+       0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 
0x70, 0x52, 0x05, 0x43,
+       0x74, 0x69, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 
0x46, 0x73, 0x52, 0x65,
        0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 
0x01, 0x28, 0x09, 0x52,
-       0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 
0x74, 0x65, 0x78, 0x74,
-       0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 
0x52, 0x50, 0x43, 0x43,
+       0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 
0x74, 0x65, 0x78, 0x74,
+       0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 
0x2e, 0x61, 0x70, 0x61,
+       0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 
0x2e, 0x66, 0x75, 0x73,
+       0x65, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 
0x52, 0x07, 0x43, 0x6f,
+       0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x61, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 
0x65, 0x49, 0x6e, 0x66,
+       0x6f, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 
0x18, 0x01, 0x20, 0x01,
+       0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 
0x43, 0x6f, 0x6e, 0x74,
+       0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 
0x6f, 0x72, 0x67, 0x2e,
+       0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 
0x61, 0x74, 0x61, 0x2e,
+       0x66, 0x75, 0x73, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 
0x65, 0x78, 0x74, 0x52,
+       0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x60, 0x0a, 0x0a, 
0x4f, 0x70, 0x65, 0x6e,
+       0x44, 0x69, 0x72, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 
0x6d, 0x65, 0x18, 0x01,
+       0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 
0x0a, 0x07, 0x43, 0x6f,
+       0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 
0x24, 0x2e, 0x6f, 0x72,
+       0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 
0x61, 0x76, 0x61, 0x74,
+       0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
+       0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x61, 
0x0a, 0x0b, 0x4f, 0x70,
+       0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 
0x04, 0x4e, 0x61, 0x6d,
+       0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 
0x65, 0x12, 0x3e, 0x0a,
+       0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 
0x28, 0x0b, 0x32, 0x24,
+       0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 
0x61, 0x69, 0x72, 0x61,
+       0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x52, 0x50, 
0x43, 0x43, 0x6f, 0x6e,
+       0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 
0x74, 0x22, 0x60, 0x0a,
+       0x0a, 0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x52, 0x65, 0x71, 0x12, 
0x12, 0x0a, 0x04, 0x4e,
+       0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 
0x61, 0x6d, 0x65, 0x12,
+       0x3e, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 
0x20, 0x01, 0x28, 0x0b,
+       0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 
0x65, 0x2e, 0x61, 0x69,
+       0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 
0x52, 0x50, 0x43, 0x43,
        0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 
0x65, 0x78, 0x74, 0x22,
-       0x78, 0x0a, 0x0c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 
0x52, 0x65, 0x71, 0x12,
-       0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 
0x09, 0x52, 0x04, 0x4e,
-       0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 
0x78, 0x74, 0x18, 0x02,
-       0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 
0x43, 0x43, 0x6f, 0x6e,
-       0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 
0x74, 0x12, 0x12, 0x0a,
-       0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 
0x04, 0x44, 0x61, 0x74,
-       0x61, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 
0x04, 0x20, 0x01, 0x28,
-       0x03, 0x52, 0x06, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xa0, 0x02, 
0x0a, 0x0e, 0x53, 0x65,
-       0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x52, 0x65, 0x71, 
0x12, 0x12, 0x0a, 0x04,
-       0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 
0x4e, 0x61, 0x6d, 0x65,
-       0x12, 0x28, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 
0x02, 0x20, 0x01, 0x28,
-       0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
+       0x61, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 
0x65, 0x71, 0x12, 0x12,
+       0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 
0x52, 0x04, 0x4e, 0x61,
+       0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 
0x74, 0x18, 0x02, 0x20,
+       0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 
0x61, 0x63, 0x68, 0x65,
+       0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 
0x73, 0x65, 0x2e, 0x52,
+       0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x43, 
0x6f, 0x6e, 0x74, 0x65,
+       0x78, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x57, 0x72, 0x69, 0x74, 0x65, 
0x46, 0x69, 0x6c, 0x65,
+       0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 
0x01, 0x20, 0x01, 0x28,
+       0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x43, 
0x6f, 0x6e, 0x74, 0x65,
+       0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 
0x72, 0x67, 0x2e, 0x61,
+       0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 
0x74, 0x61, 0x2e, 0x66,
+       0x75, 0x73, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 
0x78, 0x74, 0x52, 0x07,
+       0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 
0x61, 0x74, 0x61, 0x18,
+       0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 
0x16, 0x0a, 0x06, 0x4f,
+       0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 
0x06, 0x4f, 0x66, 0x66,
+       0x73, 0x65, 0x74, 0x22, 0xb6, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
+       0x41, 0x74, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 
0x6d, 0x65, 0x18, 0x01,
+       0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 
0x0a, 0x07, 0x43, 0x6f,
+       0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 
0x24, 0x2e, 0x6f, 0x72,
+       0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 
0x61, 0x76, 0x61, 0x74,
+       0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 
0x6e, 0x74, 0x65, 0x78,
        0x74, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, 
0x0a, 0x04, 0x53, 0x69,
        0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 
0x53, 0x69, 0x7a, 0x65,
        0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4d, 
0x6f, 0x64, 0x65, 0x18,
@@ -1779,59 +1813,91 @@ var file_proto_grpcfs_proto_rawDesc = []byte{
        0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x05, 0x4d, 0x54, 
0x69, 0x6d, 0x65, 0x88,
        0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x53, 0x69, 0x7a, 0x65, 0x42, 
0x0b, 0x0a, 0x09, 0x5f,
        0x46, 0x69, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x08, 0x0a, 0x06, 
0x5f, 0x41, 0x54, 0x69,
-       0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x4d, 0x54, 0x69, 0x6d, 0x65, 
0x22, 0x2f, 0x0a, 0x09,
-       0x53, 0x74, 0x61, 0x74, 0x46, 0x73, 0x52, 0x65, 0x73, 0x12, 0x22, 0x0a, 
0x06, 0x52, 0x65, 0x73,
-       0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 
0x70, 0x62, 0x2e, 0x53,
-       0x74, 0x61, 0x74, 0x46, 0x73, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 
0x74, 0x22, 0x33, 0x0a,
-       0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 
0x12, 0x24, 0x0a, 0x06,
-       0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 
0x32, 0x0c, 0x2e, 0x70,
-       0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 
0x52, 0x65, 0x73, 0x75,
-       0x6c, 0x74, 0x22, 0x33, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 
0x72, 0x52, 0x65, 0x73,
-       0x12, 0x25, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x0b,
-       0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 
0x44, 0x69, 0x72, 0x52,
-       0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x35, 0x0a, 0x0b, 0x4f, 
0x70, 0x65, 0x6e, 0x46,
-       0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x52, 0x65, 
0x73, 0x75, 0x6c, 0x74,
-       0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 
0x4f, 0x70, 0x65, 0x6e,
-       0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 
0x6c, 0x74, 0x22, 0x32,
-       0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x52, 0x65, 0x73, 
0x12, 0x24, 0x0a, 0x06,
-       0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 
0x32, 0x0c, 0x2e, 0x70,
-       0x62, 0x2e, 0x44, 0x69, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 
0x52, 0x65, 0x73, 0x75,
-       0x6c, 0x74, 0x22, 0x34, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 
0x6c, 0x65, 0x52, 0x65,
-       0x73, 0x12, 0x25, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 
0x01, 0x20, 0x01, 0x28,
-       0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x45, 
0x6e, 0x74, 0x72, 0x79,
-       0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x26, 0x0a, 0x0c, 
0x57, 0x72, 0x69, 0x74,
-       0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 
0x52, 0x65, 0x73, 0x75,
-       0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x52, 0x65, 
0x73, 0x75, 0x6c, 0x74,
-       0x22, 0x36, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 
0x41, 0x74, 0x74, 0x52,
-       0x65, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 
0x18, 0x01, 0x20, 0x01,
-       0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x6f, 0x64, 
0x65, 0x41, 0x74, 0x74,
-       0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0x8d, 0x03, 0x0a, 
0x0b, 0x46, 0x75, 0x73,
-       0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x06, 
0x53, 0x74, 0x61, 0x74,
-       0x46, 0x73, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 
0x46, 0x73, 0x52, 0x65,
-       0x71, 0x1a, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 
0x73, 0x52, 0x65, 0x73,
-       0x22, 0x00, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 
0x66, 0x6f, 0x12, 0x0f,
-       0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 
0x52, 0x65, 0x71, 0x1a,
-       0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 
0x6f, 0x52, 0x65, 0x73,
-       0x22, 0x00, 0x12, 0x2b, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 
0x72, 0x12, 0x0e, 0x2e,
-       0x70, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x72, 0x52, 0x65, 
0x71, 0x1a, 0x0e, 0x2e,
-       0x70, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x72, 0x52, 0x65, 
0x73, 0x22, 0x00, 0x12,
-       0x2e, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 
0x0f, 0x2e, 0x70, 0x62,
-       0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 
0x1a, 0x0f, 0x2e, 0x70,
-       0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 
0x73, 0x22, 0x00, 0x12,
-       0x2b, 0x0a, 0x07, 0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x12, 0x0e, 
0x2e, 0x70, 0x62, 0x2e,
-       0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 
0x2e, 0x70, 0x62, 0x2e,
-       0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x52, 0x65, 0x73, 0x22, 0x00, 
0x12, 0x2e, 0x0a, 0x08,
-       0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0f, 0x2e, 0x70, 
0x62, 0x2e, 0x52, 0x65,
-       0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 
0x70, 0x62, 0x2e, 0x52,
-       0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x22, 0x00, 
0x12, 0x31, 0x0a, 0x09,
-       0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x2e, 
0x70, 0x62, 0x2e, 0x57,
-       0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 
0x10, 0x2e, 0x70, 0x62,
-       0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 
0x73, 0x22, 0x00, 0x12,
-       0x37, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 
0x74, 0x74, 0x12, 0x12,
-       0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 
0x41, 0x74, 0x74, 0x52,
-       0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
-       0x41, 0x74, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x42, 0x0b, 0x5a, 0x09, 
0x67, 0x72, 0x70, 0x63,
-       0x66, 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 
0x33,
+       0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x4d, 0x54, 0x69, 0x6d, 0x65, 
0x22, 0x45, 0x0a, 0x09,
+       0x53, 0x74, 0x61, 0x74, 0x46, 0x73, 0x52, 0x65, 0x73, 0x12, 0x38, 0x0a, 
0x06, 0x52, 0x65, 0x73,
+       0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 
0x6f, 0x72, 0x67, 0x2e,
+       0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 
0x61, 0x74, 0x61, 0x2e,
+       0x66, 0x75, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x73, 0x52, 
0x06, 0x52, 0x65, 0x73,
+       0x75, 0x6c, 0x74, 0x22, 0x49, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 
0x6e, 0x66, 0x6f, 0x52,
+       0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 
0x18, 0x01, 0x20, 0x01,
+       0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 
0x63, 0x68, 0x65, 0x2e,
+       0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 
0x65, 0x2e, 0x46, 0x69,
+       0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 
0x6c, 0x74, 0x22, 0x49,
+       0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x72, 0x52, 0x65, 0x73, 
0x12, 0x3b, 0x0a, 0x06,
+       0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 
0x32, 0x23, 0x2e, 0x6f,
+       0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 
0x72, 0x61, 0x76, 0x61,
+       0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 
0x65, 0x64, 0x44, 0x69,
+       0x72, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b, 0x0a, 
0x0b, 0x4f, 0x70, 0x65,
+       0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x06, 
0x52, 0x65, 0x73, 0x75,
+       0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 
0x72, 0x67, 0x2e, 0x61,
+       0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 
0x74, 0x61, 0x2e, 0x66,
+       0x75, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x46, 0x69, 
0x6c, 0x65, 0x52, 0x06,
+       0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x48, 0x0a, 0x0a, 0x52, 0x65, 
0x61, 0x64, 0x44, 0x69,
+       0x72, 0x52, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 
0x6c, 0x74, 0x18, 0x01,
+       0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 
0x70, 0x61, 0x63, 0x68,
+       0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 
0x75, 0x73, 0x65, 0x2e,
+       0x44, 0x69, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 
0x73, 0x75, 0x6c, 0x74,
+       0x22, 0x4a, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 
0x52, 0x65, 0x73, 0x12,
+       0x3b, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 
0x01, 0x28, 0x0b, 0x32,
+       0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 
0x2e, 0x61, 0x69, 0x72,
+       0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x46, 
0x69, 0x6c, 0x65, 0x45,
+       0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 
0x22, 0x26, 0x0a, 0x0c,
+       0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 
0x12, 0x16, 0x0a, 0x06,
+       0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 
0x52, 0x06, 0x52, 0x65,
+       0x73, 0x75, 0x6c, 0x74, 0x22, 0x4c, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
+       0x41, 0x74, 0x74, 0x52, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 
0x73, 0x75, 0x6c, 0x74,
+       0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 
0x2e, 0x61, 0x70, 0x61,
+       0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 
0x2e, 0x66, 0x75, 0x73,
+       0x65, 0x2e, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x52, 0x06, 
0x52, 0x65, 0x73, 0x75,
+       0x6c, 0x74, 0x32, 0xed, 0x05, 0x0a, 0x0b, 0x46, 0x75, 0x73, 0x65, 0x53, 
0x65, 0x72, 0x76, 0x69,
+       0x63, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x46, 0x73, 
0x12, 0x23, 0x2e, 0x6f,
+       0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 
0x72, 0x61, 0x76, 0x61,
+       0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 
0x46, 0x73, 0x52, 0x65,
+       0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 
0x68, 0x65, 0x2e, 0x61,
+       0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 
0x2e, 0x53, 0x74, 0x61,
+       0x74, 0x46, 0x73, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x08, 
0x46, 0x69, 0x6c, 0x65,
+       0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 
0x70, 0x61, 0x63, 0x68,
+       0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 
0x75, 0x73, 0x65, 0x2e,
+       0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 
0x25, 0x2e, 0x6f, 0x72,
+       0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 
0x61, 0x76, 0x61, 0x74,
+       0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 
0x6e, 0x66, 0x6f, 0x52,
+       0x65, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 
0x44, 0x69, 0x72, 0x12,
+       0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 
0x2e, 0x61, 0x69, 0x72,
+       0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x4f, 
0x70, 0x65, 0x6e, 0x44,
+       0x69, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 
0x61, 0x70, 0x61, 0x63,
+       0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 
0x66, 0x75, 0x73, 0x65,
+       0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x72, 0x52, 0x65, 0x73, 0x22, 
0x00, 0x12, 0x5a, 0x0a,
+       0x08, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x2e, 
0x6f, 0x72, 0x67, 0x2e,
+       0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 
0x61, 0x74, 0x61, 0x2e,
+       0x66, 0x75, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 
0x65, 0x52, 0x65, 0x71,
+       0x1a, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 
0x65, 0x2e, 0x61, 0x69,
+       0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 
0x4f, 0x70, 0x65, 0x6e,
+       0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 
0x07, 0x52, 0x65, 0x61,
+       0x64, 0x44, 0x69, 0x72, 0x12, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 
0x70, 0x61, 0x63, 0x68,
+       0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 
0x75, 0x73, 0x65, 0x2e,
+       0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x24, 
0x2e, 0x6f, 0x72, 0x67,
+       0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 
0x76, 0x61, 0x74, 0x61,
+       0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x69, 
0x72, 0x52, 0x65, 0x73,
+       0x22, 0x00, 0x12, 0x5a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 
0x6c, 0x65, 0x12, 0x25,
+       0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 
0x61, 0x69, 0x72, 0x61,
+       0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x52, 0x65, 
0x61, 0x64, 0x46, 0x69,
+       0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 
0x61, 0x70, 0x61, 0x63,
+       0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 
0x66, 0x75, 0x73, 0x65,
+       0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 
0x22, 0x00, 0x12, 0x5d,
+       0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 
0x26, 0x2e, 0x6f, 0x72,
+       0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 
0x61, 0x76, 0x61, 0x74,
+       0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 
0x46, 0x69, 0x6c, 0x65,
+       0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 
0x61, 0x63, 0x68, 0x65,
+       0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 0x2e, 0x66, 0x75, 
0x73, 0x65, 0x2e, 0x57,
+       0x72, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x22, 
0x00, 0x12, 0x63, 0x0a,
+       0x0b, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 
0x12, 0x28, 0x2e, 0x6f,
+       0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 
0x72, 0x61, 0x76, 0x61,
+       0x74, 0x61, 0x2e, 0x66, 0x75, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x49, 
0x6e, 0x6f, 0x64, 0x65,
+       0x41, 0x74, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x6f, 0x72, 0x67, 
0x2e, 0x61, 0x70, 0x61,
+       0x63, 0x68, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x61, 0x76, 0x61, 0x74, 0x61, 
0x2e, 0x66, 0x75, 0x73,
+       0x65, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x74, 
0x74, 0x52, 0x65, 0x73,
+       0x22, 0x00, 0x42, 0x0b, 0x5a, 0x09, 0x67, 0x72, 0x70, 0x63, 0x66, 0x73, 
0x2f, 0x70, 0x62, 0x62,
+       0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -1848,75 +1914,75 @@ func file_proto_grpcfs_proto_rawDescGZIP() []byte {
 
 var file_proto_grpcfs_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
 var file_proto_grpcfs_proto_goTypes = []any{
-       (*RPCContext)(nil),            // 0: pb.RPCContext
-       (*OpContext)(nil),             // 1: pb.OpContext
-       (*StatFs)(nil),                // 2: pb.StatFs
-       (*FileInfo)(nil),              // 3: pb.FileInfo
-       (*OpenedDir)(nil),             // 4: pb.OpenedDir
-       (*OpenedFile)(nil),            // 5: pb.OpenedFile
-       (*DirEntry)(nil),              // 6: pb.DirEntry
-       (*FileEntry)(nil),             // 7: pb.FileEntry
-       (*InodeAtt)(nil),              // 8: pb.InodeAtt
-       (*StatFsReq)(nil),             // 9: pb.StatFsReq
-       (*FileInfoReq)(nil),           // 10: pb.FileInfoReq
-       (*OpenDirReq)(nil),            // 11: pb.OpenDirReq
-       (*OpenFileReq)(nil),           // 12: pb.OpenFileReq
-       (*ReadDirReq)(nil),            // 13: pb.ReadDirReq
-       (*ReadFileReq)(nil),           // 14: pb.ReadFileReq
-       (*WriteFileReq)(nil),          // 15: pb.WriteFileReq
-       (*SetInodeAttReq)(nil),        // 16: pb.SetInodeAttReq
-       (*StatFsRes)(nil),             // 17: pb.StatFsRes
-       (*FileInfoRes)(nil),           // 18: pb.FileInfoRes
-       (*OpenDirRes)(nil),            // 19: pb.OpenDirRes
-       (*OpenFileRes)(nil),           // 20: pb.OpenFileRes
-       (*ReadDirRes)(nil),            // 21: pb.ReadDirRes
-       (*ReadFileRes)(nil),           // 22: pb.ReadFileRes
-       (*WriteFileRes)(nil),          // 23: pb.WriteFileRes
-       (*SetInodeAttRes)(nil),        // 24: pb.SetInodeAttRes
+       (*RPCContext)(nil),            // 0: org.apache.airavata.fuse.RPCContext
+       (*OpContext)(nil),             // 1: org.apache.airavata.fuse.OpContext
+       (*StatFs)(nil),                // 2: org.apache.airavata.fuse.StatFs
+       (*FileInfo)(nil),              // 3: org.apache.airavata.fuse.FileInfo
+       (*OpenedDir)(nil),             // 4: org.apache.airavata.fuse.OpenedDir
+       (*OpenedFile)(nil),            // 5: org.apache.airavata.fuse.OpenedFile
+       (*DirEntry)(nil),              // 6: org.apache.airavata.fuse.DirEntry
+       (*FileEntry)(nil),             // 7: org.apache.airavata.fuse.FileEntry
+       (*InodeAtt)(nil),              // 8: org.apache.airavata.fuse.InodeAtt
+       (*StatFsReq)(nil),             // 9: org.apache.airavata.fuse.StatFsReq
+       (*FileInfoReq)(nil),           // 10: 
org.apache.airavata.fuse.FileInfoReq
+       (*OpenDirReq)(nil),            // 11: 
org.apache.airavata.fuse.OpenDirReq
+       (*OpenFileReq)(nil),           // 12: 
org.apache.airavata.fuse.OpenFileReq
+       (*ReadDirReq)(nil),            // 13: 
org.apache.airavata.fuse.ReadDirReq
+       (*ReadFileReq)(nil),           // 14: 
org.apache.airavata.fuse.ReadFileReq
+       (*WriteFileReq)(nil),          // 15: 
org.apache.airavata.fuse.WriteFileReq
+       (*SetInodeAttReq)(nil),        // 16: 
org.apache.airavata.fuse.SetInodeAttReq
+       (*StatFsRes)(nil),             // 17: org.apache.airavata.fuse.StatFsRes
+       (*FileInfoRes)(nil),           // 18: 
org.apache.airavata.fuse.FileInfoRes
+       (*OpenDirRes)(nil),            // 19: 
org.apache.airavata.fuse.OpenDirRes
+       (*OpenFileRes)(nil),           // 20: 
org.apache.airavata.fuse.OpenFileRes
+       (*ReadDirRes)(nil),            // 21: 
org.apache.airavata.fuse.ReadDirRes
+       (*ReadFileRes)(nil),           // 22: 
org.apache.airavata.fuse.ReadFileRes
+       (*WriteFileRes)(nil),          // 23: 
org.apache.airavata.fuse.WriteFileRes
+       (*SetInodeAttRes)(nil),        // 24: 
org.apache.airavata.fuse.SetInodeAttRes
        (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp
 }
 var file_proto_grpcfs_proto_depIdxs = []int32{
-       25, // 0: pb.FileInfo.ModTime:type_name -> google.protobuf.Timestamp
-       1,  // 1: pb.OpenedDir.OpContext:type_name -> pb.OpContext
-       1,  // 2: pb.OpenedFile.OpContext:type_name -> pb.OpContext
-       3,  // 3: pb.DirEntry.Info:type_name -> pb.FileInfo
-       1,  // 4: pb.FileEntry.OpContext:type_name -> pb.OpContext
-       25, // 5: pb.InodeAtt.Atime:type_name -> google.protobuf.Timestamp
-       25, // 6: pb.InodeAtt.Mtime:type_name -> google.protobuf.Timestamp
-       25, // 7: pb.InodeAtt.Ctime:type_name -> google.protobuf.Timestamp
-       0,  // 8: pb.StatFsReq.Context:type_name -> pb.RPCContext
-       0,  // 9: pb.FileInfoReq.Context:type_name -> pb.RPCContext
-       0,  // 10: pb.OpenDirReq.Context:type_name -> pb.RPCContext
-       0,  // 11: pb.OpenFileReq.Context:type_name -> pb.RPCContext
-       0,  // 12: pb.ReadDirReq.Context:type_name -> pb.RPCContext
-       0,  // 13: pb.ReadFileReq.Context:type_name -> pb.RPCContext
-       0,  // 14: pb.WriteFileReq.Context:type_name -> pb.RPCContext
-       0,  // 15: pb.SetInodeAttReq.Context:type_name -> pb.RPCContext
-       25, // 16: pb.SetInodeAttReq.ATime:type_name -> 
google.protobuf.Timestamp
-       25, // 17: pb.SetInodeAttReq.MTime:type_name -> 
google.protobuf.Timestamp
-       2,  // 18: pb.StatFsRes.Result:type_name -> pb.StatFs
-       3,  // 19: pb.FileInfoRes.Result:type_name -> pb.FileInfo
-       4,  // 20: pb.OpenDirRes.Result:type_name -> pb.OpenedDir
-       5,  // 21: pb.OpenFileRes.Result:type_name -> pb.OpenedFile
-       6,  // 22: pb.ReadDirRes.Result:type_name -> pb.DirEntry
-       7,  // 23: pb.ReadFileRes.Result:type_name -> pb.FileEntry
-       8,  // 24: pb.SetInodeAttRes.Result:type_name -> pb.InodeAtt
-       9,  // 25: pb.FuseService.StatFs:input_type -> pb.StatFsReq
-       10, // 26: pb.FuseService.FileInfo:input_type -> pb.FileInfoReq
-       11, // 27: pb.FuseService.OpenDir:input_type -> pb.OpenDirReq
-       12, // 28: pb.FuseService.OpenFile:input_type -> pb.OpenFileReq
-       13, // 29: pb.FuseService.ReadDir:input_type -> pb.ReadDirReq
-       14, // 30: pb.FuseService.ReadFile:input_type -> pb.ReadFileReq
-       15, // 31: pb.FuseService.WriteFile:input_type -> pb.WriteFileReq
-       16, // 32: pb.FuseService.SetInodeAtt:input_type -> pb.SetInodeAttReq
-       17, // 33: pb.FuseService.StatFs:output_type -> pb.StatFsRes
-       18, // 34: pb.FuseService.FileInfo:output_type -> pb.FileInfoRes
-       19, // 35: pb.FuseService.OpenDir:output_type -> pb.OpenDirRes
-       20, // 36: pb.FuseService.OpenFile:output_type -> pb.OpenFileRes
-       21, // 37: pb.FuseService.ReadDir:output_type -> pb.ReadDirRes
-       22, // 38: pb.FuseService.ReadFile:output_type -> pb.ReadFileRes
-       23, // 39: pb.FuseService.WriteFile:output_type -> pb.WriteFileRes
-       24, // 40: pb.FuseService.SetInodeAtt:output_type -> pb.SetInodeAttRes
+       25, // 0: org.apache.airavata.fuse.FileInfo.ModTime:type_name -> 
google.protobuf.Timestamp
+       1,  // 1: org.apache.airavata.fuse.OpenedDir.OpContext:type_name -> 
org.apache.airavata.fuse.OpContext
+       1,  // 2: org.apache.airavata.fuse.OpenedFile.OpContext:type_name -> 
org.apache.airavata.fuse.OpContext
+       3,  // 3: org.apache.airavata.fuse.DirEntry.Info:type_name -> 
org.apache.airavata.fuse.FileInfo
+       1,  // 4: org.apache.airavata.fuse.FileEntry.OpContext:type_name -> 
org.apache.airavata.fuse.OpContext
+       25, // 5: org.apache.airavata.fuse.InodeAtt.Atime:type_name -> 
google.protobuf.Timestamp
+       25, // 6: org.apache.airavata.fuse.InodeAtt.Mtime:type_name -> 
google.protobuf.Timestamp
+       25, // 7: org.apache.airavata.fuse.InodeAtt.Ctime:type_name -> 
google.protobuf.Timestamp
+       0,  // 8: org.apache.airavata.fuse.StatFsReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 9: org.apache.airavata.fuse.FileInfoReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 10: org.apache.airavata.fuse.OpenDirReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 11: org.apache.airavata.fuse.OpenFileReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 12: org.apache.airavata.fuse.ReadDirReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 13: org.apache.airavata.fuse.ReadFileReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 14: org.apache.airavata.fuse.WriteFileReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       0,  // 15: org.apache.airavata.fuse.SetInodeAttReq.Context:type_name -> 
org.apache.airavata.fuse.RPCContext
+       25, // 16: org.apache.airavata.fuse.SetInodeAttReq.ATime:type_name -> 
google.protobuf.Timestamp
+       25, // 17: org.apache.airavata.fuse.SetInodeAttReq.MTime:type_name -> 
google.protobuf.Timestamp
+       2,  // 18: org.apache.airavata.fuse.StatFsRes.Result:type_name -> 
org.apache.airavata.fuse.StatFs
+       3,  // 19: org.apache.airavata.fuse.FileInfoRes.Result:type_name -> 
org.apache.airavata.fuse.FileInfo
+       4,  // 20: org.apache.airavata.fuse.OpenDirRes.Result:type_name -> 
org.apache.airavata.fuse.OpenedDir
+       5,  // 21: org.apache.airavata.fuse.OpenFileRes.Result:type_name -> 
org.apache.airavata.fuse.OpenedFile
+       6,  // 22: org.apache.airavata.fuse.ReadDirRes.Result:type_name -> 
org.apache.airavata.fuse.DirEntry
+       7,  // 23: org.apache.airavata.fuse.ReadFileRes.Result:type_name -> 
org.apache.airavata.fuse.FileEntry
+       8,  // 24: org.apache.airavata.fuse.SetInodeAttRes.Result:type_name -> 
org.apache.airavata.fuse.InodeAtt
+       9,  // 25: org.apache.airavata.fuse.FuseService.StatFs:input_type -> 
org.apache.airavata.fuse.StatFsReq
+       10, // 26: org.apache.airavata.fuse.FuseService.FileInfo:input_type -> 
org.apache.airavata.fuse.FileInfoReq
+       11, // 27: org.apache.airavata.fuse.FuseService.OpenDir:input_type -> 
org.apache.airavata.fuse.OpenDirReq
+       12, // 28: org.apache.airavata.fuse.FuseService.OpenFile:input_type -> 
org.apache.airavata.fuse.OpenFileReq
+       13, // 29: org.apache.airavata.fuse.FuseService.ReadDir:input_type -> 
org.apache.airavata.fuse.ReadDirReq
+       14, // 30: org.apache.airavata.fuse.FuseService.ReadFile:input_type -> 
org.apache.airavata.fuse.ReadFileReq
+       15, // 31: org.apache.airavata.fuse.FuseService.WriteFile:input_type -> 
org.apache.airavata.fuse.WriteFileReq
+       16, // 32: org.apache.airavata.fuse.FuseService.SetInodeAtt:input_type 
-> org.apache.airavata.fuse.SetInodeAttReq
+       17, // 33: org.apache.airavata.fuse.FuseService.StatFs:output_type -> 
org.apache.airavata.fuse.StatFsRes
+       18, // 34: org.apache.airavata.fuse.FuseService.FileInfo:output_type -> 
org.apache.airavata.fuse.FileInfoRes
+       19, // 35: org.apache.airavata.fuse.FuseService.OpenDir:output_type -> 
org.apache.airavata.fuse.OpenDirRes
+       20, // 36: org.apache.airavata.fuse.FuseService.OpenFile:output_type -> 
org.apache.airavata.fuse.OpenFileRes
+       21, // 37: org.apache.airavata.fuse.FuseService.ReadDir:output_type -> 
org.apache.airavata.fuse.ReadDirRes
+       22, // 38: org.apache.airavata.fuse.FuseService.ReadFile:output_type -> 
org.apache.airavata.fuse.ReadFileRes
+       23, // 39: org.apache.airavata.fuse.FuseService.WriteFile:output_type 
-> org.apache.airavata.fuse.WriteFileRes
+       24, // 40: org.apache.airavata.fuse.FuseService.SetInodeAtt:output_type 
-> org.apache.airavata.fuse.SetInodeAttRes
        33, // [33:41] is the sub-list for method output_type
        25, // [25:33] is the sub-list for method input_type
        25, // [25:25] is the sub-list for extension type_name
diff --git 
a/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs_grpc.pb.go 
b/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs_grpc.pb.go
index 894a1cfd12..df7e06ac18 100644
--- a/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs_grpc.pb.go
+++ b/modules/agent-framework/airavata-fuse/src/grpcfs/pb/grpcfs_grpc.pb.go
@@ -1,7 +1,23 @@
+//
+// 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.
+
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.4.0
-// - protoc             v5.27.1
+// - protoc             v4.24.4
 // source: proto/grpcfs.proto
 
 package pb
@@ -19,14 +35,14 @@ import (
 const _ = grpc.SupportPackageIsVersion8
 
 const (
-       FuseService_StatFs_FullMethodName      = "/pb.FuseService/StatFs"
-       FuseService_FileInfo_FullMethodName    = "/pb.FuseService/FileInfo"
-       FuseService_OpenDir_FullMethodName     = "/pb.FuseService/OpenDir"
-       FuseService_OpenFile_FullMethodName    = "/pb.FuseService/OpenFile"
-       FuseService_ReadDir_FullMethodName     = "/pb.FuseService/ReadDir"
-       FuseService_ReadFile_FullMethodName    = "/pb.FuseService/ReadFile"
-       FuseService_WriteFile_FullMethodName   = "/pb.FuseService/WriteFile"
-       FuseService_SetInodeAtt_FullMethodName = "/pb.FuseService/SetInodeAtt"
+       FuseService_StatFs_FullMethodName      = 
"/org.apache.airavata.fuse.FuseService/StatFs"
+       FuseService_FileInfo_FullMethodName    = 
"/org.apache.airavata.fuse.FuseService/FileInfo"
+       FuseService_OpenDir_FullMethodName     = 
"/org.apache.airavata.fuse.FuseService/OpenDir"
+       FuseService_OpenFile_FullMethodName    = 
"/org.apache.airavata.fuse.FuseService/OpenFile"
+       FuseService_ReadDir_FullMethodName     = 
"/org.apache.airavata.fuse.FuseService/ReadDir"
+       FuseService_ReadFile_FullMethodName    = 
"/org.apache.airavata.fuse.FuseService/ReadFile"
+       FuseService_WriteFile_FullMethodName   = 
"/org.apache.airavata.fuse.FuseService/WriteFile"
+       FuseService_SetInodeAtt_FullMethodName = 
"/org.apache.airavata.fuse.FuseService/SetInodeAtt"
 )
 
 // FuseServiceClient is the client API for FuseService service.
@@ -339,7 +355,7 @@ func _FuseService_SetInodeAtt_Handler(srv interface{}, ctx 
context.Context, dec
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
 var FuseService_ServiceDesc = grpc.ServiceDesc{
-       ServiceName: "pb.FuseService",
+       ServiceName: "org.apache.airavata.fuse.FuseService",
        HandlerType: (*FuseServiceServer)(nil),
        Methods: []grpc.MethodDesc{
                {
diff --git a/modules/agent-framework/airavata-fuse/src/grpcfs_client/main.go 
b/modules/agent-framework/airavata-fuse/src/grpcfs_client/main.go
index 217fcebf7b..d4e8e2e4ab 100644
--- a/modules/agent-framework/airavata-fuse/src/grpcfs_client/main.go
+++ b/modules/agent-framework/airavata-fuse/src/grpcfs_client/main.go
@@ -57,7 +57,7 @@ func main() {
        mountPoint, err := filepath.Abs(mountPoint)
        handleErrIfAny(err, "Invalid mount point")
 
-       server, err := grpcfs.FuseServer("127.0.0.1:50000", servePath, logger)
+       server, err := grpcfs.FuseServer("127.0.0.1:19900", servePath, logger)
        handleErrIfAny(err, "Error starting fuse server")
 
        cfg := &fuse.MountConfig{
diff --git a/modules/agent-framework/airavata-fuse/src/proto/grpcfs.proto 
b/modules/agent-framework/airavata-fuse/src/proto/grpcfs.proto
index 1944780286..10a2d80adc 100644
--- a/modules/agent-framework/airavata-fuse/src/proto/grpcfs.proto
+++ b/modules/agent-framework/airavata-fuse/src/proto/grpcfs.proto
@@ -17,7 +17,7 @@
 
 syntax = "proto3";
 
-package pb;
+package org.apache.airavata.fuse;
 
 import "google/protobuf/timestamp.proto";
 
diff --git 
a/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentHandler.java
 
b/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentHandler.java
index 5bc532c9d7..fc9138c840 100644
--- 
a/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentHandler.java
+++ 
b/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentHandler.java
@@ -224,7 +224,7 @@ public class AgentHandler extends 
AgentCommunicationServiceGrpc.AgentCommunicati
                     case JUPYTEREXECUTIONRESPONSE -> {
                         
handleJupyterExecutionResponse(request.getJupyterExecutionResponse());
                     }
-                    case FILEINFOREQ -> {
+                    case READDIRREQ -> {
                         handleReadDirRequest(request.getReadDirReq(), 
responseObserver);
                     }
                 }
diff --git 
a/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/FuseFSHandler.java
 
b/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/FuseFSHandler.java
new file mode 100644
index 0000000000..c37018d175
--- /dev/null
+++ 
b/modules/agent-framework/connection-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/FuseFSHandler.java
@@ -0,0 +1,112 @@
+package org.apache.airavata.agent.connection.service.handlers;
+
+import com.google.protobuf.ByteString;
+import com.google.protobuf.Timestamp;
+import io.grpc.stub.StreamObserver;
+import net.devh.boot.grpc.server.service.GrpcService;
+import org.apache.airavata.fuse.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.nio.charset.Charset;
+
+@GrpcService
+public class FuseFSHandler extends FuseServiceGrpc.FuseServiceImplBase {
+
+    private final static Logger LOGGER = 
LoggerFactory.getLogger(FuseFSHandler.class);
+
+    @Override
+    public void statFs(StatFsReq request, StreamObserver<StatFsRes> 
responseObserver) {
+        
responseObserver.onNext(StatFsRes.newBuilder().setResult(StatFs.newBuilder()
+                .setBlocks(100)
+                .setBlocksAvailable(100)
+                .setBlocksFree(100)
+                .setInodes(1)
+                .setIoSize(10)
+                .setBlockSize(1000)
+                .build()).build());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void fileInfo(FileInfoReq request, StreamObserver<FileInfoRes> 
responseObserver) {
+        LOGGER.info("Calling fileInfo {}", request.getName());
+
+        File f = new File(request.getName());
+        responseObserver.onNext(FileInfoRes.newBuilder()
+                .setResult(FileInfo.newBuilder()
+                        .setName(request.getName())
+                        .setSize(128)
+                        .setIno(2)
+                        .setIsDir(true)
+                        .setMode(0x777)
+                        
.setModTime(Timestamp.newBuilder().setSeconds(System.currentTimeMillis() / 
1000).build())
+                        .build()).build());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void openDir(OpenDirReq request, StreamObserver<OpenDirRes> 
responseObserver) {
+        LOGGER.info("Calling openDir {}", request.getName());
+        
responseObserver.onNext(OpenDirRes.newBuilder().setResult(OpenedDir.newBuilder().build()).build());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void openFile(OpenFileReq request, StreamObserver<OpenFileRes> 
responseObserver) {
+        LOGGER.info("Calling openFile {}", request.getName());
+        
responseObserver.onNext(OpenFileRes.newBuilder().setResult(OpenedFile.newBuilder().build()).build());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void readDir(ReadDirReq request, StreamObserver<ReadDirRes> 
responseObserver) {
+        LOGGER.info("Calling readDir {}", request.getName());
+        
responseObserver.onNext(ReadDirRes.newBuilder().addResult(DirEntry.newBuilder()
+                .setIsDir(false)
+                .setName("file1")
+                .setFileMode(777)
+                .setInfo(FileInfo.newBuilder()
+                        
.setModTime(Timestamp.newBuilder().setSeconds(System.currentTimeMillis()/1000).build())
+                        .setName("file2")
+                        .setIno(100)
+                        .setSize(12000)
+                        .setIsDir(false)
+                        .setMode(777).build()).build()).build());
+
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void readFile(ReadFileReq request, StreamObserver<ReadFileRes> 
responseObserver) {
+        LOGGER.info("Calling readFile {}", request.getName());
+        responseObserver.onNext(ReadFileRes.newBuilder()
+                .setResult(FileEntry.newBuilder()
+                        .setDst(ByteString.copyFrom("Hellllo", 
Charset.defaultCharset())).build()).build());
+
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void writeFile(WriteFileReq request, StreamObserver<WriteFileRes> 
responseObserver) {
+        LOGGER.info("Calling writeFile {}", request.getName());
+        
responseObserver.onNext(WriteFileRes.newBuilder().setResult(true).build());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void setInodeAtt(SetInodeAttReq request, 
StreamObserver<SetInodeAttRes> responseObserver) {
+        LOGGER.info("Calling setInodeAtt {}", request.getName());
+
+        
responseObserver.onNext(SetInodeAttRes.newBuilder().setResult(InodeAtt.newBuilder()
+                
.setAtime(Timestamp.newBuilder().setSeconds(System.currentTimeMillis()/ 
1000).build())
+                
.setCtime(Timestamp.newBuilder().setSeconds(System.currentTimeMillis()/ 
1000).build())
+                
.setMtime(Timestamp.newBuilder().setSeconds(System.currentTimeMillis()/ 
1000).build())
+                        .setFileMode(777)
+                        .setSize(10800)
+                .build()).build());
+
+        responseObserver.onCompleted();
+    }
+}

Reply via email to