From 8d1b4abe872c2fc0a8f1734f12d2b09512c93c05 Mon Sep 17 00:00:00 2001 From: Giuseppe Lo Presti Date: Fri, 30 Aug 2024 15:50:25 +0200 Subject: [PATCH] Pass lock metadata on uploads + use upstream EOS GRPC bindings (#4514) --- changelog/unreleased/locks-uploads.md | 6 + go.mod | 1 + go.sum | 2 + .../storageprovider/storageprovider.go | 4 +- internal/http/services/owncloud/ocdav/put.go | 6 + .../http/services/owncloud/ocdav/webdav.go | 2 + pkg/eosclient/eosbinary/eosbinary.go | 45 +- pkg/eosclient/eosclient.go | 11 +- pkg/eosclient/eosgrpc/eos_grpc/README.protoc | 10 - pkg/eosclient/eosgrpc/eos_grpc/Rpc.pb.go | 5281 ----------------- pkg/eosclient/eosgrpc/eos_grpc/Rpc.proto | 604 -- pkg/eosclient/eosgrpc/eosgrpc.go | 121 +- pkg/eosclient/eosgrpc/eoshttp.go | 15 +- pkg/errtypes/errtypes.go | 8 + pkg/ocm/storage/outcoming/ocm.go | 20 +- pkg/ocm/storage/received/ocm.go | 2 +- pkg/rhttp/datatx/manager/simple/simple.go | 12 +- pkg/rhttp/datatx/manager/spaces/spaces.go | 13 +- pkg/storage/fs/cephfs/upload.go | 4 +- pkg/storage/fs/nextcloud/nextcloud.go | 4 +- pkg/storage/fs/nextcloud/nextcloud_test.go | 4 +- pkg/storage/storage.go | 2 +- pkg/storage/utils/eosfs/eosfs.go | 96 +- pkg/storage/utils/eosfs/upload.go | 15 +- pkg/storage/utils/localfs/upload.go | 2 +- tests/helpers/helpers.go | 2 +- 26 files changed, 222 insertions(+), 6070 deletions(-) create mode 100644 changelog/unreleased/locks-uploads.md delete mode 100644 pkg/eosclient/eosgrpc/eos_grpc/README.protoc delete mode 100644 pkg/eosclient/eosgrpc/eos_grpc/Rpc.pb.go delete mode 100644 pkg/eosclient/eosgrpc/eos_grpc/Rpc.proto diff --git a/changelog/unreleased/locks-uploads.md b/changelog/unreleased/locks-uploads.md new file mode 100644 index 0000000000..0c66fca473 --- /dev/null +++ b/changelog/unreleased/locks-uploads.md @@ -0,0 +1,6 @@ +Enhancement: Pass lock holder metadata on uploads + +We now pass relevant metadata (lock id and lock holder) downstream +on uploads, and handle the case of conflicts due to lock mismatch. + +https://github.com/cs3org/reva/pull/4514 diff --git a/go.mod b/go.mod index 4a26493062..9f87d088bd 100644 --- a/go.mod +++ b/go.mod @@ -72,6 +72,7 @@ require ( github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bmizerany/pat v0.0.0-20210406213842-e4b6760bdd6f // indirect + github.com/cern-eos/go-eosgrpc v0.0.0-20240812132646-f105d2304f38 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 78ba809f8d..df4c32ac7d 100644 --- a/go.sum +++ b/go.sum @@ -848,6 +848,8 @@ github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/ceph/go-ceph v0.26.0 h1:LZoATo25ZH5aeL5t85BwIbrNLKCDfcDM+e0qV0cmwHY= github.com/ceph/go-ceph v0.26.0/go.mod h1:ISxb295GszZwtLPkeWi+L2uLYBVsqbsh0M104jZMOX4= +github.com/cern-eos/go-eosgrpc v0.0.0-20240812132646-f105d2304f38 h1:+81ss4Vut1khzEhl7ximWF/V+EadspY47V4JrQkwlI4= +github.com/cern-eos/go-eosgrpc v0.0.0-20240812132646-f105d2304f38/go.mod h1:ZiIzbg4sDO2MwYlspcnauUR2dfwZHUzxker+HP9k+20= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= diff --git a/internal/grpc/services/storageprovider/storageprovider.go b/internal/grpc/services/storageprovider/storageprovider.go index bad19304f1..fe90c334b4 100644 --- a/internal/grpc/services/storageprovider/storageprovider.go +++ b/internal/grpc/services/storageprovider/storageprovider.go @@ -284,10 +284,10 @@ func (s *service) SetLock(ctx context.Context, req *provider.SetLockRequest) (*p var st *rpc.Status switch err.(type) { case errtypes.IsNotFound: - st = status.NewNotFound(ctx, "path not found when setting lock") + st = status.NewNotFound(ctx, "resource not found when setting lock") case errtypes.PermissionDenied: st = status.NewPermissionDenied(ctx, err, "permission denied") - case errtypes.BadRequest: + case errtypes.Conflict: st = status.NewFailedPrecondition(ctx, err, "reference already locked") default: st = status.NewInternal(ctx, err, "error setting lock: "+req.Ref.String()) diff --git a/internal/http/services/owncloud/ocdav/put.go b/internal/http/services/owncloud/ocdav/put.go index b813244fb0..e9a000b1bf 100644 --- a/internal/http/services/owncloud/ocdav/put.go +++ b/internal/http/services/owncloud/ocdav/put.go @@ -271,6 +271,12 @@ func (s *svc) handlePut(ctx context.Context, w http.ResponseWriter, r *http.Requ return } httpReq.Header.Set(datagateway.TokenTransportHeader, token) + if lockid := r.Header.Get(HeaderLockID); lockid != "" { + httpReq.Header.Set(HeaderLockID, lockid) + } + if lockholder := r.Header.Get(HeaderLockHolder); lockholder != "" { + httpReq.Header.Set(HeaderLockHolder, lockholder) + } httpRes, err := s.client.Do(httpReq) if err != nil { diff --git a/internal/http/services/owncloud/ocdav/webdav.go b/internal/http/services/owncloud/ocdav/webdav.go index 60ad87fdbf..06a1480156 100644 --- a/internal/http/services/owncloud/ocdav/webdav.go +++ b/internal/http/services/owncloud/ocdav/webdav.go @@ -76,6 +76,8 @@ const ( HeaderOCMtime = "X-OC-Mtime" HeaderExpectedEntityLength = "X-Expected-Entity-Length" HeaderTransferAuth = "TransferHeaderAuthorization" + HeaderLockID = "X-Lock-Id" + HeaderLockHolder = "X-Lock-Holder" ) // WebDavHandler implements a dav endpoint. diff --git a/pkg/eosclient/eosbinary/eosbinary.go b/pkg/eosclient/eosbinary/eosbinary.go index ecdf8f4f51..10189b7daf 100644 --- a/pkg/eosclient/eosbinary/eosbinary.go +++ b/pkg/eosclient/eosbinary/eosbinary.go @@ -203,6 +203,11 @@ func (c *Client) executeXRDCopy(ctx context.Context, cmdArgs []string) (string, err = errtypes.InvalidCredentials("eosclient: no sufficient permissions for the operation") } + // check for lock mismatch error + if strings.Contains(errBuf.String(), "file has a valid extended attribute lock") { + err = errtypes.Conflict("eosclient: lock mismatch") + } + args := fmt.Sprintf("%s", cmd.Args) env := fmt.Sprintf("%s", cmd.Env) log.Info().Str("args", args).Str("env", env).Int("exit", exitStatus).Msg("eos cmd") @@ -455,7 +460,7 @@ func (c *Client) mergeACLsAndAttrsForFiles(ctx context.Context, auth eosclient.A } // SetAttr sets an extended attributes on a path. -func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, errorIfExists, recursive bool, path string) error { +func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, errorIfExists, recursive bool, path, app string) error { if !isValidAttribute(attr) { return errors.New("eos: attr is invalid: " + serializeAttribute(attr)) } @@ -468,11 +473,15 @@ func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr } return c.handleFavAttr(ctx, auth, attr, recursive, path, info, true) } - return c.setEOSAttr(ctx, auth, attr, errorIfExists, recursive, path) + return c.setEOSAttr(ctx, auth, attr, errorIfExists, recursive, path, app) } -func (c *Client) setEOSAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, errorIfExists, recursive bool, path string) error { - args := []string{"attr"} +func (c *Client) setEOSAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, errorIfExists, recursive bool, path, app string) error { + args := []string{} + if app != "" { + args = append(args, "-a", app) + } + args = append(args, "attr") if recursive { args = append(args, "-r") } @@ -485,9 +494,12 @@ func (c *Client) setEOSAttr(ctx context.Context, auth eosclient.Authorization, a _, _, err := c.executeEOS(ctx, args, auth) if err != nil { var exErr *exec.ExitError - if errors.As(err, &exErr) && exErr.ExitCode() == 17 { + if errors.As(err, &exErr) && exErr.ExitCode() == 17 { // EEXIST return eosclient.AttrAlreadyExistsError } + if errors.As(err, &exErr) && exErr.ExitCode() == 16 { // EBUSY -> Locked + return eosclient.FileIsLockedError + } return err } return nil @@ -516,11 +528,11 @@ func (c *Client) handleFavAttr(ctx context.Context, auth eosclient.Authorization favs.DeleteEntry(acl.TypeUser, u.Id.OpaqueId) } attr.Val = favs.Serialize() - return c.setEOSAttr(ctx, auth, attr, false, recursive, path) + return c.setEOSAttr(ctx, auth, attr, false, recursive, path, "") } // UnsetAttr unsets an extended attribute on a path. -func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, recursive bool, path string) error { +func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, recursive bool, path, app string) error { if !isValidAttribute(attr) { return errors.New("eos: attr is invalid: " + serializeAttribute(attr)) } @@ -536,11 +548,15 @@ func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, at } var args []string + if app != "" { + args = append(args, "-a", app) + } + args = append(args, "attr") if recursive { - args = []string{"attr", "-r", "rm", fmt.Sprintf("%s.%s", attrTypeToString(attr.Type), attr.Key), path} - } else { - args = []string{"attr", "rm", fmt.Sprintf("%s.%s", attrTypeToString(attr.Type), attr.Key), path} + args = append(args, "-r") } + args = append(args, "rm", fmt.Sprintf("%s.%s", attrTypeToString(attr.Type), attr.Key), path) + _, _, err = c.executeEOS(ctx, args, auth) if err != nil { var exErr *exec.ExitError @@ -707,7 +723,7 @@ func (c *Client) Read(ctx context.Context, auth eosclient.Authorization, path st } // Write writes a stream to the mgm. -func (c *Client) Write(ctx context.Context, auth eosclient.Authorization, path string, stream io.ReadCloser) error { +func (c *Client) Write(ctx context.Context, auth eosclient.Authorization, path string, stream io.ReadCloser, app string) error { fd, err := os.CreateTemp(c.opt.CacheDirectory, "eoswrite-") if err != nil { return err @@ -720,19 +736,18 @@ func (c *Client) Write(ctx context.Context, auth eosclient.Authorization, path s if err != nil { return err } - - return c.WriteFile(ctx, auth, path, fd.Name()) + return c.writeFile(ctx, auth, path, fd.Name(), app) } // WriteFile writes an existing file to the mgm. -func (c *Client) WriteFile(ctx context.Context, auth eosclient.Authorization, path, source string) error { +func (c *Client) writeFile(ctx context.Context, auth eosclient.Authorization, path, source, app string) error { xrdPath := fmt.Sprintf("%s//%s", c.opt.URL, path) args := []string{"--nopbar", "--silent", "-f", source, xrdPath} if auth.Token != "" { args[4] += "?authz=" + auth.Token } else if auth.Role.UID != "" && auth.Role.GID != "" { - args = append(args, fmt.Sprintf("-ODeos.ruid=%s&eos.rgid=%s&eos.app=reva_eosclient::write", auth.Role.UID, auth.Role.GID)) + args = append(args, fmt.Sprintf("-ODeos.ruid=%s&eos.rgid=%s&eos.app=%s", auth.Role.UID, auth.Role.GID, app)) } _, _, err := c.executeXRDCopy(ctx, args) diff --git a/pkg/eosclient/eosclient.go b/pkg/eosclient/eosclient.go index 0cc28d5705..bbbf31a428 100644 --- a/pkg/eosclient/eosclient.go +++ b/pkg/eosclient/eosclient.go @@ -37,8 +37,8 @@ type EOSClient interface { GetFileInfoByInode(ctx context.Context, auth Authorization, inode uint64) (*FileInfo, error) GetFileInfoByFXID(ctx context.Context, auth Authorization, fxid string) (*FileInfo, error) GetFileInfoByPath(ctx context.Context, auth Authorization, path string) (*FileInfo, error) - SetAttr(ctx context.Context, auth Authorization, attr *Attribute, errorIfExists, recursive bool, path string) error - UnsetAttr(ctx context.Context, auth Authorization, attr *Attribute, recursive bool, path string) error + SetAttr(ctx context.Context, auth Authorization, attr *Attribute, errorIfExists, recursive bool, path, app string) error + UnsetAttr(ctx context.Context, auth Authorization, attr *Attribute, recursive bool, path, app string) error GetAttr(ctx context.Context, auth Authorization, key, path string) (*Attribute, error) GetAttrs(ctx context.Context, auth Authorization, path string) ([]*Attribute, error) GetQuota(ctx context.Context, username string, rootAuth Authorization, path string) (*QuotaInfo, error) @@ -51,8 +51,7 @@ type EOSClient interface { Rename(ctx context.Context, auth Authorization, oldPath, newPath string) error List(ctx context.Context, auth Authorization, path string) ([]*FileInfo, error) Read(ctx context.Context, auth Authorization, path string) (io.ReadCloser, error) - Write(ctx context.Context, auth Authorization, path string, stream io.ReadCloser) error - WriteFile(ctx context.Context, auth Authorization, path, source string) error + Write(ctx context.Context, auth Authorization, path string, stream io.ReadCloser, app string) error ListDeletedEntries(ctx context.Context, auth Authorization, maxentries int, from, to time.Time) ([]*DeletedEntry, error) RestoreDeletedEntry(ctx context.Context, auth Authorization, key string) error PurgeDeletedEntries(ctx context.Context, auth Authorization) error @@ -154,3 +153,7 @@ const AttrAlreadyExistsError = errtypes.BadRequest("attr already exists") // AttrNotExistsError is the error raised when removing // an attribute that does not exist. const AttrNotExistsError = errtypes.BadRequest("attr not exists") + +// FileIsLockedError is the error raised when attempting to set a lock +// attribute to an already locked file with a mismatched lock. +const FileIsLockedError = errtypes.BadRequest("file is locked") diff --git a/pkg/eosclient/eosgrpc/eos_grpc/README.protoc b/pkg/eosclient/eosgrpc/eos_grpc/README.protoc deleted file mode 100644 index daaaa67ef7..0000000000 --- a/pkg/eosclient/eosgrpc/eos_grpc/README.protoc +++ /dev/null @@ -1,10 +0,0 @@ -To compile the eos binding into go code: - -protoc --go_out=. ./Rpc.proto -protoc ./Rpc.proto --go_out=plugins=grpc:. - - -NOTE: we have to do this here in order to be sure that a compatible protoc compiler is used. -Having a CI somewhere compiling this does NOT guarantee that the same golang and protoc will be used, -and this has created lots of problems in the past - diff --git a/pkg/eosclient/eosgrpc/eos_grpc/Rpc.pb.go b/pkg/eosclient/eosgrpc/eos_grpc/Rpc.pb.go deleted file mode 100644 index d57d0b2bbd..0000000000 --- a/pkg/eosclient/eosgrpc/eos_grpc/Rpc.pb.go +++ /dev/null @@ -1,5281 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: Rpc.proto - -package eos_grpc - -import ( - context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type TYPE int32 - -const ( - TYPE_FILE TYPE = 0 - TYPE_CONTAINER TYPE = 1 - TYPE_LISTING TYPE = 2 - TYPE_STAT TYPE = 3 -) - -var TYPE_name = map[int32]string{ - 0: "FILE", - 1: "CONTAINER", - 2: "LISTING", - 3: "STAT", -} - -var TYPE_value = map[string]int32{ - "FILE": 0, - "CONTAINER": 1, - "LISTING": 2, - "STAT": 3, -} - -func (x TYPE) String() string { - return proto.EnumName(TYPE_name, int32(x)) -} - -func (TYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{0} -} - -type QUOTATYPE int32 - -const ( - QUOTATYPE_USER QUOTATYPE = 0 - QUOTATYPE_GROUP QUOTATYPE = 2 - QUOTATYPE_PROJECT QUOTATYPE = 3 -) - -var QUOTATYPE_name = map[int32]string{ - 0: "USER", - 2: "GROUP", - 3: "PROJECT", -} - -var QUOTATYPE_value = map[string]int32{ - "USER": 0, - "GROUP": 2, - "PROJECT": 3, -} - -func (x QUOTATYPE) String() string { - return proto.EnumName(QUOTATYPE_name, int32(x)) -} - -func (QUOTATYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{1} -} - -type QUOTAOP int32 - -const ( - QUOTAOP_GET QUOTAOP = 0 - QUOTAOP_SET QUOTAOP = 1 - QUOTAOP_RM QUOTAOP = 2 - QUOTAOP_RMNODE QUOTAOP = 3 -) - -var QUOTAOP_name = map[int32]string{ - 0: "GET", - 1: "SET", - 2: "RM", - 3: "RMNODE", -} - -var QUOTAOP_value = map[string]int32{ - "GET": 0, - "SET": 1, - "RM": 2, - "RMNODE": 3, -} - -func (x QUOTAOP) String() string { - return proto.EnumName(QUOTAOP_name, int32(x)) -} - -func (QUOTAOP) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{2} -} - -type QUOTAENTRY int32 - -const ( - QUOTAENTRY_NONE QUOTAENTRY = 0 - QUOTAENTRY_VOLUME QUOTAENTRY = 1 - QUOTAENTRY_INODE QUOTAENTRY = 2 -) - -var QUOTAENTRY_name = map[int32]string{ - 0: "NONE", - 1: "VOLUME", - 2: "INODE", -} - -var QUOTAENTRY_value = map[string]int32{ - "NONE": 0, - "VOLUME": 1, - "INODE": 2, -} - -func (x QUOTAENTRY) String() string { - return proto.EnumName(QUOTAENTRY_name, int32(x)) -} - -func (QUOTAENTRY) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{3} -} - -type MANILA_REQUEST_TYPE int32 - -const ( - MANILA_REQUEST_TYPE_CREATE_SHARE MANILA_REQUEST_TYPE = 0 - MANILA_REQUEST_TYPE_DELETE_SHARE MANILA_REQUEST_TYPE = 1 - MANILA_REQUEST_TYPE_EXTEND_SHARE MANILA_REQUEST_TYPE = 2 - MANILA_REQUEST_TYPE_SHRINK_SHARE MANILA_REQUEST_TYPE = 3 - MANILA_REQUEST_TYPE_MANAGE_EXISTING MANILA_REQUEST_TYPE = 4 - MANILA_REQUEST_TYPE_UNMANAGE MANILA_REQUEST_TYPE = 5 - MANILA_REQUEST_TYPE_GET_CAPACITIES MANILA_REQUEST_TYPE = 6 -) - -var MANILA_REQUEST_TYPE_name = map[int32]string{ - 0: "CREATE_SHARE", - 1: "DELETE_SHARE", - 2: "EXTEND_SHARE", - 3: "SHRINK_SHARE", - 4: "MANAGE_EXISTING", - 5: "UNMANAGE", - 6: "GET_CAPACITIES", -} - -var MANILA_REQUEST_TYPE_value = map[string]int32{ - "CREATE_SHARE": 0, - "DELETE_SHARE": 1, - "EXTEND_SHARE": 2, - "SHRINK_SHARE": 3, - "MANAGE_EXISTING": 4, - "UNMANAGE": 5, - "GET_CAPACITIES": 6, -} - -func (x MANILA_REQUEST_TYPE) String() string { - return proto.EnumName(MANILA_REQUEST_TYPE_name, int32(x)) -} - -func (MANILA_REQUEST_TYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{4} -} - -type NSRequest_VersionRequest_VERSION_CMD int32 - -const ( - NSRequest_VersionRequest_CREATE NSRequest_VersionRequest_VERSION_CMD = 0 - NSRequest_VersionRequest_PURGE NSRequest_VersionRequest_VERSION_CMD = 1 - NSRequest_VersionRequest_LIST NSRequest_VersionRequest_VERSION_CMD = 2 - NSRequest_VersionRequest_GRAB NSRequest_VersionRequest_VERSION_CMD = 3 -) - -var NSRequest_VersionRequest_VERSION_CMD_name = map[int32]string{ - 0: "CREATE", - 1: "PURGE", - 2: "LIST", - 3: "GRAB", -} - -var NSRequest_VersionRequest_VERSION_CMD_value = map[string]int32{ - "CREATE": 0, - "PURGE": 1, - "LIST": 2, - "GRAB": 3, -} - -func (x NSRequest_VersionRequest_VERSION_CMD) String() string { - return proto.EnumName(NSRequest_VersionRequest_VERSION_CMD_name, int32(x)) -} - -func (NSRequest_VersionRequest_VERSION_CMD) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 7, 0} -} - -type NSRequest_RecycleRequest_RECYCLE_CMD int32 - -const ( - NSRequest_RecycleRequest_RESTORE NSRequest_RecycleRequest_RECYCLE_CMD = 0 - NSRequest_RecycleRequest_PURGE NSRequest_RecycleRequest_RECYCLE_CMD = 1 - NSRequest_RecycleRequest_LIST NSRequest_RecycleRequest_RECYCLE_CMD = 2 -) - -var NSRequest_RecycleRequest_RECYCLE_CMD_name = map[int32]string{ - 0: "RESTORE", - 1: "PURGE", - 2: "LIST", -} - -var NSRequest_RecycleRequest_RECYCLE_CMD_value = map[string]int32{ - "RESTORE": 0, - "PURGE": 1, - "LIST": 2, -} - -func (x NSRequest_RecycleRequest_RECYCLE_CMD) String() string { - return proto.EnumName(NSRequest_RecycleRequest_RECYCLE_CMD_name, int32(x)) -} - -func (NSRequest_RecycleRequest_RECYCLE_CMD) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 8, 0} -} - -type NSRequest_AclRequest_ACL_COMMAND int32 - -const ( - NSRequest_AclRequest_NONE NSRequest_AclRequest_ACL_COMMAND = 0 - NSRequest_AclRequest_MODIFY NSRequest_AclRequest_ACL_COMMAND = 1 - NSRequest_AclRequest_LIST NSRequest_AclRequest_ACL_COMMAND = 2 -) - -var NSRequest_AclRequest_ACL_COMMAND_name = map[int32]string{ - 0: "NONE", - 1: "MODIFY", - 2: "LIST", -} - -var NSRequest_AclRequest_ACL_COMMAND_value = map[string]int32{ - "NONE": 0, - "MODIFY": 1, - "LIST": 2, -} - -func (x NSRequest_AclRequest_ACL_COMMAND) String() string { - return proto.EnumName(NSRequest_AclRequest_ACL_COMMAND_name, int32(x)) -} - -func (NSRequest_AclRequest_ACL_COMMAND) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 12, 0} -} - -type NSRequest_AclRequest_ACL_TYPE int32 - -const ( - NSRequest_AclRequest_USER_ACL NSRequest_AclRequest_ACL_TYPE = 0 - NSRequest_AclRequest_SYS_ACL NSRequest_AclRequest_ACL_TYPE = 1 -) - -var NSRequest_AclRequest_ACL_TYPE_name = map[int32]string{ - 0: "USER_ACL", - 1: "SYS_ACL", -} - -var NSRequest_AclRequest_ACL_TYPE_value = map[string]int32{ - "USER_ACL": 0, - "SYS_ACL": 1, -} - -func (x NSRequest_AclRequest_ACL_TYPE) String() string { - return proto.EnumName(NSRequest_AclRequest_ACL_TYPE_name, int32(x)) -} - -func (NSRequest_AclRequest_ACL_TYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 12, 1} -} - -type NSRequest_ShareRequest_LsShare_OutFormat int32 - -const ( - NSRequest_ShareRequest_LsShare_NONE NSRequest_ShareRequest_LsShare_OutFormat = 0 - NSRequest_ShareRequest_LsShare_MONITORING NSRequest_ShareRequest_LsShare_OutFormat = 1 - NSRequest_ShareRequest_LsShare_LISTING NSRequest_ShareRequest_LsShare_OutFormat = 2 - NSRequest_ShareRequest_LsShare_JSON NSRequest_ShareRequest_LsShare_OutFormat = 3 -) - -var NSRequest_ShareRequest_LsShare_OutFormat_name = map[int32]string{ - 0: "NONE", - 1: "MONITORING", - 2: "LISTING", - 3: "JSON", -} - -var NSRequest_ShareRequest_LsShare_OutFormat_value = map[string]int32{ - "NONE": 0, - "MONITORING": 1, - "LISTING": 2, - "JSON": 3, -} - -func (x NSRequest_ShareRequest_LsShare_OutFormat) String() string { - return proto.EnumName(NSRequest_ShareRequest_LsShare_OutFormat_name, int32(x)) -} - -func (NSRequest_ShareRequest_LsShare_OutFormat) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 15, 0, 0} -} - -type NSRequest_ShareRequest_OperateShare_Op int32 - -const ( - NSRequest_ShareRequest_OperateShare_CREATE NSRequest_ShareRequest_OperateShare_Op = 0 - NSRequest_ShareRequest_OperateShare_REMOVE NSRequest_ShareRequest_OperateShare_Op = 1 - NSRequest_ShareRequest_OperateShare_SHARE NSRequest_ShareRequest_OperateShare_Op = 2 - NSRequest_ShareRequest_OperateShare_UNSHARE NSRequest_ShareRequest_OperateShare_Op = 3 - NSRequest_ShareRequest_OperateShare_ACCESS NSRequest_ShareRequest_OperateShare_Op = 4 - NSRequest_ShareRequest_OperateShare_MODIFY NSRequest_ShareRequest_OperateShare_Op = 5 -) - -var NSRequest_ShareRequest_OperateShare_Op_name = map[int32]string{ - 0: "CREATE", - 1: "REMOVE", - 2: "SHARE", - 3: "UNSHARE", - 4: "ACCESS", - 5: "MODIFY", -} - -var NSRequest_ShareRequest_OperateShare_Op_value = map[string]int32{ - "CREATE": 0, - "REMOVE": 1, - "SHARE": 2, - "UNSHARE": 3, - "ACCESS": 4, - "MODIFY": 5, -} - -func (x NSRequest_ShareRequest_OperateShare_Op) String() string { - return proto.EnumName(NSRequest_ShareRequest_OperateShare_Op_name, int32(x)) -} - -func (NSRequest_ShareRequest_OperateShare_Op) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 15, 1, 0} -} - -type NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE int32 - -const ( - NSResponse_RecycleResponse_RecycleInfo_FILE NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE = 0 - NSResponse_RecycleResponse_RecycleInfo_TREE NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE = 1 -) - -var NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE_name = map[int32]string{ - 0: "FILE", - 1: "TREE", -} - -var NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE_value = map[string]int32{ - "FILE": 0, - "TREE": 1, -} - -func (x NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE) String() string { - return proto.EnumName(NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE_name, int32(x)) -} - -func (NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 2, 0, 0} -} - -type PingRequest struct { - Authkey string `protobuf:"bytes,1,opt,name=authkey,proto3" json:"authkey,omitempty"` - Message []byte `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PingRequest) Reset() { *m = PingRequest{} } -func (m *PingRequest) String() string { return proto.CompactTextString(m) } -func (*PingRequest) ProtoMessage() {} -func (*PingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{0} -} - -func (m *PingRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PingRequest.Unmarshal(m, b) -} -func (m *PingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PingRequest.Marshal(b, m, deterministic) -} -func (m *PingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_PingRequest.Merge(m, src) -} -func (m *PingRequest) XXX_Size() int { - return xxx_messageInfo_PingRequest.Size(m) -} -func (m *PingRequest) XXX_DiscardUnknown() { - xxx_messageInfo_PingRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_PingRequest proto.InternalMessageInfo - -func (m *PingRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -func (m *PingRequest) GetMessage() []byte { - if m != nil { - return m.Message - } - return nil -} - -type PingReply struct { - Message []byte `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PingReply) Reset() { *m = PingReply{} } -func (m *PingReply) String() string { return proto.CompactTextString(m) } -func (*PingReply) ProtoMessage() {} -func (*PingReply) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{1} -} - -func (m *PingReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PingReply.Unmarshal(m, b) -} -func (m *PingReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PingReply.Marshal(b, m, deterministic) -} -func (m *PingReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_PingReply.Merge(m, src) -} -func (m *PingReply) XXX_Size() int { - return xxx_messageInfo_PingReply.Size(m) -} -func (m *PingReply) XXX_DiscardUnknown() { - xxx_messageInfo_PingReply.DiscardUnknown(m) -} - -var xxx_messageInfo_PingReply proto.InternalMessageInfo - -func (m *PingReply) GetMessage() []byte { - if m != nil { - return m.Message - } - return nil -} - -type ContainerInsertRequest struct { - Container []*ContainerMdProto `protobuf:"bytes,1,rep,name=container,proto3" json:"container,omitempty"` - Authkey string `protobuf:"bytes,2,opt,name=authkey,proto3" json:"authkey,omitempty"` - InheritMd bool `protobuf:"varint,3,opt,name=inherit_md,json=inheritMd,proto3" json:"inherit_md,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ContainerInsertRequest) Reset() { *m = ContainerInsertRequest{} } -func (m *ContainerInsertRequest) String() string { return proto.CompactTextString(m) } -func (*ContainerInsertRequest) ProtoMessage() {} -func (*ContainerInsertRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{2} -} - -func (m *ContainerInsertRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContainerInsertRequest.Unmarshal(m, b) -} -func (m *ContainerInsertRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContainerInsertRequest.Marshal(b, m, deterministic) -} -func (m *ContainerInsertRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContainerInsertRequest.Merge(m, src) -} -func (m *ContainerInsertRequest) XXX_Size() int { - return xxx_messageInfo_ContainerInsertRequest.Size(m) -} -func (m *ContainerInsertRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ContainerInsertRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ContainerInsertRequest proto.InternalMessageInfo - -func (m *ContainerInsertRequest) GetContainer() []*ContainerMdProto { - if m != nil { - return m.Container - } - return nil -} - -func (m *ContainerInsertRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -func (m *ContainerInsertRequest) GetInheritMd() bool { - if m != nil { - return m.InheritMd - } - return false -} - -type FileInsertRequest struct { - Files []*FileMdProto `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` - Authkey string `protobuf:"bytes,2,opt,name=authkey,proto3" json:"authkey,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FileInsertRequest) Reset() { *m = FileInsertRequest{} } -func (m *FileInsertRequest) String() string { return proto.CompactTextString(m) } -func (*FileInsertRequest) ProtoMessage() {} -func (*FileInsertRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{3} -} - -func (m *FileInsertRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FileInsertRequest.Unmarshal(m, b) -} -func (m *FileInsertRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FileInsertRequest.Marshal(b, m, deterministic) -} -func (m *FileInsertRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FileInsertRequest.Merge(m, src) -} -func (m *FileInsertRequest) XXX_Size() int { - return xxx_messageInfo_FileInsertRequest.Size(m) -} -func (m *FileInsertRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FileInsertRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_FileInsertRequest proto.InternalMessageInfo - -func (m *FileInsertRequest) GetFiles() []*FileMdProto { - if m != nil { - return m.Files - } - return nil -} - -func (m *FileInsertRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -type InsertReply struct { - Message []string `protobuf:"bytes,1,rep,name=message,proto3" json:"message,omitempty"` - Retc []uint32 `protobuf:"varint,2,rep,packed,name=retc,proto3" json:"retc,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *InsertReply) Reset() { *m = InsertReply{} } -func (m *InsertReply) String() string { return proto.CompactTextString(m) } -func (*InsertReply) ProtoMessage() {} -func (*InsertReply) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{4} -} - -func (m *InsertReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InsertReply.Unmarshal(m, b) -} -func (m *InsertReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InsertReply.Marshal(b, m, deterministic) -} -func (m *InsertReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_InsertReply.Merge(m, src) -} -func (m *InsertReply) XXX_Size() int { - return xxx_messageInfo_InsertReply.Size(m) -} -func (m *InsertReply) XXX_DiscardUnknown() { - xxx_messageInfo_InsertReply.DiscardUnknown(m) -} - -var xxx_messageInfo_InsertReply proto.InternalMessageInfo - -func (m *InsertReply) GetMessage() []string { - if m != nil { - return m.Message - } - return nil -} - -func (m *InsertReply) GetRetc() []uint32 { - if m != nil { - return m.Retc - } - return nil -} - -type Time struct { - Sec uint64 `protobuf:"varint,1,opt,name=sec,proto3" json:"sec,omitempty"` - NSec uint64 `protobuf:"varint,2,opt,name=n_sec,json=nSec,proto3" json:"n_sec,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Time) Reset() { *m = Time{} } -func (m *Time) String() string { return proto.CompactTextString(m) } -func (*Time) ProtoMessage() {} -func (*Time) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{5} -} - -func (m *Time) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Time.Unmarshal(m, b) -} -func (m *Time) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Time.Marshal(b, m, deterministic) -} -func (m *Time) XXX_Merge(src proto.Message) { - xxx_messageInfo_Time.Merge(m, src) -} -func (m *Time) XXX_Size() int { - return xxx_messageInfo_Time.Size(m) -} -func (m *Time) XXX_DiscardUnknown() { - xxx_messageInfo_Time.DiscardUnknown(m) -} - -var xxx_messageInfo_Time proto.InternalMessageInfo - -func (m *Time) GetSec() uint64 { - if m != nil { - return m.Sec - } - return 0 -} - -func (m *Time) GetNSec() uint64 { - if m != nil { - return m.NSec - } - return 0 -} - -type Checksum struct { - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Checksum) Reset() { *m = Checksum{} } -func (m *Checksum) String() string { return proto.CompactTextString(m) } -func (*Checksum) ProtoMessage() {} -func (*Checksum) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{6} -} - -func (m *Checksum) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Checksum.Unmarshal(m, b) -} -func (m *Checksum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Checksum.Marshal(b, m, deterministic) -} -func (m *Checksum) XXX_Merge(src proto.Message) { - xxx_messageInfo_Checksum.Merge(m, src) -} -func (m *Checksum) XXX_Size() int { - return xxx_messageInfo_Checksum.Size(m) -} -func (m *Checksum) XXX_DiscardUnknown() { - xxx_messageInfo_Checksum.DiscardUnknown(m) -} - -var xxx_messageInfo_Checksum proto.InternalMessageInfo - -func (m *Checksum) GetValue() []byte { - if m != nil { - return m.Value - } - return nil -} - -func (m *Checksum) GetType() string { - if m != nil { - return m.Type - } - return "" -} - -type FileMdProto struct { - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - ContId uint64 `protobuf:"varint,2,opt,name=cont_id,json=contId,proto3" json:"cont_id,omitempty"` - Uid uint64 `protobuf:"varint,3,opt,name=uid,proto3" json:"uid,omitempty"` - Gid uint64 `protobuf:"varint,4,opt,name=gid,proto3" json:"gid,omitempty"` - Size uint64 `protobuf:"varint,5,opt,name=size,proto3" json:"size,omitempty"` - LayoutId uint32 `protobuf:"varint,6,opt,name=layout_id,json=layoutId,proto3" json:"layout_id,omitempty"` - Flags uint32 `protobuf:"varint,7,opt,name=flags,proto3" json:"flags,omitempty"` - Name []byte `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` - LinkName []byte `protobuf:"bytes,9,opt,name=link_name,json=linkName,proto3" json:"link_name,omitempty"` - Ctime *Time `protobuf:"bytes,10,opt,name=ctime,proto3" json:"ctime,omitempty"` - Mtime *Time `protobuf:"bytes,11,opt,name=mtime,proto3" json:"mtime,omitempty"` - Checksum *Checksum `protobuf:"bytes,12,opt,name=checksum,proto3" json:"checksum,omitempty"` - Locations []uint32 `protobuf:"varint,13,rep,packed,name=locations,proto3" json:"locations,omitempty"` - UnlinkLocations []uint32 `protobuf:"varint,14,rep,packed,name=unlink_locations,json=unlinkLocations,proto3" json:"unlink_locations,omitempty"` - Xattrs map[string][]byte `protobuf:"bytes,15,rep,name=xattrs,proto3" json:"xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Path []byte `protobuf:"bytes,16,opt,name=path,proto3" json:"path,omitempty"` - Etag string `protobuf:"bytes,17,opt,name=etag,proto3" json:"etag,omitempty"` - Inode uint64 `protobuf:"varint,18,opt,name=inode,proto3" json:"inode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FileMdProto) Reset() { *m = FileMdProto{} } -func (m *FileMdProto) String() string { return proto.CompactTextString(m) } -func (*FileMdProto) ProtoMessage() {} -func (*FileMdProto) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{7} -} - -func (m *FileMdProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FileMdProto.Unmarshal(m, b) -} -func (m *FileMdProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FileMdProto.Marshal(b, m, deterministic) -} -func (m *FileMdProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_FileMdProto.Merge(m, src) -} -func (m *FileMdProto) XXX_Size() int { - return xxx_messageInfo_FileMdProto.Size(m) -} -func (m *FileMdProto) XXX_DiscardUnknown() { - xxx_messageInfo_FileMdProto.DiscardUnknown(m) -} - -var xxx_messageInfo_FileMdProto proto.InternalMessageInfo - -func (m *FileMdProto) GetId() uint64 { - if m != nil { - return m.Id - } - return 0 -} - -func (m *FileMdProto) GetContId() uint64 { - if m != nil { - return m.ContId - } - return 0 -} - -func (m *FileMdProto) GetUid() uint64 { - if m != nil { - return m.Uid - } - return 0 -} - -func (m *FileMdProto) GetGid() uint64 { - if m != nil { - return m.Gid - } - return 0 -} - -func (m *FileMdProto) GetSize() uint64 { - if m != nil { - return m.Size - } - return 0 -} - -func (m *FileMdProto) GetLayoutId() uint32 { - if m != nil { - return m.LayoutId - } - return 0 -} - -func (m *FileMdProto) GetFlags() uint32 { - if m != nil { - return m.Flags - } - return 0 -} - -func (m *FileMdProto) GetName() []byte { - if m != nil { - return m.Name - } - return nil -} - -func (m *FileMdProto) GetLinkName() []byte { - if m != nil { - return m.LinkName - } - return nil -} - -func (m *FileMdProto) GetCtime() *Time { - if m != nil { - return m.Ctime - } - return nil -} - -func (m *FileMdProto) GetMtime() *Time { - if m != nil { - return m.Mtime - } - return nil -} - -func (m *FileMdProto) GetChecksum() *Checksum { - if m != nil { - return m.Checksum - } - return nil -} - -func (m *FileMdProto) GetLocations() []uint32 { - if m != nil { - return m.Locations - } - return nil -} - -func (m *FileMdProto) GetUnlinkLocations() []uint32 { - if m != nil { - return m.UnlinkLocations - } - return nil -} - -func (m *FileMdProto) GetXattrs() map[string][]byte { - if m != nil { - return m.Xattrs - } - return nil -} - -func (m *FileMdProto) GetPath() []byte { - if m != nil { - return m.Path - } - return nil -} - -func (m *FileMdProto) GetEtag() string { - if m != nil { - return m.Etag - } - return "" -} - -func (m *FileMdProto) GetInode() uint64 { - if m != nil { - return m.Inode - } - return 0 -} - -type ContainerMdProto struct { - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - ParentId uint64 `protobuf:"varint,2,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` - Uid uint64 `protobuf:"varint,3,opt,name=uid,proto3" json:"uid,omitempty"` - Gid uint64 `protobuf:"varint,4,opt,name=gid,proto3" json:"gid,omitempty"` - TreeSize int64 `protobuf:"varint,6,opt,name=tree_size,json=treeSize,proto3" json:"tree_size,omitempty"` - Mode uint32 `protobuf:"varint,5,opt,name=mode,proto3" json:"mode,omitempty"` - Flags uint32 `protobuf:"varint,7,opt,name=flags,proto3" json:"flags,omitempty"` - Name []byte `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` - Ctime *Time `protobuf:"bytes,9,opt,name=ctime,proto3" json:"ctime,omitempty"` - Mtime *Time `protobuf:"bytes,10,opt,name=mtime,proto3" json:"mtime,omitempty"` - Stime *Time `protobuf:"bytes,11,opt,name=stime,proto3" json:"stime,omitempty"` - Xattrs map[string][]byte `protobuf:"bytes,12,rep,name=xattrs,proto3" json:"xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Path []byte `protobuf:"bytes,13,opt,name=path,proto3" json:"path,omitempty"` - Etag string `protobuf:"bytes,14,opt,name=etag,proto3" json:"etag,omitempty"` - Inode uint64 `protobuf:"varint,15,opt,name=inode,proto3" json:"inode,omitempty"` - Files uint64 `protobuf:"varint,16,opt,name=files,proto3" json:"files,omitempty"` - Containers uint64 `protobuf:"varint,17,opt,name=containers,proto3" json:"containers,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ContainerMdProto) Reset() { *m = ContainerMdProto{} } -func (m *ContainerMdProto) String() string { return proto.CompactTextString(m) } -func (*ContainerMdProto) ProtoMessage() {} -func (*ContainerMdProto) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{8} -} - -func (m *ContainerMdProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContainerMdProto.Unmarshal(m, b) -} -func (m *ContainerMdProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContainerMdProto.Marshal(b, m, deterministic) -} -func (m *ContainerMdProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContainerMdProto.Merge(m, src) -} -func (m *ContainerMdProto) XXX_Size() int { - return xxx_messageInfo_ContainerMdProto.Size(m) -} -func (m *ContainerMdProto) XXX_DiscardUnknown() { - xxx_messageInfo_ContainerMdProto.DiscardUnknown(m) -} - -var xxx_messageInfo_ContainerMdProto proto.InternalMessageInfo - -func (m *ContainerMdProto) GetId() uint64 { - if m != nil { - return m.Id - } - return 0 -} - -func (m *ContainerMdProto) GetParentId() uint64 { - if m != nil { - return m.ParentId - } - return 0 -} - -func (m *ContainerMdProto) GetUid() uint64 { - if m != nil { - return m.Uid - } - return 0 -} - -func (m *ContainerMdProto) GetGid() uint64 { - if m != nil { - return m.Gid - } - return 0 -} - -func (m *ContainerMdProto) GetTreeSize() int64 { - if m != nil { - return m.TreeSize - } - return 0 -} - -func (m *ContainerMdProto) GetMode() uint32 { - if m != nil { - return m.Mode - } - return 0 -} - -func (m *ContainerMdProto) GetFlags() uint32 { - if m != nil { - return m.Flags - } - return 0 -} - -func (m *ContainerMdProto) GetName() []byte { - if m != nil { - return m.Name - } - return nil -} - -func (m *ContainerMdProto) GetCtime() *Time { - if m != nil { - return m.Ctime - } - return nil -} - -func (m *ContainerMdProto) GetMtime() *Time { - if m != nil { - return m.Mtime - } - return nil -} - -func (m *ContainerMdProto) GetStime() *Time { - if m != nil { - return m.Stime - } - return nil -} - -func (m *ContainerMdProto) GetXattrs() map[string][]byte { - if m != nil { - return m.Xattrs - } - return nil -} - -func (m *ContainerMdProto) GetPath() []byte { - if m != nil { - return m.Path - } - return nil -} - -func (m *ContainerMdProto) GetEtag() string { - if m != nil { - return m.Etag - } - return "" -} - -func (m *ContainerMdProto) GetInode() uint64 { - if m != nil { - return m.Inode - } - return 0 -} - -func (m *ContainerMdProto) GetFiles() uint64 { - if m != nil { - return m.Files - } - return 0 -} - -func (m *ContainerMdProto) GetContainers() uint64 { - if m != nil { - return m.Containers - } - return 0 -} - -type QuotaProto struct { - Path []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Type QUOTATYPE `protobuf:"varint,3,opt,name=type,proto3,enum=eos.rpc.QUOTATYPE" json:"type,omitempty"` - Usedbytes uint64 `protobuf:"varint,4,opt,name=usedbytes,proto3" json:"usedbytes,omitempty"` - Usedlogicalbytes uint64 `protobuf:"varint,5,opt,name=usedlogicalbytes,proto3" json:"usedlogicalbytes,omitempty"` - Usedfiles uint64 `protobuf:"varint,6,opt,name=usedfiles,proto3" json:"usedfiles,omitempty"` - Maxbytes uint64 `protobuf:"varint,7,opt,name=maxbytes,proto3" json:"maxbytes,omitempty"` - Maxlogicalbytes uint64 `protobuf:"varint,8,opt,name=maxlogicalbytes,proto3" json:"maxlogicalbytes,omitempty"` - Maxfiles uint64 `protobuf:"varint,9,opt,name=maxfiles,proto3" json:"maxfiles,omitempty"` - Percentageusedbytes float32 `protobuf:"fixed32,10,opt,name=percentageusedbytes,proto3" json:"percentageusedbytes,omitempty"` - Percentageusedfiles float32 `protobuf:"fixed32,11,opt,name=percentageusedfiles,proto3" json:"percentageusedfiles,omitempty"` - Statusbytes string `protobuf:"bytes,12,opt,name=statusbytes,proto3" json:"statusbytes,omitempty"` - Statusfiles string `protobuf:"bytes,13,opt,name=statusfiles,proto3" json:"statusfiles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *QuotaProto) Reset() { *m = QuotaProto{} } -func (m *QuotaProto) String() string { return proto.CompactTextString(m) } -func (*QuotaProto) ProtoMessage() {} -func (*QuotaProto) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{9} -} - -func (m *QuotaProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuotaProto.Unmarshal(m, b) -} -func (m *QuotaProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuotaProto.Marshal(b, m, deterministic) -} -func (m *QuotaProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuotaProto.Merge(m, src) -} -func (m *QuotaProto) XXX_Size() int { - return xxx_messageInfo_QuotaProto.Size(m) -} -func (m *QuotaProto) XXX_DiscardUnknown() { - xxx_messageInfo_QuotaProto.DiscardUnknown(m) -} - -var xxx_messageInfo_QuotaProto proto.InternalMessageInfo - -func (m *QuotaProto) GetPath() []byte { - if m != nil { - return m.Path - } - return nil -} - -func (m *QuotaProto) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *QuotaProto) GetType() QUOTATYPE { - if m != nil { - return m.Type - } - return QUOTATYPE_USER -} - -func (m *QuotaProto) GetUsedbytes() uint64 { - if m != nil { - return m.Usedbytes - } - return 0 -} - -func (m *QuotaProto) GetUsedlogicalbytes() uint64 { - if m != nil { - return m.Usedlogicalbytes - } - return 0 -} - -func (m *QuotaProto) GetUsedfiles() uint64 { - if m != nil { - return m.Usedfiles - } - return 0 -} - -func (m *QuotaProto) GetMaxbytes() uint64 { - if m != nil { - return m.Maxbytes - } - return 0 -} - -func (m *QuotaProto) GetMaxlogicalbytes() uint64 { - if m != nil { - return m.Maxlogicalbytes - } - return 0 -} - -func (m *QuotaProto) GetMaxfiles() uint64 { - if m != nil { - return m.Maxfiles - } - return 0 -} - -func (m *QuotaProto) GetPercentageusedbytes() float32 { - if m != nil { - return m.Percentageusedbytes - } - return 0 -} - -func (m *QuotaProto) GetPercentageusedfiles() float32 { - if m != nil { - return m.Percentageusedfiles - } - return 0 -} - -func (m *QuotaProto) GetStatusbytes() string { - if m != nil { - return m.Statusbytes - } - return "" -} - -func (m *QuotaProto) GetStatusfiles() string { - if m != nil { - return m.Statusfiles - } - return "" -} - -type RoleId struct { - Uid uint64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` - Gid uint64 `protobuf:"varint,2,opt,name=gid,proto3" json:"gid,omitempty"` - Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` - Groupname string `protobuf:"bytes,4,opt,name=groupname,proto3" json:"groupname,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RoleId) Reset() { *m = RoleId{} } -func (m *RoleId) String() string { return proto.CompactTextString(m) } -func (*RoleId) ProtoMessage() {} -func (*RoleId) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{10} -} - -func (m *RoleId) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RoleId.Unmarshal(m, b) -} -func (m *RoleId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RoleId.Marshal(b, m, deterministic) -} -func (m *RoleId) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleId.Merge(m, src) -} -func (m *RoleId) XXX_Size() int { - return xxx_messageInfo_RoleId.Size(m) -} -func (m *RoleId) XXX_DiscardUnknown() { - xxx_messageInfo_RoleId.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleId proto.InternalMessageInfo - -func (m *RoleId) GetUid() uint64 { - if m != nil { - return m.Uid - } - return 0 -} - -func (m *RoleId) GetGid() uint64 { - if m != nil { - return m.Gid - } - return 0 -} - -func (m *RoleId) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *RoleId) GetGroupname() string { - if m != nil { - return m.Groupname - } - return "" -} - -type MDId struct { - Path []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - Id uint64 `protobuf:"fixed64,2,opt,name=id,proto3" json:"id,omitempty"` - Ino uint64 `protobuf:"fixed64,3,opt,name=ino,proto3" json:"ino,omitempty"` - Type TYPE `protobuf:"varint,4,opt,name=type,proto3,enum=eos.rpc.TYPE" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MDId) Reset() { *m = MDId{} } -func (m *MDId) String() string { return proto.CompactTextString(m) } -func (*MDId) ProtoMessage() {} -func (*MDId) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{11} -} - -func (m *MDId) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MDId.Unmarshal(m, b) -} -func (m *MDId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MDId.Marshal(b, m, deterministic) -} -func (m *MDId) XXX_Merge(src proto.Message) { - xxx_messageInfo_MDId.Merge(m, src) -} -func (m *MDId) XXX_Size() int { - return xxx_messageInfo_MDId.Size(m) -} -func (m *MDId) XXX_DiscardUnknown() { - xxx_messageInfo_MDId.DiscardUnknown(m) -} - -var xxx_messageInfo_MDId proto.InternalMessageInfo - -func (m *MDId) GetPath() []byte { - if m != nil { - return m.Path - } - return nil -} - -func (m *MDId) GetId() uint64 { - if m != nil { - return m.Id - } - return 0 -} - -func (m *MDId) GetIno() uint64 { - if m != nil { - return m.Ino - } - return 0 -} - -func (m *MDId) GetType() TYPE { - if m != nil { - return m.Type - } - return TYPE_FILE -} - -type Limit struct { - Zero bool `protobuf:"varint,1,opt,name=zero,proto3" json:"zero,omitempty"` - Min uint64 `protobuf:"varint,2,opt,name=min,proto3" json:"min,omitempty"` - Max uint64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Limit) Reset() { *m = Limit{} } -func (m *Limit) String() string { return proto.CompactTextString(m) } -func (*Limit) ProtoMessage() {} -func (*Limit) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{12} -} - -func (m *Limit) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Limit.Unmarshal(m, b) -} -func (m *Limit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Limit.Marshal(b, m, deterministic) -} -func (m *Limit) XXX_Merge(src proto.Message) { - xxx_messageInfo_Limit.Merge(m, src) -} -func (m *Limit) XXX_Size() int { - return xxx_messageInfo_Limit.Size(m) -} -func (m *Limit) XXX_DiscardUnknown() { - xxx_messageInfo_Limit.DiscardUnknown(m) -} - -var xxx_messageInfo_Limit proto.InternalMessageInfo - -func (m *Limit) GetZero() bool { - if m != nil { - return m.Zero - } - return false -} - -func (m *Limit) GetMin() uint64 { - if m != nil { - return m.Min - } - return 0 -} - -func (m *Limit) GetMax() uint64 { - if m != nil { - return m.Max - } - return 0 -} - -type MDSelection struct { - Select bool `protobuf:"varint,1,opt,name=select,proto3" json:"select,omitempty"` - Ctime *Limit `protobuf:"bytes,2,opt,name=ctime,proto3" json:"ctime,omitempty"` - Mtime *Limit `protobuf:"bytes,3,opt,name=mtime,proto3" json:"mtime,omitempty"` - Stime *Limit `protobuf:"bytes,4,opt,name=stime,proto3" json:"stime,omitempty"` - Size *Limit `protobuf:"bytes,5,opt,name=size,proto3" json:"size,omitempty"` - Treesize *Limit `protobuf:"bytes,6,opt,name=treesize,proto3" json:"treesize,omitempty"` - Children *Limit `protobuf:"bytes,7,opt,name=children,proto3" json:"children,omitempty"` - Locations *Limit `protobuf:"bytes,8,opt,name=locations,proto3" json:"locations,omitempty"` - UnlinkedLocations *Limit `protobuf:"bytes,9,opt,name=unlinked_locations,json=unlinkedLocations,proto3" json:"unlinked_locations,omitempty"` - Layoutid uint64 `protobuf:"varint,10,opt,name=layoutid,proto3" json:"layoutid,omitempty"` - Flags uint64 `protobuf:"varint,11,opt,name=flags,proto3" json:"flags,omitempty"` - Symlink bool `protobuf:"varint,12,opt,name=symlink,proto3" json:"symlink,omitempty"` - Checksum *Checksum `protobuf:"bytes,13,opt,name=checksum,proto3" json:"checksum,omitempty"` - Owner uint32 `protobuf:"varint,14,opt,name=owner,proto3" json:"owner,omitempty"` - Group uint32 `protobuf:"varint,15,opt,name=group,proto3" json:"group,omitempty"` - OwnerRoot bool `protobuf:"varint,16,opt,name=owner_root,json=ownerRoot,proto3" json:"owner_root,omitempty"` - GroupRoot bool `protobuf:"varint,17,opt,name=group_root,json=groupRoot,proto3" json:"group_root,omitempty"` - RegexpFilename []byte `protobuf:"bytes,18,opt,name=regexp_filename,json=regexpFilename,proto3" json:"regexp_filename,omitempty"` - RegexpDirname []byte `protobuf:"bytes,19,opt,name=regexp_dirname,json=regexpDirname,proto3" json:"regexp_dirname,omitempty"` - Xattr map[string][]byte `protobuf:"bytes,20,rep,name=xattr,proto3" json:"xattr,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MDSelection) Reset() { *m = MDSelection{} } -func (m *MDSelection) String() string { return proto.CompactTextString(m) } -func (*MDSelection) ProtoMessage() {} -func (*MDSelection) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{13} -} - -func (m *MDSelection) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MDSelection.Unmarshal(m, b) -} -func (m *MDSelection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MDSelection.Marshal(b, m, deterministic) -} -func (m *MDSelection) XXX_Merge(src proto.Message) { - xxx_messageInfo_MDSelection.Merge(m, src) -} -func (m *MDSelection) XXX_Size() int { - return xxx_messageInfo_MDSelection.Size(m) -} -func (m *MDSelection) XXX_DiscardUnknown() { - xxx_messageInfo_MDSelection.DiscardUnknown(m) -} - -var xxx_messageInfo_MDSelection proto.InternalMessageInfo - -func (m *MDSelection) GetSelect() bool { - if m != nil { - return m.Select - } - return false -} - -func (m *MDSelection) GetCtime() *Limit { - if m != nil { - return m.Ctime - } - return nil -} - -func (m *MDSelection) GetMtime() *Limit { - if m != nil { - return m.Mtime - } - return nil -} - -func (m *MDSelection) GetStime() *Limit { - if m != nil { - return m.Stime - } - return nil -} - -func (m *MDSelection) GetSize() *Limit { - if m != nil { - return m.Size - } - return nil -} - -func (m *MDSelection) GetTreesize() *Limit { - if m != nil { - return m.Treesize - } - return nil -} - -func (m *MDSelection) GetChildren() *Limit { - if m != nil { - return m.Children - } - return nil -} - -func (m *MDSelection) GetLocations() *Limit { - if m != nil { - return m.Locations - } - return nil -} - -func (m *MDSelection) GetUnlinkedLocations() *Limit { - if m != nil { - return m.UnlinkedLocations - } - return nil -} - -func (m *MDSelection) GetLayoutid() uint64 { - if m != nil { - return m.Layoutid - } - return 0 -} - -func (m *MDSelection) GetFlags() uint64 { - if m != nil { - return m.Flags - } - return 0 -} - -func (m *MDSelection) GetSymlink() bool { - if m != nil { - return m.Symlink - } - return false -} - -func (m *MDSelection) GetChecksum() *Checksum { - if m != nil { - return m.Checksum - } - return nil -} - -func (m *MDSelection) GetOwner() uint32 { - if m != nil { - return m.Owner - } - return 0 -} - -func (m *MDSelection) GetGroup() uint32 { - if m != nil { - return m.Group - } - return 0 -} - -func (m *MDSelection) GetOwnerRoot() bool { - if m != nil { - return m.OwnerRoot - } - return false -} - -func (m *MDSelection) GetGroupRoot() bool { - if m != nil { - return m.GroupRoot - } - return false -} - -func (m *MDSelection) GetRegexpFilename() []byte { - if m != nil { - return m.RegexpFilename - } - return nil -} - -func (m *MDSelection) GetRegexpDirname() []byte { - if m != nil { - return m.RegexpDirname - } - return nil -} - -func (m *MDSelection) GetXattr() map[string][]byte { - if m != nil { - return m.Xattr - } - return nil -} - -type MDRequest struct { - Type TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=eos.rpc.TYPE" json:"type,omitempty"` - Id *MDId `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Authkey string `protobuf:"bytes,3,opt,name=authkey,proto3" json:"authkey,omitempty"` - Role *RoleId `protobuf:"bytes,4,opt,name=role,proto3" json:"role,omitempty"` - Selection *MDSelection `protobuf:"bytes,5,opt,name=selection,proto3" json:"selection,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MDRequest) Reset() { *m = MDRequest{} } -func (m *MDRequest) String() string { return proto.CompactTextString(m) } -func (*MDRequest) ProtoMessage() {} -func (*MDRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{14} -} - -func (m *MDRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MDRequest.Unmarshal(m, b) -} -func (m *MDRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MDRequest.Marshal(b, m, deterministic) -} -func (m *MDRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_MDRequest.Merge(m, src) -} -func (m *MDRequest) XXX_Size() int { - return xxx_messageInfo_MDRequest.Size(m) -} -func (m *MDRequest) XXX_DiscardUnknown() { - xxx_messageInfo_MDRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_MDRequest proto.InternalMessageInfo - -func (m *MDRequest) GetType() TYPE { - if m != nil { - return m.Type - } - return TYPE_FILE -} - -func (m *MDRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *MDRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -func (m *MDRequest) GetRole() *RoleId { - if m != nil { - return m.Role - } - return nil -} - -func (m *MDRequest) GetSelection() *MDSelection { - if m != nil { - return m.Selection - } - return nil -} - -type MDResponse struct { - Type TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=eos.rpc.TYPE" json:"type,omitempty"` - Fmd *FileMdProto `protobuf:"bytes,2,opt,name=fmd,proto3" json:"fmd,omitempty"` - Cmd *ContainerMdProto `protobuf:"bytes,3,opt,name=cmd,proto3" json:"cmd,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MDResponse) Reset() { *m = MDResponse{} } -func (m *MDResponse) String() string { return proto.CompactTextString(m) } -func (*MDResponse) ProtoMessage() {} -func (*MDResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{15} -} - -func (m *MDResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MDResponse.Unmarshal(m, b) -} -func (m *MDResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MDResponse.Marshal(b, m, deterministic) -} -func (m *MDResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MDResponse.Merge(m, src) -} -func (m *MDResponse) XXX_Size() int { - return xxx_messageInfo_MDResponse.Size(m) -} -func (m *MDResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MDResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MDResponse proto.InternalMessageInfo - -func (m *MDResponse) GetType() TYPE { - if m != nil { - return m.Type - } - return TYPE_FILE -} - -func (m *MDResponse) GetFmd() *FileMdProto { - if m != nil { - return m.Fmd - } - return nil -} - -func (m *MDResponse) GetCmd() *ContainerMdProto { - if m != nil { - return m.Cmd - } - return nil -} - -type FindRequest struct { - Type TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=eos.rpc.TYPE" json:"type,omitempty"` - Id *MDId `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Role *RoleId `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` - Authkey string `protobuf:"bytes,4,opt,name=authkey,proto3" json:"authkey,omitempty"` - Maxdepth uint64 `protobuf:"varint,5,opt,name=maxdepth,proto3" json:"maxdepth,omitempty"` - Selection *MDSelection `protobuf:"bytes,6,opt,name=selection,proto3" json:"selection,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FindRequest) Reset() { *m = FindRequest{} } -func (m *FindRequest) String() string { return proto.CompactTextString(m) } -func (*FindRequest) ProtoMessage() {} -func (*FindRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{16} -} - -func (m *FindRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FindRequest.Unmarshal(m, b) -} -func (m *FindRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FindRequest.Marshal(b, m, deterministic) -} -func (m *FindRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FindRequest.Merge(m, src) -} -func (m *FindRequest) XXX_Size() int { - return xxx_messageInfo_FindRequest.Size(m) -} -func (m *FindRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FindRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_FindRequest proto.InternalMessageInfo - -func (m *FindRequest) GetType() TYPE { - if m != nil { - return m.Type - } - return TYPE_FILE -} - -func (m *FindRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *FindRequest) GetRole() *RoleId { - if m != nil { - return m.Role - } - return nil -} - -func (m *FindRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -func (m *FindRequest) GetMaxdepth() uint64 { - if m != nil { - return m.Maxdepth - } - return 0 -} - -func (m *FindRequest) GetSelection() *MDSelection { - if m != nil { - return m.Selection - } - return nil -} - -type ShareAuth struct { - Prot string `protobuf:"bytes,1,opt,name=prot,proto3" json:"prot,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ShareAuth) Reset() { *m = ShareAuth{} } -func (m *ShareAuth) String() string { return proto.CompactTextString(m) } -func (*ShareAuth) ProtoMessage() {} -func (*ShareAuth) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{17} -} - -func (m *ShareAuth) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ShareAuth.Unmarshal(m, b) -} -func (m *ShareAuth) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ShareAuth.Marshal(b, m, deterministic) -} -func (m *ShareAuth) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShareAuth.Merge(m, src) -} -func (m *ShareAuth) XXX_Size() int { - return xxx_messageInfo_ShareAuth.Size(m) -} -func (m *ShareAuth) XXX_DiscardUnknown() { - xxx_messageInfo_ShareAuth.DiscardUnknown(m) -} - -var xxx_messageInfo_ShareAuth proto.InternalMessageInfo - -func (m *ShareAuth) GetProt() string { - if m != nil { - return m.Prot - } - return "" -} - -func (m *ShareAuth) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *ShareAuth) GetHost() string { - if m != nil { - return m.Host - } - return "" -} - -type ShareProto struct { - Permission string `protobuf:"bytes,1,opt,name=permission,proto3" json:"permission,omitempty"` - Expires uint64 `protobuf:"varint,2,opt,name=expires,proto3" json:"expires,omitempty"` - Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"` - Group string `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"` - Generation uint64 `protobuf:"varint,5,opt,name=generation,proto3" json:"generation,omitempty"` - Path string `protobuf:"bytes,6,opt,name=path,proto3" json:"path,omitempty"` - Allowtree bool `protobuf:"varint,7,opt,name=allowtree,proto3" json:"allowtree,omitempty"` - Vtoken string `protobuf:"bytes,8,opt,name=vtoken,proto3" json:"vtoken,omitempty"` - Origins []*ShareAuth `protobuf:"bytes,9,rep,name=origins,proto3" json:"origins,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ShareProto) Reset() { *m = ShareProto{} } -func (m *ShareProto) String() string { return proto.CompactTextString(m) } -func (*ShareProto) ProtoMessage() {} -func (*ShareProto) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{18} -} - -func (m *ShareProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ShareProto.Unmarshal(m, b) -} -func (m *ShareProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ShareProto.Marshal(b, m, deterministic) -} -func (m *ShareProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShareProto.Merge(m, src) -} -func (m *ShareProto) XXX_Size() int { - return xxx_messageInfo_ShareProto.Size(m) -} -func (m *ShareProto) XXX_DiscardUnknown() { - xxx_messageInfo_ShareProto.DiscardUnknown(m) -} - -var xxx_messageInfo_ShareProto proto.InternalMessageInfo - -func (m *ShareProto) GetPermission() string { - if m != nil { - return m.Permission - } - return "" -} - -func (m *ShareProto) GetExpires() uint64 { - if m != nil { - return m.Expires - } - return 0 -} - -func (m *ShareProto) GetOwner() string { - if m != nil { - return m.Owner - } - return "" -} - -func (m *ShareProto) GetGroup() string { - if m != nil { - return m.Group - } - return "" -} - -func (m *ShareProto) GetGeneration() uint64 { - if m != nil { - return m.Generation - } - return 0 -} - -func (m *ShareProto) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -func (m *ShareProto) GetAllowtree() bool { - if m != nil { - return m.Allowtree - } - return false -} - -func (m *ShareProto) GetVtoken() string { - if m != nil { - return m.Vtoken - } - return "" -} - -func (m *ShareProto) GetOrigins() []*ShareAuth { - if m != nil { - return m.Origins - } - return nil -} - -type ShareToken struct { - Token *ShareProto `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` - Serialized []byte `protobuf:"bytes,3,opt,name=serialized,proto3" json:"serialized,omitempty"` - Seed int32 `protobuf:"varint,4,opt,name=seed,proto3" json:"seed,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ShareToken) Reset() { *m = ShareToken{} } -func (m *ShareToken) String() string { return proto.CompactTextString(m) } -func (*ShareToken) ProtoMessage() {} -func (*ShareToken) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{19} -} - -func (m *ShareToken) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ShareToken.Unmarshal(m, b) -} -func (m *ShareToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ShareToken.Marshal(b, m, deterministic) -} -func (m *ShareToken) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShareToken.Merge(m, src) -} -func (m *ShareToken) XXX_Size() int { - return xxx_messageInfo_ShareToken.Size(m) -} -func (m *ShareToken) XXX_DiscardUnknown() { - xxx_messageInfo_ShareToken.DiscardUnknown(m) -} - -var xxx_messageInfo_ShareToken proto.InternalMessageInfo - -func (m *ShareToken) GetToken() *ShareProto { - if m != nil { - return m.Token - } - return nil -} - -func (m *ShareToken) GetSignature() []byte { - if m != nil { - return m.Signature - } - return nil -} - -func (m *ShareToken) GetSerialized() []byte { - if m != nil { - return m.Serialized - } - return nil -} - -func (m *ShareToken) GetSeed() int32 { - if m != nil { - return m.Seed - } - return 0 -} - -type NSRequest struct { - Authkey string `protobuf:"bytes,1,opt,name=authkey,proto3" json:"authkey,omitempty"` - Role *RoleId `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` - // Actual request data object - // - // Types that are valid to be assigned to Command: - // - // *NSRequest_Mkdir - // *NSRequest_Rmdir - // *NSRequest_Touch - // *NSRequest_Unlink - // *NSRequest_Rm - // *NSRequest_Rename - // *NSRequest_Symlink - // *NSRequest_Version - // *NSRequest_Recycle - // *NSRequest_Xattr - // *NSRequest_Chown - // *NSRequest_Chmod - // *NSRequest_Acl - // *NSRequest_Token - // *NSRequest_Quota - // *NSRequest_Share - Command isNSRequest_Command `protobuf_oneof:"command"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest) Reset() { *m = NSRequest{} } -func (m *NSRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest) ProtoMessage() {} -func (*NSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20} -} - -func (m *NSRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest.Unmarshal(m, b) -} -func (m *NSRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest.Merge(m, src) -} -func (m *NSRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest.Size(m) -} -func (m *NSRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest proto.InternalMessageInfo - -func (m *NSRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -func (m *NSRequest) GetRole() *RoleId { - if m != nil { - return m.Role - } - return nil -} - -type isNSRequest_Command interface { - isNSRequest_Command() -} - -type NSRequest_Mkdir struct { - Mkdir *NSRequest_MkdirRequest `protobuf:"bytes,21,opt,name=mkdir,proto3,oneof"` -} - -type NSRequest_Rmdir struct { - Rmdir *NSRequest_RmdirRequest `protobuf:"bytes,22,opt,name=rmdir,proto3,oneof"` -} - -type NSRequest_Touch struct { - Touch *NSRequest_TouchRequest `protobuf:"bytes,23,opt,name=touch,proto3,oneof"` -} - -type NSRequest_Unlink struct { - Unlink *NSRequest_UnlinkRequest `protobuf:"bytes,24,opt,name=unlink,proto3,oneof"` -} - -type NSRequest_Rm struct { - Rm *NSRequest_RmRequest `protobuf:"bytes,25,opt,name=rm,proto3,oneof"` -} - -type NSRequest_Rename struct { - Rename *NSRequest_RenameRequest `protobuf:"bytes,26,opt,name=rename,proto3,oneof"` -} - -type NSRequest_Symlink struct { - Symlink *NSRequest_SymlinkRequest `protobuf:"bytes,27,opt,name=symlink,proto3,oneof"` -} - -type NSRequest_Version struct { - Version *NSRequest_VersionRequest `protobuf:"bytes,28,opt,name=version,proto3,oneof"` -} - -type NSRequest_Recycle struct { - Recycle *NSRequest_RecycleRequest `protobuf:"bytes,29,opt,name=recycle,proto3,oneof"` -} - -type NSRequest_Xattr struct { - Xattr *NSRequest_SetXAttrRequest `protobuf:"bytes,30,opt,name=xattr,proto3,oneof"` -} - -type NSRequest_Chown struct { - Chown *NSRequest_ChownRequest `protobuf:"bytes,31,opt,name=chown,proto3,oneof"` -} - -type NSRequest_Chmod struct { - Chmod *NSRequest_ChmodRequest `protobuf:"bytes,32,opt,name=chmod,proto3,oneof"` -} - -type NSRequest_Acl struct { - Acl *NSRequest_AclRequest `protobuf:"bytes,33,opt,name=acl,proto3,oneof"` -} - -type NSRequest_Token struct { - Token *NSRequest_TokenRequest `protobuf:"bytes,34,opt,name=token,proto3,oneof"` -} - -type NSRequest_Quota struct { - Quota *NSRequest_QuotaRequest `protobuf:"bytes,35,opt,name=quota,proto3,oneof"` -} - -type NSRequest_Share struct { - Share *NSRequest_ShareRequest `protobuf:"bytes,36,opt,name=share,proto3,oneof"` -} - -func (*NSRequest_Mkdir) isNSRequest_Command() {} - -func (*NSRequest_Rmdir) isNSRequest_Command() {} - -func (*NSRequest_Touch) isNSRequest_Command() {} - -func (*NSRequest_Unlink) isNSRequest_Command() {} - -func (*NSRequest_Rm) isNSRequest_Command() {} - -func (*NSRequest_Rename) isNSRequest_Command() {} - -func (*NSRequest_Symlink) isNSRequest_Command() {} - -func (*NSRequest_Version) isNSRequest_Command() {} - -func (*NSRequest_Recycle) isNSRequest_Command() {} - -func (*NSRequest_Xattr) isNSRequest_Command() {} - -func (*NSRequest_Chown) isNSRequest_Command() {} - -func (*NSRequest_Chmod) isNSRequest_Command() {} - -func (*NSRequest_Acl) isNSRequest_Command() {} - -func (*NSRequest_Token) isNSRequest_Command() {} - -func (*NSRequest_Quota) isNSRequest_Command() {} - -func (*NSRequest_Share) isNSRequest_Command() {} - -func (m *NSRequest) GetCommand() isNSRequest_Command { - if m != nil { - return m.Command - } - return nil -} - -func (m *NSRequest) GetMkdir() *NSRequest_MkdirRequest { - if x, ok := m.GetCommand().(*NSRequest_Mkdir); ok { - return x.Mkdir - } - return nil -} - -func (m *NSRequest) GetRmdir() *NSRequest_RmdirRequest { - if x, ok := m.GetCommand().(*NSRequest_Rmdir); ok { - return x.Rmdir - } - return nil -} - -func (m *NSRequest) GetTouch() *NSRequest_TouchRequest { - if x, ok := m.GetCommand().(*NSRequest_Touch); ok { - return x.Touch - } - return nil -} - -func (m *NSRequest) GetUnlink() *NSRequest_UnlinkRequest { - if x, ok := m.GetCommand().(*NSRequest_Unlink); ok { - return x.Unlink - } - return nil -} - -func (m *NSRequest) GetRm() *NSRequest_RmRequest { - if x, ok := m.GetCommand().(*NSRequest_Rm); ok { - return x.Rm - } - return nil -} - -func (m *NSRequest) GetRename() *NSRequest_RenameRequest { - if x, ok := m.GetCommand().(*NSRequest_Rename); ok { - return x.Rename - } - return nil -} - -func (m *NSRequest) GetSymlink() *NSRequest_SymlinkRequest { - if x, ok := m.GetCommand().(*NSRequest_Symlink); ok { - return x.Symlink - } - return nil -} - -func (m *NSRequest) GetVersion() *NSRequest_VersionRequest { - if x, ok := m.GetCommand().(*NSRequest_Version); ok { - return x.Version - } - return nil -} - -func (m *NSRequest) GetRecycle() *NSRequest_RecycleRequest { - if x, ok := m.GetCommand().(*NSRequest_Recycle); ok { - return x.Recycle - } - return nil -} - -func (m *NSRequest) GetXattr() *NSRequest_SetXAttrRequest { - if x, ok := m.GetCommand().(*NSRequest_Xattr); ok { - return x.Xattr - } - return nil -} - -func (m *NSRequest) GetChown() *NSRequest_ChownRequest { - if x, ok := m.GetCommand().(*NSRequest_Chown); ok { - return x.Chown - } - return nil -} - -func (m *NSRequest) GetChmod() *NSRequest_ChmodRequest { - if x, ok := m.GetCommand().(*NSRequest_Chmod); ok { - return x.Chmod - } - return nil -} - -func (m *NSRequest) GetAcl() *NSRequest_AclRequest { - if x, ok := m.GetCommand().(*NSRequest_Acl); ok { - return x.Acl - } - return nil -} - -func (m *NSRequest) GetToken() *NSRequest_TokenRequest { - if x, ok := m.GetCommand().(*NSRequest_Token); ok { - return x.Token - } - return nil -} - -func (m *NSRequest) GetQuota() *NSRequest_QuotaRequest { - if x, ok := m.GetCommand().(*NSRequest_Quota); ok { - return x.Quota - } - return nil -} - -func (m *NSRequest) GetShare() *NSRequest_ShareRequest { - if x, ok := m.GetCommand().(*NSRequest_Share); ok { - return x.Share - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*NSRequest) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*NSRequest_Mkdir)(nil), - (*NSRequest_Rmdir)(nil), - (*NSRequest_Touch)(nil), - (*NSRequest_Unlink)(nil), - (*NSRequest_Rm)(nil), - (*NSRequest_Rename)(nil), - (*NSRequest_Symlink)(nil), - (*NSRequest_Version)(nil), - (*NSRequest_Recycle)(nil), - (*NSRequest_Xattr)(nil), - (*NSRequest_Chown)(nil), - (*NSRequest_Chmod)(nil), - (*NSRequest_Acl)(nil), - (*NSRequest_Token)(nil), - (*NSRequest_Quota)(nil), - (*NSRequest_Share)(nil), - } -} - -type NSRequest_MkdirRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` - Mode int64 `protobuf:"varint,3,opt,name=mode,proto3" json:"mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_MkdirRequest) Reset() { *m = NSRequest_MkdirRequest{} } -func (m *NSRequest_MkdirRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_MkdirRequest) ProtoMessage() {} -func (*NSRequest_MkdirRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 0} -} - -func (m *NSRequest_MkdirRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_MkdirRequest.Unmarshal(m, b) -} -func (m *NSRequest_MkdirRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_MkdirRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_MkdirRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_MkdirRequest.Merge(m, src) -} -func (m *NSRequest_MkdirRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_MkdirRequest.Size(m) -} -func (m *NSRequest_MkdirRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_MkdirRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_MkdirRequest proto.InternalMessageInfo - -func (m *NSRequest_MkdirRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_MkdirRequest) GetRecursive() bool { - if m != nil { - return m.Recursive - } - return false -} - -func (m *NSRequest_MkdirRequest) GetMode() int64 { - if m != nil { - return m.Mode - } - return 0 -} - -type NSRequest_RmdirRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RmdirRequest) Reset() { *m = NSRequest_RmdirRequest{} } -func (m *NSRequest_RmdirRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RmdirRequest) ProtoMessage() {} -func (*NSRequest_RmdirRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 1} -} - -func (m *NSRequest_RmdirRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RmdirRequest.Unmarshal(m, b) -} -func (m *NSRequest_RmdirRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RmdirRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_RmdirRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RmdirRequest.Merge(m, src) -} -func (m *NSRequest_RmdirRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_RmdirRequest.Size(m) -} -func (m *NSRequest_RmdirRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RmdirRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RmdirRequest proto.InternalMessageInfo - -func (m *NSRequest_RmdirRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -type NSRequest_TouchRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_TouchRequest) Reset() { *m = NSRequest_TouchRequest{} } -func (m *NSRequest_TouchRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_TouchRequest) ProtoMessage() {} -func (*NSRequest_TouchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 2} -} - -func (m *NSRequest_TouchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_TouchRequest.Unmarshal(m, b) -} -func (m *NSRequest_TouchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_TouchRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_TouchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_TouchRequest.Merge(m, src) -} -func (m *NSRequest_TouchRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_TouchRequest.Size(m) -} -func (m *NSRequest_TouchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_TouchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_TouchRequest proto.InternalMessageInfo - -func (m *NSRequest_TouchRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -type NSRequest_UnlinkRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Norecycle bool `protobuf:"varint,3,opt,name=norecycle,proto3" json:"norecycle,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_UnlinkRequest) Reset() { *m = NSRequest_UnlinkRequest{} } -func (m *NSRequest_UnlinkRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_UnlinkRequest) ProtoMessage() {} -func (*NSRequest_UnlinkRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 3} -} - -func (m *NSRequest_UnlinkRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_UnlinkRequest.Unmarshal(m, b) -} -func (m *NSRequest_UnlinkRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_UnlinkRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_UnlinkRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_UnlinkRequest.Merge(m, src) -} -func (m *NSRequest_UnlinkRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_UnlinkRequest.Size(m) -} -func (m *NSRequest_UnlinkRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_UnlinkRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_UnlinkRequest proto.InternalMessageInfo - -func (m *NSRequest_UnlinkRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_UnlinkRequest) GetNorecycle() bool { - if m != nil { - return m.Norecycle - } - return false -} - -type NSRequest_RmRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` - Norecycle bool `protobuf:"varint,3,opt,name=norecycle,proto3" json:"norecycle,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RmRequest) Reset() { *m = NSRequest_RmRequest{} } -func (m *NSRequest_RmRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RmRequest) ProtoMessage() {} -func (*NSRequest_RmRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 4} -} - -func (m *NSRequest_RmRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RmRequest.Unmarshal(m, b) -} -func (m *NSRequest_RmRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RmRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_RmRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RmRequest.Merge(m, src) -} -func (m *NSRequest_RmRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_RmRequest.Size(m) -} -func (m *NSRequest_RmRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RmRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RmRequest proto.InternalMessageInfo - -func (m *NSRequest_RmRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_RmRequest) GetRecursive() bool { - if m != nil { - return m.Recursive - } - return false -} - -func (m *NSRequest_RmRequest) GetNorecycle() bool { - if m != nil { - return m.Norecycle - } - return false -} - -type NSRequest_RenameRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Target []byte `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RenameRequest) Reset() { *m = NSRequest_RenameRequest{} } -func (m *NSRequest_RenameRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RenameRequest) ProtoMessage() {} -func (*NSRequest_RenameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 5} -} - -func (m *NSRequest_RenameRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RenameRequest.Unmarshal(m, b) -} -func (m *NSRequest_RenameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RenameRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_RenameRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RenameRequest.Merge(m, src) -} -func (m *NSRequest_RenameRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_RenameRequest.Size(m) -} -func (m *NSRequest_RenameRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RenameRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RenameRequest proto.InternalMessageInfo - -func (m *NSRequest_RenameRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_RenameRequest) GetTarget() []byte { - if m != nil { - return m.Target - } - return nil -} - -type NSRequest_SymlinkRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Target []byte `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_SymlinkRequest) Reset() { *m = NSRequest_SymlinkRequest{} } -func (m *NSRequest_SymlinkRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_SymlinkRequest) ProtoMessage() {} -func (*NSRequest_SymlinkRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 6} -} - -func (m *NSRequest_SymlinkRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_SymlinkRequest.Unmarshal(m, b) -} -func (m *NSRequest_SymlinkRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_SymlinkRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_SymlinkRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_SymlinkRequest.Merge(m, src) -} -func (m *NSRequest_SymlinkRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_SymlinkRequest.Size(m) -} -func (m *NSRequest_SymlinkRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_SymlinkRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_SymlinkRequest proto.InternalMessageInfo - -func (m *NSRequest_SymlinkRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_SymlinkRequest) GetTarget() []byte { - if m != nil { - return m.Target - } - return nil -} - -type NSRequest_VersionRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Cmd NSRequest_VersionRequest_VERSION_CMD `protobuf:"varint,2,opt,name=cmd,proto3,enum=eos.rpc.NSRequest_VersionRequest_VERSION_CMD" json:"cmd,omitempty"` - Maxversion int32 `protobuf:"varint,3,opt,name=maxversion,proto3" json:"maxversion,omitempty"` - Grabversion string `protobuf:"bytes,4,opt,name=grabversion,proto3" json:"grabversion,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_VersionRequest) Reset() { *m = NSRequest_VersionRequest{} } -func (m *NSRequest_VersionRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_VersionRequest) ProtoMessage() {} -func (*NSRequest_VersionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 7} -} - -func (m *NSRequest_VersionRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_VersionRequest.Unmarshal(m, b) -} -func (m *NSRequest_VersionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_VersionRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_VersionRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_VersionRequest.Merge(m, src) -} -func (m *NSRequest_VersionRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_VersionRequest.Size(m) -} -func (m *NSRequest_VersionRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_VersionRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_VersionRequest proto.InternalMessageInfo - -func (m *NSRequest_VersionRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_VersionRequest) GetCmd() NSRequest_VersionRequest_VERSION_CMD { - if m != nil { - return m.Cmd - } - return NSRequest_VersionRequest_CREATE -} - -func (m *NSRequest_VersionRequest) GetMaxversion() int32 { - if m != nil { - return m.Maxversion - } - return 0 -} - -func (m *NSRequest_VersionRequest) GetGrabversion() string { - if m != nil { - return m.Grabversion - } - return "" -} - -type NSRequest_RecycleRequest struct { - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Cmd NSRequest_RecycleRequest_RECYCLE_CMD `protobuf:"varint,2,opt,name=cmd,proto3,enum=eos.rpc.NSRequest_RecycleRequest_RECYCLE_CMD" json:"cmd,omitempty"` - Restoreflag *NSRequest_RecycleRequest_RestoreFlags `protobuf:"bytes,3,opt,name=restoreflag,proto3" json:"restoreflag,omitempty"` - Purgedate *NSRequest_RecycleRequest_PurgeDate `protobuf:"bytes,4,opt,name=purgedate,proto3" json:"purgedate,omitempty"` - Listflag *NSRequest_RecycleRequest_ListFlags `protobuf:"bytes,5,opt,name=listflag,proto3" json:"listflag,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RecycleRequest) Reset() { *m = NSRequest_RecycleRequest{} } -func (m *NSRequest_RecycleRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RecycleRequest) ProtoMessage() {} -func (*NSRequest_RecycleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 8} -} - -func (m *NSRequest_RecycleRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RecycleRequest.Unmarshal(m, b) -} -func (m *NSRequest_RecycleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RecycleRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_RecycleRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RecycleRequest.Merge(m, src) -} -func (m *NSRequest_RecycleRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_RecycleRequest.Size(m) -} -func (m *NSRequest_RecycleRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RecycleRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RecycleRequest proto.InternalMessageInfo - -func (m *NSRequest_RecycleRequest) GetKey() string { - if m != nil { - return m.Key - } - return "" -} - -func (m *NSRequest_RecycleRequest) GetCmd() NSRequest_RecycleRequest_RECYCLE_CMD { - if m != nil { - return m.Cmd - } - return NSRequest_RecycleRequest_RESTORE -} - -func (m *NSRequest_RecycleRequest) GetRestoreflag() *NSRequest_RecycleRequest_RestoreFlags { - if m != nil { - return m.Restoreflag - } - return nil -} - -func (m *NSRequest_RecycleRequest) GetPurgedate() *NSRequest_RecycleRequest_PurgeDate { - if m != nil { - return m.Purgedate - } - return nil -} - -func (m *NSRequest_RecycleRequest) GetListflag() *NSRequest_RecycleRequest_ListFlags { - if m != nil { - return m.Listflag - } - return nil -} - -type NSRequest_RecycleRequest_RestoreFlags struct { - Force bool `protobuf:"varint,1,opt,name=force,proto3" json:"force,omitempty"` - Mkpath bool `protobuf:"varint,2,opt,name=mkpath,proto3" json:"mkpath,omitempty"` - Versions bool `protobuf:"varint,3,opt,name=versions,proto3" json:"versions,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RecycleRequest_RestoreFlags) Reset() { *m = NSRequest_RecycleRequest_RestoreFlags{} } -func (m *NSRequest_RecycleRequest_RestoreFlags) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RecycleRequest_RestoreFlags) ProtoMessage() {} -func (*NSRequest_RecycleRequest_RestoreFlags) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 8, 0} -} - -func (m *NSRequest_RecycleRequest_RestoreFlags) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RecycleRequest_RestoreFlags.Unmarshal(m, b) -} -func (m *NSRequest_RecycleRequest_RestoreFlags) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RecycleRequest_RestoreFlags.Marshal(b, m, deterministic) -} -func (m *NSRequest_RecycleRequest_RestoreFlags) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RecycleRequest_RestoreFlags.Merge(m, src) -} -func (m *NSRequest_RecycleRequest_RestoreFlags) XXX_Size() int { - return xxx_messageInfo_NSRequest_RecycleRequest_RestoreFlags.Size(m) -} -func (m *NSRequest_RecycleRequest_RestoreFlags) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RecycleRequest_RestoreFlags.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RecycleRequest_RestoreFlags proto.InternalMessageInfo - -func (m *NSRequest_RecycleRequest_RestoreFlags) GetForce() bool { - if m != nil { - return m.Force - } - return false -} - -func (m *NSRequest_RecycleRequest_RestoreFlags) GetMkpath() bool { - if m != nil { - return m.Mkpath - } - return false -} - -func (m *NSRequest_RecycleRequest_RestoreFlags) GetVersions() bool { - if m != nil { - return m.Versions - } - return false -} - -type NSRequest_RecycleRequest_PurgeDate struct { - Year int32 `protobuf:"varint,1,opt,name=year,proto3" json:"year,omitempty"` - Month int32 `protobuf:"varint,2,opt,name=month,proto3" json:"month,omitempty"` - Day int32 `protobuf:"varint,3,opt,name=day,proto3" json:"day,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RecycleRequest_PurgeDate) Reset() { *m = NSRequest_RecycleRequest_PurgeDate{} } -func (m *NSRequest_RecycleRequest_PurgeDate) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RecycleRequest_PurgeDate) ProtoMessage() {} -func (*NSRequest_RecycleRequest_PurgeDate) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 8, 1} -} - -func (m *NSRequest_RecycleRequest_PurgeDate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RecycleRequest_PurgeDate.Unmarshal(m, b) -} -func (m *NSRequest_RecycleRequest_PurgeDate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RecycleRequest_PurgeDate.Marshal(b, m, deterministic) -} -func (m *NSRequest_RecycleRequest_PurgeDate) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RecycleRequest_PurgeDate.Merge(m, src) -} -func (m *NSRequest_RecycleRequest_PurgeDate) XXX_Size() int { - return xxx_messageInfo_NSRequest_RecycleRequest_PurgeDate.Size(m) -} -func (m *NSRequest_RecycleRequest_PurgeDate) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RecycleRequest_PurgeDate.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RecycleRequest_PurgeDate proto.InternalMessageInfo - -func (m *NSRequest_RecycleRequest_PurgeDate) GetYear() int32 { - if m != nil { - return m.Year - } - return 0 -} - -func (m *NSRequest_RecycleRequest_PurgeDate) GetMonth() int32 { - if m != nil { - return m.Month - } - return 0 -} - -func (m *NSRequest_RecycleRequest_PurgeDate) GetDay() int32 { - if m != nil { - return m.Day - } - return 0 -} - -type NSRequest_RecycleRequest_ListFlags struct { - Maxentries int32 `protobuf:"varint,1,opt,name=maxentries,proto3" json:"maxentries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_RecycleRequest_ListFlags) Reset() { *m = NSRequest_RecycleRequest_ListFlags{} } -func (m *NSRequest_RecycleRequest_ListFlags) String() string { return proto.CompactTextString(m) } -func (*NSRequest_RecycleRequest_ListFlags) ProtoMessage() {} -func (*NSRequest_RecycleRequest_ListFlags) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 8, 2} -} - -func (m *NSRequest_RecycleRequest_ListFlags) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_RecycleRequest_ListFlags.Unmarshal(m, b) -} -func (m *NSRequest_RecycleRequest_ListFlags) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_RecycleRequest_ListFlags.Marshal(b, m, deterministic) -} -func (m *NSRequest_RecycleRequest_ListFlags) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_RecycleRequest_ListFlags.Merge(m, src) -} -func (m *NSRequest_RecycleRequest_ListFlags) XXX_Size() int { - return xxx_messageInfo_NSRequest_RecycleRequest_ListFlags.Size(m) -} -func (m *NSRequest_RecycleRequest_ListFlags) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_RecycleRequest_ListFlags.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_RecycleRequest_ListFlags proto.InternalMessageInfo - -func (m *NSRequest_RecycleRequest_ListFlags) GetMaxentries() int32 { - if m != nil { - return m.Maxentries - } - return 0 -} - -type NSRequest_SetXAttrRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Xattrs map[string][]byte `protobuf:"bytes,2,rep,name=xattrs,proto3" json:"xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Recursive bool `protobuf:"varint,3,opt,name=recursive,proto3" json:"recursive,omitempty"` - Keystodelete []string `protobuf:"bytes,4,rep,name=keystodelete,proto3" json:"keystodelete,omitempty"` - Create bool `protobuf:"varint,5,opt,name=create,proto3" json:"create,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_SetXAttrRequest) Reset() { *m = NSRequest_SetXAttrRequest{} } -func (m *NSRequest_SetXAttrRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_SetXAttrRequest) ProtoMessage() {} -func (*NSRequest_SetXAttrRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 9} -} - -func (m *NSRequest_SetXAttrRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_SetXAttrRequest.Unmarshal(m, b) -} -func (m *NSRequest_SetXAttrRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_SetXAttrRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_SetXAttrRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_SetXAttrRequest.Merge(m, src) -} -func (m *NSRequest_SetXAttrRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_SetXAttrRequest.Size(m) -} -func (m *NSRequest_SetXAttrRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_SetXAttrRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_SetXAttrRequest proto.InternalMessageInfo - -func (m *NSRequest_SetXAttrRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_SetXAttrRequest) GetXattrs() map[string][]byte { - if m != nil { - return m.Xattrs - } - return nil -} - -func (m *NSRequest_SetXAttrRequest) GetRecursive() bool { - if m != nil { - return m.Recursive - } - return false -} - -func (m *NSRequest_SetXAttrRequest) GetKeystodelete() []string { - if m != nil { - return m.Keystodelete - } - return nil -} - -func (m *NSRequest_SetXAttrRequest) GetCreate() bool { - if m != nil { - return m.Create - } - return false -} - -type NSRequest_ChownRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Owner *RoleId `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_ChownRequest) Reset() { *m = NSRequest_ChownRequest{} } -func (m *NSRequest_ChownRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_ChownRequest) ProtoMessage() {} -func (*NSRequest_ChownRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 10} -} - -func (m *NSRequest_ChownRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_ChownRequest.Unmarshal(m, b) -} -func (m *NSRequest_ChownRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_ChownRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_ChownRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_ChownRequest.Merge(m, src) -} -func (m *NSRequest_ChownRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_ChownRequest.Size(m) -} -func (m *NSRequest_ChownRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_ChownRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_ChownRequest proto.InternalMessageInfo - -func (m *NSRequest_ChownRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_ChownRequest) GetOwner() *RoleId { - if m != nil { - return m.Owner - } - return nil -} - -type NSRequest_ChmodRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Mode int64 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_ChmodRequest) Reset() { *m = NSRequest_ChmodRequest{} } -func (m *NSRequest_ChmodRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_ChmodRequest) ProtoMessage() {} -func (*NSRequest_ChmodRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 11} -} - -func (m *NSRequest_ChmodRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_ChmodRequest.Unmarshal(m, b) -} -func (m *NSRequest_ChmodRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_ChmodRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_ChmodRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_ChmodRequest.Merge(m, src) -} -func (m *NSRequest_ChmodRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_ChmodRequest.Size(m) -} -func (m *NSRequest_ChmodRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_ChmodRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_ChmodRequest proto.InternalMessageInfo - -func (m *NSRequest_ChmodRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_ChmodRequest) GetMode() int64 { - if m != nil { - return m.Mode - } - return 0 -} - -type NSRequest_AclRequest struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Cmd NSRequest_AclRequest_ACL_COMMAND `protobuf:"varint,2,opt,name=cmd,proto3,enum=eos.rpc.NSRequest_AclRequest_ACL_COMMAND" json:"cmd,omitempty"` - Recursive bool `protobuf:"varint,3,opt,name=recursive,proto3" json:"recursive,omitempty"` - Type NSRequest_AclRequest_ACL_TYPE `protobuf:"varint,4,opt,name=type,proto3,enum=eos.rpc.NSRequest_AclRequest_ACL_TYPE" json:"type,omitempty"` - Rule string `protobuf:"bytes,5,opt,name=rule,proto3" json:"rule,omitempty"` - Position uint32 `protobuf:"varint,6,opt,name=position,proto3" json:"position,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_AclRequest) Reset() { *m = NSRequest_AclRequest{} } -func (m *NSRequest_AclRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_AclRequest) ProtoMessage() {} -func (*NSRequest_AclRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 12} -} - -func (m *NSRequest_AclRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_AclRequest.Unmarshal(m, b) -} -func (m *NSRequest_AclRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_AclRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_AclRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_AclRequest.Merge(m, src) -} -func (m *NSRequest_AclRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_AclRequest.Size(m) -} -func (m *NSRequest_AclRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_AclRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_AclRequest proto.InternalMessageInfo - -func (m *NSRequest_AclRequest) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_AclRequest) GetCmd() NSRequest_AclRequest_ACL_COMMAND { - if m != nil { - return m.Cmd - } - return NSRequest_AclRequest_NONE -} - -func (m *NSRequest_AclRequest) GetRecursive() bool { - if m != nil { - return m.Recursive - } - return false -} - -func (m *NSRequest_AclRequest) GetType() NSRequest_AclRequest_ACL_TYPE { - if m != nil { - return m.Type - } - return NSRequest_AclRequest_USER_ACL -} - -func (m *NSRequest_AclRequest) GetRule() string { - if m != nil { - return m.Rule - } - return "" -} - -func (m *NSRequest_AclRequest) GetPosition() uint32 { - if m != nil { - return m.Position - } - return 0 -} - -type NSRequest_TokenRequest struct { - Token *ShareToken `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_TokenRequest) Reset() { *m = NSRequest_TokenRequest{} } -func (m *NSRequest_TokenRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_TokenRequest) ProtoMessage() {} -func (*NSRequest_TokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 13} -} - -func (m *NSRequest_TokenRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_TokenRequest.Unmarshal(m, b) -} -func (m *NSRequest_TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_TokenRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_TokenRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_TokenRequest.Merge(m, src) -} -func (m *NSRequest_TokenRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_TokenRequest.Size(m) -} -func (m *NSRequest_TokenRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_TokenRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_TokenRequest proto.InternalMessageInfo - -func (m *NSRequest_TokenRequest) GetToken() *ShareToken { - if m != nil { - return m.Token - } - return nil -} - -type NSRequest_QuotaRequest struct { - Path []byte `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - Id *RoleId `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Op QUOTAOP `protobuf:"varint,3,opt,name=op,proto3,enum=eos.rpc.QUOTAOP" json:"op,omitempty"` - Maxfiles uint64 `protobuf:"varint,4,opt,name=maxfiles,proto3" json:"maxfiles,omitempty"` - Maxbytes uint64 `protobuf:"varint,5,opt,name=maxbytes,proto3" json:"maxbytes,omitempty"` - Entry QUOTAENTRY `protobuf:"varint,6,opt,name=entry,proto3,enum=eos.rpc.QUOTAENTRY" json:"entry,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_QuotaRequest) Reset() { *m = NSRequest_QuotaRequest{} } -func (m *NSRequest_QuotaRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_QuotaRequest) ProtoMessage() {} -func (*NSRequest_QuotaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 14} -} - -func (m *NSRequest_QuotaRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_QuotaRequest.Unmarshal(m, b) -} -func (m *NSRequest_QuotaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_QuotaRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_QuotaRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_QuotaRequest.Merge(m, src) -} -func (m *NSRequest_QuotaRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_QuotaRequest.Size(m) -} -func (m *NSRequest_QuotaRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_QuotaRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_QuotaRequest proto.InternalMessageInfo - -func (m *NSRequest_QuotaRequest) GetPath() []byte { - if m != nil { - return m.Path - } - return nil -} - -func (m *NSRequest_QuotaRequest) GetId() *RoleId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSRequest_QuotaRequest) GetOp() QUOTAOP { - if m != nil { - return m.Op - } - return QUOTAOP_GET -} - -func (m *NSRequest_QuotaRequest) GetMaxfiles() uint64 { - if m != nil { - return m.Maxfiles - } - return 0 -} - -func (m *NSRequest_QuotaRequest) GetMaxbytes() uint64 { - if m != nil { - return m.Maxbytes - } - return 0 -} - -func (m *NSRequest_QuotaRequest) GetEntry() QUOTAENTRY { - if m != nil { - return m.Entry - } - return QUOTAENTRY_NONE -} - -type NSRequest_ShareRequest struct { - // Types that are valid to be assigned to Subcmd: - // - // *NSRequest_ShareRequest_Ls - // *NSRequest_ShareRequest_Op - Subcmd isNSRequest_ShareRequest_Subcmd `protobuf_oneof:"subcmd"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_ShareRequest) Reset() { *m = NSRequest_ShareRequest{} } -func (m *NSRequest_ShareRequest) String() string { return proto.CompactTextString(m) } -func (*NSRequest_ShareRequest) ProtoMessage() {} -func (*NSRequest_ShareRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 15} -} - -func (m *NSRequest_ShareRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_ShareRequest.Unmarshal(m, b) -} -func (m *NSRequest_ShareRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_ShareRequest.Marshal(b, m, deterministic) -} -func (m *NSRequest_ShareRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_ShareRequest.Merge(m, src) -} -func (m *NSRequest_ShareRequest) XXX_Size() int { - return xxx_messageInfo_NSRequest_ShareRequest.Size(m) -} -func (m *NSRequest_ShareRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_ShareRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_ShareRequest proto.InternalMessageInfo - -type isNSRequest_ShareRequest_Subcmd interface { - isNSRequest_ShareRequest_Subcmd() -} - -type NSRequest_ShareRequest_Ls struct { - Ls *NSRequest_ShareRequest_LsShare `protobuf:"bytes,1,opt,name=ls,proto3,oneof"` -} - -type NSRequest_ShareRequest_Op struct { - Op *NSRequest_ShareRequest_OperateShare `protobuf:"bytes,2,opt,name=op,proto3,oneof"` -} - -func (*NSRequest_ShareRequest_Ls) isNSRequest_ShareRequest_Subcmd() {} - -func (*NSRequest_ShareRequest_Op) isNSRequest_ShareRequest_Subcmd() {} - -func (m *NSRequest_ShareRequest) GetSubcmd() isNSRequest_ShareRequest_Subcmd { - if m != nil { - return m.Subcmd - } - return nil -} - -func (m *NSRequest_ShareRequest) GetLs() *NSRequest_ShareRequest_LsShare { - if x, ok := m.GetSubcmd().(*NSRequest_ShareRequest_Ls); ok { - return x.Ls - } - return nil -} - -func (m *NSRequest_ShareRequest) GetOp() *NSRequest_ShareRequest_OperateShare { - if x, ok := m.GetSubcmd().(*NSRequest_ShareRequest_Op); ok { - return x.Op - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*NSRequest_ShareRequest) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*NSRequest_ShareRequest_Ls)(nil), - (*NSRequest_ShareRequest_Op)(nil), - } -} - -type NSRequest_ShareRequest_LsShare struct { - Outformat NSRequest_ShareRequest_LsShare_OutFormat `protobuf:"varint,1,opt,name=outformat,proto3,enum=eos.rpc.NSRequest_ShareRequest_LsShare_OutFormat" json:"outformat,omitempty"` - Selection string `protobuf:"bytes,2,opt,name=selection,proto3" json:"selection,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_ShareRequest_LsShare) Reset() { *m = NSRequest_ShareRequest_LsShare{} } -func (m *NSRequest_ShareRequest_LsShare) String() string { return proto.CompactTextString(m) } -func (*NSRequest_ShareRequest_LsShare) ProtoMessage() {} -func (*NSRequest_ShareRequest_LsShare) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 15, 0} -} - -func (m *NSRequest_ShareRequest_LsShare) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_ShareRequest_LsShare.Unmarshal(m, b) -} -func (m *NSRequest_ShareRequest_LsShare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_ShareRequest_LsShare.Marshal(b, m, deterministic) -} -func (m *NSRequest_ShareRequest_LsShare) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_ShareRequest_LsShare.Merge(m, src) -} -func (m *NSRequest_ShareRequest_LsShare) XXX_Size() int { - return xxx_messageInfo_NSRequest_ShareRequest_LsShare.Size(m) -} -func (m *NSRequest_ShareRequest_LsShare) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_ShareRequest_LsShare.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_ShareRequest_LsShare proto.InternalMessageInfo - -func (m *NSRequest_ShareRequest_LsShare) GetOutformat() NSRequest_ShareRequest_LsShare_OutFormat { - if m != nil { - return m.Outformat - } - return NSRequest_ShareRequest_LsShare_NONE -} - -func (m *NSRequest_ShareRequest_LsShare) GetSelection() string { - if m != nil { - return m.Selection - } - return "" -} - -type NSRequest_ShareRequest_OperateShare struct { - Op NSRequest_ShareRequest_OperateShare_Op `protobuf:"varint,1,opt,name=op,proto3,enum=eos.rpc.NSRequest_ShareRequest_OperateShare_Op" json:"op,omitempty"` - Share string `protobuf:"bytes,2,opt,name=share,proto3" json:"share,omitempty"` - Acl string `protobuf:"bytes,3,opt,name=acl,proto3" json:"acl,omitempty"` - Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` - User string `protobuf:"bytes,5,opt,name=user,proto3" json:"user,omitempty"` - Group string `protobuf:"bytes,6,opt,name=group,proto3" json:"group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSRequest_ShareRequest_OperateShare) Reset() { *m = NSRequest_ShareRequest_OperateShare{} } -func (m *NSRequest_ShareRequest_OperateShare) String() string { return proto.CompactTextString(m) } -func (*NSRequest_ShareRequest_OperateShare) ProtoMessage() {} -func (*NSRequest_ShareRequest_OperateShare) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{20, 15, 1} -} - -func (m *NSRequest_ShareRequest_OperateShare) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSRequest_ShareRequest_OperateShare.Unmarshal(m, b) -} -func (m *NSRequest_ShareRequest_OperateShare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSRequest_ShareRequest_OperateShare.Marshal(b, m, deterministic) -} -func (m *NSRequest_ShareRequest_OperateShare) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSRequest_ShareRequest_OperateShare.Merge(m, src) -} -func (m *NSRequest_ShareRequest_OperateShare) XXX_Size() int { - return xxx_messageInfo_NSRequest_ShareRequest_OperateShare.Size(m) -} -func (m *NSRequest_ShareRequest_OperateShare) XXX_DiscardUnknown() { - xxx_messageInfo_NSRequest_ShareRequest_OperateShare.DiscardUnknown(m) -} - -var xxx_messageInfo_NSRequest_ShareRequest_OperateShare proto.InternalMessageInfo - -func (m *NSRequest_ShareRequest_OperateShare) GetOp() NSRequest_ShareRequest_OperateShare_Op { - if m != nil { - return m.Op - } - return NSRequest_ShareRequest_OperateShare_CREATE -} - -func (m *NSRequest_ShareRequest_OperateShare) GetShare() string { - if m != nil { - return m.Share - } - return "" -} - -func (m *NSRequest_ShareRequest_OperateShare) GetAcl() string { - if m != nil { - return m.Acl - } - return "" -} - -func (m *NSRequest_ShareRequest_OperateShare) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -func (m *NSRequest_ShareRequest_OperateShare) GetUser() string { - if m != nil { - return m.User - } - return "" -} - -func (m *NSRequest_ShareRequest_OperateShare) GetGroup() string { - if m != nil { - return m.Group - } - return "" -} - -type NSResponse struct { - Error *NSResponse_ErrorResponse `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` - Version *NSResponse_VersionResponse `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Recycle *NSResponse_RecycleResponse `protobuf:"bytes,3,opt,name=recycle,proto3" json:"recycle,omitempty"` - Acl *NSResponse_AclResponse `protobuf:"bytes,4,opt,name=acl,proto3" json:"acl,omitempty"` - Quota *NSResponse_QuotaResponse `protobuf:"bytes,5,opt,name=quota,proto3" json:"quota,omitempty"` - Share *NSResponse_ShareResponse `protobuf:"bytes,6,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse) Reset() { *m = NSResponse{} } -func (m *NSResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse) ProtoMessage() {} -func (*NSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21} -} - -func (m *NSResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse.Unmarshal(m, b) -} -func (m *NSResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse.Merge(m, src) -} -func (m *NSResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse.Size(m) -} -func (m *NSResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse proto.InternalMessageInfo - -func (m *NSResponse) GetError() *NSResponse_ErrorResponse { - if m != nil { - return m.Error - } - return nil -} - -func (m *NSResponse) GetVersion() *NSResponse_VersionResponse { - if m != nil { - return m.Version - } - return nil -} - -func (m *NSResponse) GetRecycle() *NSResponse_RecycleResponse { - if m != nil { - return m.Recycle - } - return nil -} - -func (m *NSResponse) GetAcl() *NSResponse_AclResponse { - if m != nil { - return m.Acl - } - return nil -} - -func (m *NSResponse) GetQuota() *NSResponse_QuotaResponse { - if m != nil { - return m.Quota - } - return nil -} - -func (m *NSResponse) GetShare() *NSResponse_ShareResponse { - if m != nil { - return m.Share - } - return nil -} - -type NSResponse_ErrorResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_ErrorResponse) Reset() { *m = NSResponse_ErrorResponse{} } -func (m *NSResponse_ErrorResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse_ErrorResponse) ProtoMessage() {} -func (*NSResponse_ErrorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 0} -} - -func (m *NSResponse_ErrorResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_ErrorResponse.Unmarshal(m, b) -} -func (m *NSResponse_ErrorResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_ErrorResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse_ErrorResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_ErrorResponse.Merge(m, src) -} -func (m *NSResponse_ErrorResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse_ErrorResponse.Size(m) -} -func (m *NSResponse_ErrorResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_ErrorResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_ErrorResponse proto.InternalMessageInfo - -func (m *NSResponse_ErrorResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NSResponse_ErrorResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -type NSResponse_VersionResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Versions []*NSResponse_VersionResponse_VersionInfo `protobuf:"bytes,3,rep,name=versions,proto3" json:"versions,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_VersionResponse) Reset() { *m = NSResponse_VersionResponse{} } -func (m *NSResponse_VersionResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse_VersionResponse) ProtoMessage() {} -func (*NSResponse_VersionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 1} -} - -func (m *NSResponse_VersionResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_VersionResponse.Unmarshal(m, b) -} -func (m *NSResponse_VersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_VersionResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse_VersionResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_VersionResponse.Merge(m, src) -} -func (m *NSResponse_VersionResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse_VersionResponse.Size(m) -} -func (m *NSResponse_VersionResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_VersionResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_VersionResponse proto.InternalMessageInfo - -func (m *NSResponse_VersionResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NSResponse_VersionResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *NSResponse_VersionResponse) GetVersions() []*NSResponse_VersionResponse_VersionInfo { - if m != nil { - return m.Versions - } - return nil -} - -type NSResponse_VersionResponse_VersionInfo struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Mtime *Time `protobuf:"bytes,2,opt,name=mtime,proto3" json:"mtime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_VersionResponse_VersionInfo) Reset() { - *m = NSResponse_VersionResponse_VersionInfo{} -} -func (m *NSResponse_VersionResponse_VersionInfo) String() string { return proto.CompactTextString(m) } -func (*NSResponse_VersionResponse_VersionInfo) ProtoMessage() {} -func (*NSResponse_VersionResponse_VersionInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 1, 0} -} - -func (m *NSResponse_VersionResponse_VersionInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_VersionResponse_VersionInfo.Unmarshal(m, b) -} -func (m *NSResponse_VersionResponse_VersionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_VersionResponse_VersionInfo.Marshal(b, m, deterministic) -} -func (m *NSResponse_VersionResponse_VersionInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_VersionResponse_VersionInfo.Merge(m, src) -} -func (m *NSResponse_VersionResponse_VersionInfo) XXX_Size() int { - return xxx_messageInfo_NSResponse_VersionResponse_VersionInfo.Size(m) -} -func (m *NSResponse_VersionResponse_VersionInfo) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_VersionResponse_VersionInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_VersionResponse_VersionInfo proto.InternalMessageInfo - -func (m *NSResponse_VersionResponse_VersionInfo) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSResponse_VersionResponse_VersionInfo) GetMtime() *Time { - if m != nil { - return m.Mtime - } - return nil -} - -type NSResponse_RecycleResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Recycles []*NSResponse_RecycleResponse_RecycleInfo `protobuf:"bytes,3,rep,name=recycles,proto3" json:"recycles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_RecycleResponse) Reset() { *m = NSResponse_RecycleResponse{} } -func (m *NSResponse_RecycleResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse_RecycleResponse) ProtoMessage() {} -func (*NSResponse_RecycleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 2} -} - -func (m *NSResponse_RecycleResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_RecycleResponse.Unmarshal(m, b) -} -func (m *NSResponse_RecycleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_RecycleResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse_RecycleResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_RecycleResponse.Merge(m, src) -} -func (m *NSResponse_RecycleResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse_RecycleResponse.Size(m) -} -func (m *NSResponse_RecycleResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_RecycleResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_RecycleResponse proto.InternalMessageInfo - -func (m *NSResponse_RecycleResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NSResponse_RecycleResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *NSResponse_RecycleResponse) GetRecycles() []*NSResponse_RecycleResponse_RecycleInfo { - if m != nil { - return m.Recycles - } - return nil -} - -type NSResponse_RecycleResponse_RecycleInfo struct { - Id *MDId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Owner *RoleId `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - Dtime *Time `protobuf:"bytes,3,opt,name=dtime,proto3" json:"dtime,omitempty"` - Size uint64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` - Type NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE `protobuf:"varint,5,opt,name=type,proto3,enum=eos.rpc.NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE" json:"type,omitempty"` - Key string `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) Reset() { - *m = NSResponse_RecycleResponse_RecycleInfo{} -} -func (m *NSResponse_RecycleResponse_RecycleInfo) String() string { return proto.CompactTextString(m) } -func (*NSResponse_RecycleResponse_RecycleInfo) ProtoMessage() {} -func (*NSResponse_RecycleResponse_RecycleInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 2, 0} -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_RecycleResponse_RecycleInfo.Unmarshal(m, b) -} -func (m *NSResponse_RecycleResponse_RecycleInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_RecycleResponse_RecycleInfo.Marshal(b, m, deterministic) -} -func (m *NSResponse_RecycleResponse_RecycleInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_RecycleResponse_RecycleInfo.Merge(m, src) -} -func (m *NSResponse_RecycleResponse_RecycleInfo) XXX_Size() int { - return xxx_messageInfo_NSResponse_RecycleResponse_RecycleInfo.Size(m) -} -func (m *NSResponse_RecycleResponse_RecycleInfo) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_RecycleResponse_RecycleInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_RecycleResponse_RecycleInfo proto.InternalMessageInfo - -func (m *NSResponse_RecycleResponse_RecycleInfo) GetId() *MDId { - if m != nil { - return m.Id - } - return nil -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) GetOwner() *RoleId { - if m != nil { - return m.Owner - } - return nil -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) GetDtime() *Time { - if m != nil { - return m.Dtime - } - return nil -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) GetSize() uint64 { - if m != nil { - return m.Size - } - return 0 -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) GetType() NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE { - if m != nil { - return m.Type - } - return NSResponse_RecycleResponse_RecycleInfo_FILE -} - -func (m *NSResponse_RecycleResponse_RecycleInfo) GetKey() string { - if m != nil { - return m.Key - } - return "" -} - -type NSResponse_AclResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Rule string `protobuf:"bytes,3,opt,name=rule,proto3" json:"rule,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_AclResponse) Reset() { *m = NSResponse_AclResponse{} } -func (m *NSResponse_AclResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse_AclResponse) ProtoMessage() {} -func (*NSResponse_AclResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 3} -} - -func (m *NSResponse_AclResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_AclResponse.Unmarshal(m, b) -} -func (m *NSResponse_AclResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_AclResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse_AclResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_AclResponse.Merge(m, src) -} -func (m *NSResponse_AclResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse_AclResponse.Size(m) -} -func (m *NSResponse_AclResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_AclResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_AclResponse proto.InternalMessageInfo - -func (m *NSResponse_AclResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NSResponse_AclResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *NSResponse_AclResponse) GetRule() string { - if m != nil { - return m.Rule - } - return "" -} - -type NSResponse_QuotaResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Quotanode []*QuotaProto `protobuf:"bytes,3,rep,name=quotanode,proto3" json:"quotanode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_QuotaResponse) Reset() { *m = NSResponse_QuotaResponse{} } -func (m *NSResponse_QuotaResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse_QuotaResponse) ProtoMessage() {} -func (*NSResponse_QuotaResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 4} -} - -func (m *NSResponse_QuotaResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_QuotaResponse.Unmarshal(m, b) -} -func (m *NSResponse_QuotaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_QuotaResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse_QuotaResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_QuotaResponse.Merge(m, src) -} -func (m *NSResponse_QuotaResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse_QuotaResponse.Size(m) -} -func (m *NSResponse_QuotaResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_QuotaResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_QuotaResponse proto.InternalMessageInfo - -func (m *NSResponse_QuotaResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NSResponse_QuotaResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *NSResponse_QuotaResponse) GetQuotanode() []*QuotaProto { - if m != nil { - return m.Quotanode - } - return nil -} - -type NSResponse_ShareInfo struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Root string `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"` - Rule string `protobuf:"bytes,3,opt,name=rule,proto3" json:"rule,omitempty"` - Uid uint64 `protobuf:"varint,4,opt,name=uid,proto3" json:"uid,omitempty"` - Nshared uint64 `protobuf:"varint,5,opt,name=nshared,proto3" json:"nshared,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_ShareInfo) Reset() { *m = NSResponse_ShareInfo{} } -func (m *NSResponse_ShareInfo) String() string { return proto.CompactTextString(m) } -func (*NSResponse_ShareInfo) ProtoMessage() {} -func (*NSResponse_ShareInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 5} -} - -func (m *NSResponse_ShareInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_ShareInfo.Unmarshal(m, b) -} -func (m *NSResponse_ShareInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_ShareInfo.Marshal(b, m, deterministic) -} -func (m *NSResponse_ShareInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_ShareInfo.Merge(m, src) -} -func (m *NSResponse_ShareInfo) XXX_Size() int { - return xxx_messageInfo_NSResponse_ShareInfo.Size(m) -} -func (m *NSResponse_ShareInfo) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_ShareInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_ShareInfo proto.InternalMessageInfo - -func (m *NSResponse_ShareInfo) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *NSResponse_ShareInfo) GetRoot() string { - if m != nil { - return m.Root - } - return "" -} - -func (m *NSResponse_ShareInfo) GetRule() string { - if m != nil { - return m.Rule - } - return "" -} - -func (m *NSResponse_ShareInfo) GetUid() uint64 { - if m != nil { - return m.Uid - } - return 0 -} - -func (m *NSResponse_ShareInfo) GetNshared() uint64 { - if m != nil { - return m.Nshared - } - return 0 -} - -type NSResponse_ShareAccess struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Granted bool `protobuf:"varint,2,opt,name=granted,proto3" json:"granted,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_ShareAccess) Reset() { *m = NSResponse_ShareAccess{} } -func (m *NSResponse_ShareAccess) String() string { return proto.CompactTextString(m) } -func (*NSResponse_ShareAccess) ProtoMessage() {} -func (*NSResponse_ShareAccess) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 6} -} - -func (m *NSResponse_ShareAccess) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_ShareAccess.Unmarshal(m, b) -} -func (m *NSResponse_ShareAccess) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_ShareAccess.Marshal(b, m, deterministic) -} -func (m *NSResponse_ShareAccess) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_ShareAccess.Merge(m, src) -} -func (m *NSResponse_ShareAccess) XXX_Size() int { - return xxx_messageInfo_NSResponse_ShareAccess.Size(m) -} -func (m *NSResponse_ShareAccess) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_ShareAccess.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_ShareAccess proto.InternalMessageInfo - -func (m *NSResponse_ShareAccess) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *NSResponse_ShareAccess) GetGranted() bool { - if m != nil { - return m.Granted - } - return false -} - -type NSResponse_ShareResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Shares []*NSResponse_ShareInfo `protobuf:"bytes,3,rep,name=shares,proto3" json:"shares,omitempty"` - Access []*NSResponse_ShareAccess `protobuf:"bytes,4,rep,name=access,proto3" json:"access,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NSResponse_ShareResponse) Reset() { *m = NSResponse_ShareResponse{} } -func (m *NSResponse_ShareResponse) String() string { return proto.CompactTextString(m) } -func (*NSResponse_ShareResponse) ProtoMessage() {} -func (*NSResponse_ShareResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{21, 7} -} - -func (m *NSResponse_ShareResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NSResponse_ShareResponse.Unmarshal(m, b) -} -func (m *NSResponse_ShareResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NSResponse_ShareResponse.Marshal(b, m, deterministic) -} -func (m *NSResponse_ShareResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NSResponse_ShareResponse.Merge(m, src) -} -func (m *NSResponse_ShareResponse) XXX_Size() int { - return xxx_messageInfo_NSResponse_ShareResponse.Size(m) -} -func (m *NSResponse_ShareResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NSResponse_ShareResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NSResponse_ShareResponse proto.InternalMessageInfo - -func (m *NSResponse_ShareResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NSResponse_ShareResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *NSResponse_ShareResponse) GetShares() []*NSResponse_ShareInfo { - if m != nil { - return m.Shares - } - return nil -} - -func (m *NSResponse_ShareResponse) GetAccess() []*NSResponse_ShareAccess { - if m != nil { - return m.Access - } - return nil -} - -type NsStatRequest struct { - Authkey string `protobuf:"bytes,1,opt,name=authkey,proto3" json:"authkey,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NsStatRequest) Reset() { *m = NsStatRequest{} } -func (m *NsStatRequest) String() string { return proto.CompactTextString(m) } -func (*NsStatRequest) ProtoMessage() {} -func (*NsStatRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{22} -} - -func (m *NsStatRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NsStatRequest.Unmarshal(m, b) -} -func (m *NsStatRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NsStatRequest.Marshal(b, m, deterministic) -} -func (m *NsStatRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NsStatRequest.Merge(m, src) -} -func (m *NsStatRequest) XXX_Size() int { - return xxx_messageInfo_NsStatRequest.Size(m) -} -func (m *NsStatRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NsStatRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NsStatRequest proto.InternalMessageInfo - -func (m *NsStatRequest) GetAuthkey() string { - if m != nil { - return m.Authkey - } - return "" -} - -type NsStatResponse struct { - Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Emsg string `protobuf:"bytes,2,opt,name=emsg,proto3" json:"emsg,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - Nfiles uint64 `protobuf:"varint,4,opt,name=nfiles,proto3" json:"nfiles,omitempty"` - Ncontainers uint64 `protobuf:"varint,5,opt,name=ncontainers,proto3" json:"ncontainers,omitempty"` - BootTime uint64 `protobuf:"varint,6,opt,name=boot_time,json=bootTime,proto3" json:"boot_time,omitempty"` - CurrentFid uint64 `protobuf:"varint,7,opt,name=current_fid,json=currentFid,proto3" json:"current_fid,omitempty"` - CurrentCid uint64 `protobuf:"varint,8,opt,name=current_cid,json=currentCid,proto3" json:"current_cid,omitempty"` - MemVirtual uint64 `protobuf:"varint,9,opt,name=mem_virtual,json=memVirtual,proto3" json:"mem_virtual,omitempty"` - MemResident uint64 `protobuf:"varint,10,opt,name=mem_resident,json=memResident,proto3" json:"mem_resident,omitempty"` - MemShare uint64 `protobuf:"varint,11,opt,name=mem_share,json=memShare,proto3" json:"mem_share,omitempty"` - MemGrowth uint64 `protobuf:"varint,12,opt,name=mem_growth,json=memGrowth,proto3" json:"mem_growth,omitempty"` - Threads uint64 `protobuf:"varint,13,opt,name=threads,proto3" json:"threads,omitempty"` - Fds uint64 `protobuf:"varint,14,opt,name=fds,proto3" json:"fds,omitempty"` - Uptime uint64 `protobuf:"varint,15,opt,name=uptime,proto3" json:"uptime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NsStatResponse) Reset() { *m = NsStatResponse{} } -func (m *NsStatResponse) String() string { return proto.CompactTextString(m) } -func (*NsStatResponse) ProtoMessage() {} -func (*NsStatResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{23} -} - -func (m *NsStatResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NsStatResponse.Unmarshal(m, b) -} -func (m *NsStatResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NsStatResponse.Marshal(b, m, deterministic) -} -func (m *NsStatResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_NsStatResponse.Merge(m, src) -} -func (m *NsStatResponse) XXX_Size() int { - return xxx_messageInfo_NsStatResponse.Size(m) -} -func (m *NsStatResponse) XXX_DiscardUnknown() { - xxx_messageInfo_NsStatResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_NsStatResponse proto.InternalMessageInfo - -func (m *NsStatResponse) GetCode() int64 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *NsStatResponse) GetEmsg() string { - if m != nil { - return m.Emsg - } - return "" -} - -func (m *NsStatResponse) GetState() string { - if m != nil { - return m.State - } - return "" -} - -func (m *NsStatResponse) GetNfiles() uint64 { - if m != nil { - return m.Nfiles - } - return 0 -} - -func (m *NsStatResponse) GetNcontainers() uint64 { - if m != nil { - return m.Ncontainers - } - return 0 -} - -func (m *NsStatResponse) GetBootTime() uint64 { - if m != nil { - return m.BootTime - } - return 0 -} - -func (m *NsStatResponse) GetCurrentFid() uint64 { - if m != nil { - return m.CurrentFid - } - return 0 -} - -func (m *NsStatResponse) GetCurrentCid() uint64 { - if m != nil { - return m.CurrentCid - } - return 0 -} - -func (m *NsStatResponse) GetMemVirtual() uint64 { - if m != nil { - return m.MemVirtual - } - return 0 -} - -func (m *NsStatResponse) GetMemResident() uint64 { - if m != nil { - return m.MemResident - } - return 0 -} - -func (m *NsStatResponse) GetMemShare() uint64 { - if m != nil { - return m.MemShare - } - return 0 -} - -func (m *NsStatResponse) GetMemGrowth() uint64 { - if m != nil { - return m.MemGrowth - } - return 0 -} - -func (m *NsStatResponse) GetThreads() uint64 { - if m != nil { - return m.Threads - } - return 0 -} - -func (m *NsStatResponse) GetFds() uint64 { - if m != nil { - return m.Fds - } - return 0 -} - -func (m *NsStatResponse) GetUptime() uint64 { - if m != nil { - return m.Uptime - } - return 0 -} - -type ManilaRequest struct { - RequestType MANILA_REQUEST_TYPE `protobuf:"varint,1,opt,name=request_type,json=requestType,proto3,enum=eos.rpc.MANILA_REQUEST_TYPE" json:"request_type,omitempty"` - AuthKey string `protobuf:"bytes,2,opt,name=auth_key,json=authKey,proto3" json:"auth_key,omitempty"` - Protocol string `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"` - ShareName string `protobuf:"bytes,4,opt,name=share_name,json=shareName,proto3" json:"share_name,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` - ShareId string `protobuf:"bytes,6,opt,name=share_id,json=shareId,proto3" json:"share_id,omitempty"` - ShareGroupId string `protobuf:"bytes,7,opt,name=share_group_id,json=shareGroupId,proto3" json:"share_group_id,omitempty"` - Quota int32 `protobuf:"varint,8,opt,name=quota,proto3" json:"quota,omitempty"` - Creator string `protobuf:"bytes,9,opt,name=creator,proto3" json:"creator,omitempty"` - Egroup string `protobuf:"bytes,10,opt,name=egroup,proto3" json:"egroup,omitempty"` - AdminEgroup string `protobuf:"bytes,11,opt,name=admin_egroup,json=adminEgroup,proto3" json:"admin_egroup,omitempty"` - ShareHost string `protobuf:"bytes,12,opt,name=share_host,json=shareHost,proto3" json:"share_host,omitempty"` - ShareLocation string `protobuf:"bytes,13,opt,name=share_location,json=shareLocation,proto3" json:"share_location,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ManilaRequest) Reset() { *m = ManilaRequest{} } -func (m *ManilaRequest) String() string { return proto.CompactTextString(m) } -func (*ManilaRequest) ProtoMessage() {} -func (*ManilaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{24} -} - -func (m *ManilaRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ManilaRequest.Unmarshal(m, b) -} -func (m *ManilaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ManilaRequest.Marshal(b, m, deterministic) -} -func (m *ManilaRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ManilaRequest.Merge(m, src) -} -func (m *ManilaRequest) XXX_Size() int { - return xxx_messageInfo_ManilaRequest.Size(m) -} -func (m *ManilaRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ManilaRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ManilaRequest proto.InternalMessageInfo - -func (m *ManilaRequest) GetRequestType() MANILA_REQUEST_TYPE { - if m != nil { - return m.RequestType - } - return MANILA_REQUEST_TYPE_CREATE_SHARE -} - -func (m *ManilaRequest) GetAuthKey() string { - if m != nil { - return m.AuthKey - } - return "" -} - -func (m *ManilaRequest) GetProtocol() string { - if m != nil { - return m.Protocol - } - return "" -} - -func (m *ManilaRequest) GetShareName() string { - if m != nil { - return m.ShareName - } - return "" -} - -func (m *ManilaRequest) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - -func (m *ManilaRequest) GetShareId() string { - if m != nil { - return m.ShareId - } - return "" -} - -func (m *ManilaRequest) GetShareGroupId() string { - if m != nil { - return m.ShareGroupId - } - return "" -} - -func (m *ManilaRequest) GetQuota() int32 { - if m != nil { - return m.Quota - } - return 0 -} - -func (m *ManilaRequest) GetCreator() string { - if m != nil { - return m.Creator - } - return "" -} - -func (m *ManilaRequest) GetEgroup() string { - if m != nil { - return m.Egroup - } - return "" -} - -func (m *ManilaRequest) GetAdminEgroup() string { - if m != nil { - return m.AdminEgroup - } - return "" -} - -func (m *ManilaRequest) GetShareHost() string { - if m != nil { - return m.ShareHost - } - return "" -} - -func (m *ManilaRequest) GetShareLocation() string { - if m != nil { - return m.ShareLocation - } - return "" -} - -type ManilaResponse struct { - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` - TotalUsed int64 `protobuf:"varint,3,opt,name=total_used,json=totalUsed,proto3" json:"total_used,omitempty"` - TotalCapacity int64 `protobuf:"varint,4,opt,name=total_capacity,json=totalCapacity,proto3" json:"total_capacity,omitempty"` - NewShareQuota int64 `protobuf:"varint,5,opt,name=new_share_quota,json=newShareQuota,proto3" json:"new_share_quota,omitempty"` - NewSharePath string `protobuf:"bytes,6,opt,name=new_share_path,json=newSharePath,proto3" json:"new_share_path,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ManilaResponse) Reset() { *m = ManilaResponse{} } -func (m *ManilaResponse) String() string { return proto.CompactTextString(m) } -func (*ManilaResponse) ProtoMessage() {} -func (*ManilaResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_979aee4989bceb08, []int{25} -} - -func (m *ManilaResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ManilaResponse.Unmarshal(m, b) -} -func (m *ManilaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ManilaResponse.Marshal(b, m, deterministic) -} -func (m *ManilaResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ManilaResponse.Merge(m, src) -} -func (m *ManilaResponse) XXX_Size() int { - return xxx_messageInfo_ManilaResponse.Size(m) -} -func (m *ManilaResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ManilaResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ManilaResponse proto.InternalMessageInfo - -func (m *ManilaResponse) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *ManilaResponse) GetCode() int32 { - if m != nil { - return m.Code - } - return 0 -} - -func (m *ManilaResponse) GetTotalUsed() int64 { - if m != nil { - return m.TotalUsed - } - return 0 -} - -func (m *ManilaResponse) GetTotalCapacity() int64 { - if m != nil { - return m.TotalCapacity - } - return 0 -} - -func (m *ManilaResponse) GetNewShareQuota() int64 { - if m != nil { - return m.NewShareQuota - } - return 0 -} - -func (m *ManilaResponse) GetNewSharePath() string { - if m != nil { - return m.NewSharePath - } - return "" -} - -func init() { - proto.RegisterEnum("eos.rpc.TYPE", TYPE_name, TYPE_value) - proto.RegisterEnum("eos.rpc.QUOTATYPE", QUOTATYPE_name, QUOTATYPE_value) - proto.RegisterEnum("eos.rpc.QUOTAOP", QUOTAOP_name, QUOTAOP_value) - proto.RegisterEnum("eos.rpc.QUOTAENTRY", QUOTAENTRY_name, QUOTAENTRY_value) - proto.RegisterEnum("eos.rpc.MANILA_REQUEST_TYPE", MANILA_REQUEST_TYPE_name, MANILA_REQUEST_TYPE_value) - proto.RegisterEnum("eos.rpc.NSRequest_VersionRequest_VERSION_CMD", NSRequest_VersionRequest_VERSION_CMD_name, NSRequest_VersionRequest_VERSION_CMD_value) - proto.RegisterEnum("eos.rpc.NSRequest_RecycleRequest_RECYCLE_CMD", NSRequest_RecycleRequest_RECYCLE_CMD_name, NSRequest_RecycleRequest_RECYCLE_CMD_value) - proto.RegisterEnum("eos.rpc.NSRequest_AclRequest_ACL_COMMAND", NSRequest_AclRequest_ACL_COMMAND_name, NSRequest_AclRequest_ACL_COMMAND_value) - proto.RegisterEnum("eos.rpc.NSRequest_AclRequest_ACL_TYPE", NSRequest_AclRequest_ACL_TYPE_name, NSRequest_AclRequest_ACL_TYPE_value) - proto.RegisterEnum("eos.rpc.NSRequest_ShareRequest_LsShare_OutFormat", NSRequest_ShareRequest_LsShare_OutFormat_name, NSRequest_ShareRequest_LsShare_OutFormat_value) - proto.RegisterEnum("eos.rpc.NSRequest_ShareRequest_OperateShare_Op", NSRequest_ShareRequest_OperateShare_Op_name, NSRequest_ShareRequest_OperateShare_Op_value) - proto.RegisterEnum("eos.rpc.NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE", NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE_name, NSResponse_RecycleResponse_RecycleInfo_DELETIONTYPE_value) - proto.RegisterType((*PingRequest)(nil), "eos.rpc.PingRequest") - proto.RegisterType((*PingReply)(nil), "eos.rpc.PingReply") - proto.RegisterType((*ContainerInsertRequest)(nil), "eos.rpc.ContainerInsertRequest") - proto.RegisterType((*FileInsertRequest)(nil), "eos.rpc.FileInsertRequest") - proto.RegisterType((*InsertReply)(nil), "eos.rpc.InsertReply") - proto.RegisterType((*Time)(nil), "eos.rpc.Time") - proto.RegisterType((*Checksum)(nil), "eos.rpc.Checksum") - proto.RegisterType((*FileMdProto)(nil), "eos.rpc.FileMdProto") - proto.RegisterMapType((map[string][]byte)(nil), "eos.rpc.FileMdProto.XattrsEntry") - proto.RegisterType((*ContainerMdProto)(nil), "eos.rpc.ContainerMdProto") - proto.RegisterMapType((map[string][]byte)(nil), "eos.rpc.ContainerMdProto.XattrsEntry") - proto.RegisterType((*QuotaProto)(nil), "eos.rpc.QuotaProto") - proto.RegisterType((*RoleId)(nil), "eos.rpc.RoleId") - proto.RegisterType((*MDId)(nil), "eos.rpc.MDId") - proto.RegisterType((*Limit)(nil), "eos.rpc.Limit") - proto.RegisterType((*MDSelection)(nil), "eos.rpc.MDSelection") - proto.RegisterMapType((map[string][]byte)(nil), "eos.rpc.MDSelection.XattrEntry") - proto.RegisterType((*MDRequest)(nil), "eos.rpc.MDRequest") - proto.RegisterType((*MDResponse)(nil), "eos.rpc.MDResponse") - proto.RegisterType((*FindRequest)(nil), "eos.rpc.FindRequest") - proto.RegisterType((*ShareAuth)(nil), "eos.rpc.ShareAuth") - proto.RegisterType((*ShareProto)(nil), "eos.rpc.ShareProto") - proto.RegisterType((*ShareToken)(nil), "eos.rpc.ShareToken") - proto.RegisterType((*NSRequest)(nil), "eos.rpc.NSRequest") - proto.RegisterType((*NSRequest_MkdirRequest)(nil), "eos.rpc.NSRequest.MkdirRequest") - proto.RegisterType((*NSRequest_RmdirRequest)(nil), "eos.rpc.NSRequest.RmdirRequest") - proto.RegisterType((*NSRequest_TouchRequest)(nil), "eos.rpc.NSRequest.TouchRequest") - proto.RegisterType((*NSRequest_UnlinkRequest)(nil), "eos.rpc.NSRequest.UnlinkRequest") - proto.RegisterType((*NSRequest_RmRequest)(nil), "eos.rpc.NSRequest.RmRequest") - proto.RegisterType((*NSRequest_RenameRequest)(nil), "eos.rpc.NSRequest.RenameRequest") - proto.RegisterType((*NSRequest_SymlinkRequest)(nil), "eos.rpc.NSRequest.SymlinkRequest") - proto.RegisterType((*NSRequest_VersionRequest)(nil), "eos.rpc.NSRequest.VersionRequest") - proto.RegisterType((*NSRequest_RecycleRequest)(nil), "eos.rpc.NSRequest.RecycleRequest") - proto.RegisterType((*NSRequest_RecycleRequest_RestoreFlags)(nil), "eos.rpc.NSRequest.RecycleRequest.RestoreFlags") - proto.RegisterType((*NSRequest_RecycleRequest_PurgeDate)(nil), "eos.rpc.NSRequest.RecycleRequest.PurgeDate") - proto.RegisterType((*NSRequest_RecycleRequest_ListFlags)(nil), "eos.rpc.NSRequest.RecycleRequest.ListFlags") - proto.RegisterType((*NSRequest_SetXAttrRequest)(nil), "eos.rpc.NSRequest.SetXAttrRequest") - proto.RegisterMapType((map[string][]byte)(nil), "eos.rpc.NSRequest.SetXAttrRequest.XattrsEntry") - proto.RegisterType((*NSRequest_ChownRequest)(nil), "eos.rpc.NSRequest.ChownRequest") - proto.RegisterType((*NSRequest_ChmodRequest)(nil), "eos.rpc.NSRequest.ChmodRequest") - proto.RegisterType((*NSRequest_AclRequest)(nil), "eos.rpc.NSRequest.AclRequest") - proto.RegisterType((*NSRequest_TokenRequest)(nil), "eos.rpc.NSRequest.TokenRequest") - proto.RegisterType((*NSRequest_QuotaRequest)(nil), "eos.rpc.NSRequest.QuotaRequest") - proto.RegisterType((*NSRequest_ShareRequest)(nil), "eos.rpc.NSRequest.ShareRequest") - proto.RegisterType((*NSRequest_ShareRequest_LsShare)(nil), "eos.rpc.NSRequest.ShareRequest.LsShare") - proto.RegisterType((*NSRequest_ShareRequest_OperateShare)(nil), "eos.rpc.NSRequest.ShareRequest.OperateShare") - proto.RegisterType((*NSResponse)(nil), "eos.rpc.NSResponse") - proto.RegisterType((*NSResponse_ErrorResponse)(nil), "eos.rpc.NSResponse.ErrorResponse") - proto.RegisterType((*NSResponse_VersionResponse)(nil), "eos.rpc.NSResponse.VersionResponse") - proto.RegisterType((*NSResponse_VersionResponse_VersionInfo)(nil), "eos.rpc.NSResponse.VersionResponse.VersionInfo") - proto.RegisterType((*NSResponse_RecycleResponse)(nil), "eos.rpc.NSResponse.RecycleResponse") - proto.RegisterType((*NSResponse_RecycleResponse_RecycleInfo)(nil), "eos.rpc.NSResponse.RecycleResponse.RecycleInfo") - proto.RegisterType((*NSResponse_AclResponse)(nil), "eos.rpc.NSResponse.AclResponse") - proto.RegisterType((*NSResponse_QuotaResponse)(nil), "eos.rpc.NSResponse.QuotaResponse") - proto.RegisterType((*NSResponse_ShareInfo)(nil), "eos.rpc.NSResponse.ShareInfo") - proto.RegisterType((*NSResponse_ShareAccess)(nil), "eos.rpc.NSResponse.ShareAccess") - proto.RegisterType((*NSResponse_ShareResponse)(nil), "eos.rpc.NSResponse.ShareResponse") - proto.RegisterType((*NsStatRequest)(nil), "eos.rpc.NsStatRequest") - proto.RegisterType((*NsStatResponse)(nil), "eos.rpc.NsStatResponse") - proto.RegisterType((*ManilaRequest)(nil), "eos.rpc.ManilaRequest") - proto.RegisterType((*ManilaResponse)(nil), "eos.rpc.ManilaResponse") -} - -func init() { - proto.RegisterFile("Rpc.proto", fileDescriptor_979aee4989bceb08) -} - -var fileDescriptor_979aee4989bceb08 = []byte{ - // 4040 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x3a, 0x4d, 0x77, 0xdb, 0xc6, - 0x76, 0x22, 0x09, 0x52, 0xc4, 0x25, 0x29, 0x31, 0xb0, 0x9b, 0x30, 0x8c, 0x1d, 0x2b, 0x74, 0x9c, - 0x67, 0x3b, 0xb1, 0x1c, 0xbb, 0x4d, 0x9d, 0xc4, 0x2f, 0x4d, 0x69, 0x89, 0x92, 0x99, 0x88, 0xa4, - 0x32, 0xa4, 0x7c, 0xec, 0x6e, 0x78, 0x60, 0x60, 0x44, 0xe1, 0x98, 0x00, 0xf8, 0x00, 0xd0, 0xb6, - 0xb2, 0x6c, 0xbb, 0xe9, 0x3b, 0xa7, 0xbb, 0xb7, 0x7b, 0xbb, 0x9e, 0xb6, 0x9b, 0xee, 0xbb, 0xe8, - 0xaa, 0xbb, 0xbe, 0xf3, 0x16, 0x5d, 0x74, 0xd3, 0x5d, 0xff, 0x40, 0xfb, 0x23, 0x7a, 0xee, 0x9d, - 0x01, 0x30, 0x90, 0x48, 0x51, 0x79, 0x79, 0x1b, 0x9c, 0x99, 0x3b, 0xf7, 0xde, 0x99, 0xb9, 0x73, - 0x3f, 0x67, 0x00, 0x3a, 0x9b, 0x59, 0xdb, 0xb3, 0xc0, 0x8f, 0x7c, 0x63, 0x9d, 0xfb, 0xe1, 0x76, - 0x30, 0xb3, 0x5a, 0x6d, 0xa8, 0x1c, 0x3a, 0xde, 0x84, 0xf1, 0x5f, 0xcd, 0x79, 0x18, 0x19, 0x0d, - 0x58, 0x37, 0xe7, 0xd1, 0xc9, 0x2b, 0x7e, 0xda, 0xc8, 0x6d, 0xe5, 0x6e, 0xeb, 0x2c, 0xee, 0xe2, - 0x88, 0xcb, 0xc3, 0xd0, 0x9c, 0xf0, 0x46, 0x7e, 0x2b, 0x77, 0xbb, 0xca, 0xe2, 0x6e, 0xeb, 0x16, - 0xe8, 0x82, 0xc5, 0x6c, 0x9a, 0x41, 0xcb, 0x65, 0xd1, 0x7e, 0x9d, 0x83, 0x77, 0x77, 0x7c, 0x2f, - 0x32, 0x1d, 0x8f, 0x07, 0x5d, 0x2f, 0xe4, 0x41, 0x14, 0xcf, 0xfa, 0x08, 0x74, 0x2b, 0x1e, 0x69, - 0xe4, 0xb6, 0x0a, 0xb7, 0x2b, 0x0f, 0xdf, 0xdf, 0x96, 0x2b, 0xdc, 0x4e, 0x68, 0x7a, 0xf6, 0x21, - 0xae, 0x9d, 0xa5, 0xb8, 0xea, 0x72, 0xf3, 0xd9, 0xe5, 0x5e, 0x07, 0x70, 0xbc, 0x13, 0x1e, 0x38, - 0xd1, 0xd8, 0xb5, 0x1b, 0x85, 0xad, 0xdc, 0xed, 0x32, 0xd3, 0x25, 0xa4, 0x67, 0xb7, 0x5e, 0xc0, - 0x3b, 0x7b, 0xce, 0x94, 0x67, 0x97, 0x71, 0x17, 0x8a, 0xc7, 0xce, 0x94, 0x87, 0x72, 0x09, 0x57, - 0x93, 0x25, 0x20, 0x6a, 0x3c, 0xbb, 0x40, 0x59, 0x3e, 0x73, 0xeb, 0x31, 0x54, 0x62, 0xb6, 0xe7, - 0x04, 0x52, 0x40, 0x44, 0xd9, 0x35, 0x0c, 0xd0, 0x02, 0x1e, 0x59, 0x8d, 0xfc, 0x56, 0xe1, 0x76, - 0x8d, 0x51, 0xbb, 0x75, 0x0f, 0xb4, 0x91, 0xe3, 0x72, 0xa3, 0x0e, 0x85, 0x90, 0x5b, 0x24, 0x42, - 0x8d, 0x61, 0xd3, 0xb8, 0x02, 0x45, 0x6f, 0x8c, 0xb0, 0x3c, 0xc1, 0x34, 0x6f, 0xc8, 0xad, 0xd6, - 0x9f, 0x41, 0x79, 0xe7, 0x84, 0x5b, 0xaf, 0xc2, 0xb9, 0x6b, 0x5c, 0x85, 0xe2, 0x6b, 0x73, 0x3a, - 0x8f, 0xe5, 0x2e, 0x3a, 0x38, 0x49, 0x74, 0x3a, 0xe3, 0x72, 0x91, 0xd4, 0x6e, 0xfd, 0x87, 0x06, - 0x15, 0x65, 0x4b, 0xc6, 0x06, 0xe4, 0x1d, 0x5b, 0xce, 0x95, 0x77, 0x6c, 0xe3, 0x3d, 0x58, 0x47, - 0x11, 0x8f, 0x1d, 0x5b, 0x4e, 0x56, 0xc2, 0x6e, 0xd7, 0xc6, 0x55, 0xcd, 0x1d, 0x21, 0x4d, 0x8d, - 0x61, 0x13, 0x21, 0x13, 0xc7, 0x6e, 0x68, 0x02, 0x32, 0x71, 0x6c, 0x9c, 0x30, 0x74, 0x7e, 0xe4, - 0x8d, 0xa2, 0x58, 0x26, 0xb6, 0x8d, 0x0f, 0x40, 0x9f, 0x9a, 0xa7, 0xfe, 0x9c, 0x58, 0x96, 0xb6, - 0x72, 0xb7, 0x6b, 0xac, 0x2c, 0x00, 0x5d, 0x1b, 0xd7, 0x7d, 0x3c, 0x35, 0x27, 0x61, 0x63, 0x9d, - 0x06, 0x44, 0x07, 0xd9, 0x78, 0xa6, 0xcb, 0x1b, 0x65, 0xda, 0x0c, 0xb5, 0x89, 0x8d, 0xe3, 0xbd, - 0x1a, 0xd3, 0x80, 0x4e, 0x03, 0x65, 0x04, 0xf4, 0x71, 0xf0, 0x26, 0x14, 0xad, 0xc8, 0x71, 0x79, - 0x03, 0xb6, 0x72, 0xb7, 0x2b, 0x0f, 0x6b, 0xc9, 0xe1, 0xa1, 0x3c, 0x99, 0x18, 0x43, 0x24, 0x97, - 0x90, 0x2a, 0x0b, 0x91, 0x68, 0xcc, 0xb8, 0x07, 0x65, 0x4b, 0x0a, 0xb5, 0x51, 0x25, 0xbc, 0x77, - 0x52, 0x65, 0x94, 0x03, 0x2c, 0x41, 0x31, 0xae, 0x81, 0x3e, 0xf5, 0x2d, 0x33, 0x72, 0x7c, 0x2f, - 0x6c, 0xd4, 0xe8, 0x2c, 0x53, 0x80, 0x71, 0x07, 0xea, 0x73, 0x8f, 0x56, 0x9d, 0x22, 0x6d, 0x10, - 0xd2, 0xa6, 0x80, 0x1f, 0x24, 0xa8, 0x5f, 0x42, 0xe9, 0xad, 0x19, 0x45, 0x41, 0xd8, 0xd8, 0x24, - 0xfd, 0xdb, 0x5a, 0xa4, 0x7f, 0xdb, 0xcf, 0x09, 0xa5, 0xe3, 0x45, 0xc1, 0x29, 0x93, 0xf8, 0x28, - 0xac, 0x99, 0x19, 0x9d, 0x34, 0xea, 0x42, 0x58, 0xd8, 0x46, 0x18, 0x8f, 0xcc, 0x49, 0xe3, 0x1d, - 0x71, 0xf0, 0xd8, 0x46, 0x51, 0x3b, 0x9e, 0x6f, 0xf3, 0x86, 0x41, 0x87, 0x23, 0x3a, 0xcd, 0xaf, - 0xa0, 0xa2, 0x30, 0xc5, 0x23, 0x4d, 0xcd, 0x1f, 0x9b, 0xa9, 0x66, 0xe5, 0x15, 0xcd, 0xfa, 0x3a, - 0xff, 0x65, 0xae, 0xf5, 0x5b, 0x0d, 0xea, 0x67, 0xed, 0xf3, 0x9c, 0x3a, 0x7d, 0x00, 0xfa, 0xcc, - 0x0c, 0xb8, 0xaa, 0x50, 0x65, 0x01, 0xb8, 0xa4, 0x4a, 0x7d, 0x00, 0x7a, 0x14, 0x70, 0x3e, 0x26, - 0xbd, 0x42, 0xf5, 0x29, 0xb0, 0x32, 0x02, 0x86, 0xa8, 0x5b, 0x06, 0x68, 0x2e, 0x6e, 0xa9, 0x48, - 0xda, 0x43, 0xed, 0x9f, 0xa0, 0x52, 0x89, 0xd6, 0xe8, 0x97, 0xd1, 0x1a, 0xb8, 0x40, 0x6b, 0x6e, - 0x42, 0x31, 0xbc, 0x40, 0xb5, 0x68, 0xcc, 0xf8, 0x26, 0x39, 0xe2, 0x2a, 0x1d, 0xf1, 0xad, 0xa5, - 0x5e, 0xee, 0xc2, 0x73, 0xae, 0x2d, 0x38, 0xe7, 0x8d, 0x45, 0xe7, 0xbc, 0xa9, 0x9c, 0x33, 0x49, - 0x85, 0xdc, 0x5b, 0x5d, 0x40, 0x85, 0x23, 0xfb, 0x10, 0x20, 0xf1, 0xa7, 0x21, 0x69, 0x8b, 0xc6, - 0x14, 0xc8, 0xcf, 0xd1, 0x8e, 0xff, 0x2c, 0x00, 0xfc, 0x30, 0xf7, 0x23, 0x53, 0xe8, 0x45, 0xbc, - 0xfa, 0x5c, 0x76, 0xf5, 0x74, 0x26, 0xd2, 0x3d, 0xd1, 0x99, 0x7c, 0x22, 0x5d, 0x16, 0xea, 0xc4, - 0xc6, 0x43, 0x23, 0x11, 0xd1, 0x0f, 0x47, 0x83, 0x51, 0x7b, 0xf4, 0xe2, 0xb0, 0x23, 0xdc, 0x18, - 0x1a, 0xde, 0x3c, 0xe4, 0xf6, 0xcb, 0xd3, 0x88, 0x87, 0x52, 0x5d, 0x52, 0x80, 0x71, 0x17, 0xea, - 0xd8, 0x99, 0xfa, 0x13, 0xc7, 0x32, 0xa7, 0x02, 0x49, 0xf8, 0xa4, 0x73, 0xf0, 0x98, 0x93, 0x90, - 0x4e, 0x29, 0xe5, 0x24, 0x24, 0xd4, 0x84, 0xb2, 0x6b, 0xbe, 0x15, 0x1c, 0xd6, 0x85, 0xfa, 0xc6, - 0x7d, 0xe3, 0x36, 0x6c, 0xba, 0xe6, 0xdb, 0xcc, 0x24, 0x65, 0x42, 0x39, 0x0b, 0x96, 0x5c, 0xc4, - 0x14, 0x7a, 0xc2, 0x45, 0xcc, 0xf0, 0x39, 0x5c, 0x99, 0xf1, 0xc0, 0xe2, 0x5e, 0x64, 0x4e, 0x78, - 0xba, 0x27, 0x54, 0xb7, 0x3c, 0x5b, 0x34, 0x74, 0x9e, 0x42, 0x30, 0xae, 0x2c, 0xa2, 0x10, 0x73, - 0x6c, 0x41, 0x25, 0x8c, 0xcc, 0x68, 0x1e, 0x0a, 0xde, 0x55, 0x12, 0xb8, 0x0a, 0x4a, 0x31, 0x04, - 0xaf, 0x9a, 0x8a, 0x41, 0xa0, 0xd6, 0x31, 0x94, 0x98, 0x3f, 0xe5, 0xa9, 0xd9, 0xe6, 0xce, 0x99, - 0x6d, 0x3e, 0x35, 0xdb, 0x26, 0x94, 0xe7, 0x21, 0x0f, 0xe8, 0x7c, 0x0b, 0xc4, 0x2c, 0xe9, 0xa3, - 0xc4, 0x27, 0x81, 0x3f, 0x9f, 0xd1, 0xa0, 0x46, 0x83, 0x29, 0xa0, 0x35, 0x06, 0xad, 0xb7, 0xdb, - 0xb5, 0x17, 0x6a, 0x8c, 0xf0, 0x2e, 0x38, 0x4d, 0x89, 0xbc, 0x4b, 0x1d, 0x0a, 0x8e, 0xe7, 0xd3, - 0x04, 0x25, 0x86, 0x4d, 0xe3, 0x23, 0xa9, 0x3f, 0x1a, 0xe9, 0x8f, 0x62, 0x88, 0x89, 0xea, 0xb4, - 0xbe, 0x85, 0xe2, 0x81, 0xe3, 0x3a, 0x11, 0xce, 0xf0, 0x23, 0x0f, 0x7c, 0x9a, 0xa1, 0xcc, 0xa8, - 0x8d, 0x1c, 0x5d, 0xc7, 0x8b, 0x77, 0xe2, 0x3a, 0x1e, 0x41, 0xcc, 0xb7, 0xb1, 0x93, 0x72, 0xcd, - 0xb7, 0xad, 0x7f, 0x2e, 0x41, 0xa5, 0xb7, 0x3b, 0xe4, 0x53, 0x6e, 0xa1, 0xf3, 0x36, 0xde, 0x85, - 0x52, 0x48, 0x1d, 0xc9, 0x49, 0xf6, 0x8c, 0x8f, 0x63, 0xff, 0x92, 0x27, 0xaf, 0xb0, 0x91, 0x2c, - 0x86, 0xa6, 0x8f, 0x1d, 0xcc, 0xc7, 0xb1, 0x83, 0x29, 0x2c, 0xc6, 0x72, 0x63, 0x2c, 0xe1, 0x61, - 0xb4, 0xc5, 0x58, 0xc2, 0xc5, 0xb4, 0x94, 0xf8, 0x7b, 0x1e, 0x49, 0xc4, 0xe3, 0xbb, 0x40, 0xfe, - 0x33, 0xf1, 0xa7, 0xe7, 0xf1, 0x92, 0x71, 0xc4, 0xb5, 0x4e, 0x9c, 0xa9, 0x1d, 0x70, 0x8f, 0xb4, - 0x7f, 0x01, 0x6e, 0x3c, 0x6e, 0x7c, 0xa6, 0x86, 0xc2, 0xf2, 0x42, 0x64, 0x25, 0x34, 0x7e, 0x03, - 0x86, 0x08, 0x81, 0xdc, 0x56, 0x82, 0xa3, 0xbe, 0x90, 0xec, 0x9d, 0x18, 0x33, 0x0d, 0x97, 0x4d, - 0x90, 0x39, 0x84, 0x63, 0x93, 0xa5, 0x68, 0x2c, 0xe9, 0xa7, 0x01, 0xa0, 0x22, 0x5d, 0x1d, 0x05, - 0x80, 0x06, 0xac, 0x87, 0xa7, 0x2e, 0xf2, 0x21, 0xf5, 0x2f, 0xb3, 0xb8, 0x9b, 0x09, 0xf9, 0xb5, - 0xd5, 0x21, 0xff, 0x2a, 0x14, 0xfd, 0x37, 0x98, 0xab, 0x6e, 0x88, 0xf8, 0x42, 0x1d, 0x84, 0x92, - 0x0a, 0x93, 0xd7, 0xad, 0x31, 0xd1, 0xc1, 0x44, 0x94, 0x86, 0xc7, 0x81, 0xef, 0x47, 0xe4, 0x7a, - 0xcb, 0x4c, 0x27, 0x08, 0xf3, 0xfd, 0x08, 0x87, 0x09, 0x4f, 0x0c, 0xbf, 0x23, 0x86, 0x09, 0x42, - 0xc3, 0xbf, 0x80, 0xcd, 0x80, 0x4f, 0xf8, 0xdb, 0xd9, 0x18, 0x2d, 0x90, 0xac, 0xc5, 0x20, 0x63, - 0xd8, 0x10, 0xe0, 0x3d, 0x09, 0x35, 0x6e, 0x81, 0x84, 0x8c, 0x6d, 0x47, 0x98, 0xdc, 0x15, 0xc2, - 0xab, 0x09, 0xe8, 0xae, 0x00, 0x1a, 0x5f, 0x40, 0x91, 0x62, 0x49, 0xe3, 0x2a, 0xc5, 0x9f, 0x1b, - 0xc9, 0x2e, 0x15, 0x65, 0x16, 0xa1, 0x47, 0x44, 0x1e, 0x81, 0xdd, 0xfc, 0x12, 0x20, 0x05, 0xfe, - 0xa4, 0x18, 0xf0, 0xef, 0x39, 0xd0, 0x7b, 0xbb, 0x71, 0x86, 0x1d, 0x9b, 0x66, 0x6e, 0xa9, 0x69, - 0x1a, 0xd7, 0x13, 0xfb, 0x56, 0x83, 0x28, 0xba, 0x03, 0x32, 0x77, 0x25, 0xef, 0x2e, 0x64, 0x33, - 0xfe, 0x9b, 0xa0, 0x05, 0xfe, 0x34, 0xb6, 0x8e, 0xcd, 0x84, 0x54, 0x78, 0x2c, 0x46, 0x83, 0xc6, - 0x43, 0xd0, 0xc3, 0x78, 0x9f, 0xd2, 0x44, 0xae, 0x2e, 0x92, 0x01, 0x4b, 0xd1, 0x5a, 0x7f, 0x9b, - 0x03, 0xc0, 0x2d, 0x84, 0x33, 0xdf, 0x0b, 0xf9, 0x65, 0xf6, 0xf0, 0x09, 0x14, 0x8e, 0xdd, 0x78, - 0x13, 0x8b, 0xcb, 0x08, 0x44, 0x30, 0x3e, 0x85, 0x82, 0x25, 0xab, 0x93, 0x0b, 0x2b, 0x1e, 0xc4, - 0x6a, 0xfd, 0x4f, 0x0e, 0xb3, 0x76, 0xcf, 0xfe, 0xe3, 0xc9, 0x32, 0x96, 0x58, 0xe1, 0x22, 0x89, - 0x29, 0x02, 0xd7, 0xb2, 0x02, 0x17, 0x11, 0xcd, 0xe6, 0xb3, 0xe8, 0x44, 0x46, 0xd6, 0xa4, 0x9f, - 0x95, 0x73, 0xe9, 0x72, 0x72, 0xde, 0x07, 0x7d, 0x78, 0x62, 0x06, 0xbc, 0x3d, 0x17, 0x89, 0x01, - 0x56, 0xaa, 0x52, 0xc9, 0xa8, 0xbd, 0x30, 0x59, 0x30, 0x40, 0x3b, 0xf1, 0xc3, 0x48, 0x2a, 0x03, - 0xb5, 0x5b, 0xbf, 0xce, 0x03, 0x10, 0x27, 0x91, 0x77, 0x7c, 0x08, 0x30, 0xe3, 0x81, 0xeb, 0x84, - 0x21, 0x2e, 0x46, 0x30, 0x54, 0x20, 0xb8, 0x43, 0xfe, 0x76, 0xe6, 0x04, 0x3c, 0x94, 0x3e, 0x3f, - 0xee, 0xa6, 0x76, 0x2e, 0xb8, 0x9f, 0xb5, 0x73, 0x21, 0x0f, 0x69, 0xe7, 0x1f, 0x02, 0x4c, 0xb8, - 0xc7, 0x03, 0x33, 0x51, 0x2d, 0x8d, 0x29, 0x90, 0x24, 0x96, 0x95, 0xe4, 0x86, 0x30, 0x96, 0x5d, - 0x03, 0xdd, 0x9c, 0x4e, 0xfd, 0x37, 0xe8, 0x6c, 0xc9, 0xb9, 0x96, 0x59, 0x0a, 0xc0, 0x98, 0xf2, - 0x3a, 0xf2, 0x5f, 0x71, 0x8f, 0x5c, 0xa9, 0xce, 0x64, 0xcf, 0xf8, 0x0c, 0xd6, 0xfd, 0xc0, 0x99, - 0x38, 0xe4, 0x2c, 0xd1, 0x8a, 0xd3, 0x14, 0x29, 0x91, 0x1f, 0x8b, 0x51, 0x5a, 0x7f, 0x97, 0x93, - 0xc2, 0x18, 0x11, 0xf1, 0x1d, 0x28, 0x0a, 0x9e, 0x39, 0x3a, 0x94, 0x2b, 0x59, 0x52, 0x59, 0xe2, - 0x8a, 0x79, 0xae, 0x81, 0x1e, 0x3a, 0x13, 0xcf, 0x8c, 0xe6, 0x41, 0x6c, 0xd8, 0x29, 0x00, 0xf7, - 0x1b, 0xf2, 0xc0, 0x31, 0xa7, 0xce, 0x8f, 0x5c, 0xa8, 0x70, 0x95, 0x29, 0x10, 0xaa, 0x03, 0x39, - 0x17, 0x79, 0x7c, 0x91, 0x51, 0xbb, 0xf5, 0xd7, 0x37, 0x40, 0xef, 0x0f, 0x57, 0xdf, 0x35, 0xc4, - 0x8a, 0x99, 0xbf, 0x48, 0x31, 0x1f, 0x41, 0xd1, 0x7d, 0x65, 0x3b, 0x41, 0xe3, 0x4f, 0x08, 0x2b, - 0x75, 0x65, 0xc9, 0x0c, 0xdb, 0x3d, 0x1c, 0x97, 0x9d, 0xa7, 0x6b, 0x4c, 0xe0, 0x23, 0x61, 0xe0, - 0x22, 0xe1, 0xbb, 0x4b, 0x09, 0x99, 0x9b, 0x25, 0x24, 0x7c, 0x24, 0x8c, 0xfc, 0xb9, 0x75, 0xd2, - 0x78, 0x6f, 0x29, 0xe1, 0x08, 0xc7, 0x15, 0x42, 0xc2, 0x37, 0xbe, 0x86, 0x92, 0x88, 0x5f, 0x8d, - 0x06, 0x51, 0x6e, 0x2d, 0xa0, 0x3c, 0x22, 0x84, 0x94, 0x54, 0x52, 0x18, 0xdb, 0x90, 0x0f, 0xdc, - 0xc6, 0xfb, 0x44, 0x77, 0x6d, 0xe1, 0x52, 0x53, 0x9a, 0x7c, 0xe0, 0xe2, 0x5c, 0x81, 0x08, 0x14, - 0xcd, 0xa5, 0x73, 0x31, 0x42, 0x50, 0xe6, 0x12, 0x14, 0xc6, 0x37, 0x69, 0x80, 0xfc, 0x80, 0x88, - 0x3f, 0x5a, 0x40, 0x3c, 0x14, 0x18, 0x29, 0x75, 0x12, 0x45, 0xbf, 0x81, 0xf5, 0xd7, 0x3c, 0x20, - 0x2b, 0xbb, 0xb6, 0x94, 0xfc, 0x99, 0xc0, 0x50, 0xc8, 0x25, 0x0d, 0x92, 0x07, 0xdc, 0x3a, 0xb5, - 0xa6, 0xbc, 0x71, 0x7d, 0x29, 0x39, 0x13, 0x18, 0x0a, 0xb9, 0xa4, 0x31, 0xbe, 0x8e, 0x43, 0xdb, - 0x87, 0x44, 0xdc, 0x5a, 0xb4, 0x74, 0x1e, 0x3d, 0x6f, 0x47, 0x91, 0x7a, 0xb2, 0x44, 0x82, 0x27, - 0x6b, 0x9d, 0xf8, 0x6f, 0xbc, 0xc6, 0x8d, 0xa5, 0x27, 0xbb, 0x83, 0xe3, 0x0a, 0x21, 0xe1, 0x0b, - 0x42, 0xd7, 0xb7, 0x1b, 0x5b, 0x17, 0x10, 0xba, 0xbe, 0x9d, 0x21, 0x74, 0x7d, 0xdb, 0x78, 0x00, - 0x05, 0xd3, 0x9a, 0x36, 0x3e, 0x22, 0xb2, 0xeb, 0x0b, 0xc8, 0xda, 0xd6, 0x34, 0x25, 0x42, 0x5c, - 0xa1, 0x7e, 0x68, 0xba, 0xad, 0x0b, 0xd4, 0xef, 0x15, 0xf7, 0x32, 0xea, 0x87, 0x86, 0xfc, 0x08, - 0x8a, 0xbf, 0xc2, 0x32, 0xac, 0x71, 0x73, 0x29, 0x21, 0x95, 0x69, 0x0a, 0x21, 0xe1, 0x23, 0x61, - 0x88, 0x6e, 0xa1, 0xf1, 0xf1, 0x52, 0x42, 0x72, 0x1b, 0x0a, 0x21, 0xe1, 0x37, 0xc7, 0x50, 0x55, - 0x6d, 0x4f, 0x06, 0xa2, 0xdc, 0xb2, 0x40, 0x74, 0x0d, 0xf4, 0x80, 0x5b, 0xf3, 0x20, 0x74, 0x5e, - 0x0b, 0xa3, 0x2f, 0xb3, 0x14, 0x90, 0x54, 0xf8, 0x05, 0xaa, 0xfc, 0xa9, 0xdd, 0xbc, 0x07, 0x55, - 0xd5, 0x46, 0x57, 0x4c, 0x80, 0xe8, 0xaa, 0x65, 0xae, 0x42, 0x3f, 0x80, 0x5a, 0xc6, 0x1c, 0x2f, - 0xb1, 0x7e, 0xcf, 0x8f, 0x75, 0x57, 0xde, 0x35, 0x26, 0x80, 0xe6, 0x31, 0xe8, 0x89, 0x91, 0xfe, - 0x3c, 0x49, 0x5c, 0x3c, 0xcf, 0x1e, 0xd4, 0x32, 0x86, 0xbd, 0x6a, 0xae, 0x77, 0xa1, 0x14, 0x99, - 0xc1, 0x84, 0x47, 0xd2, 0xb9, 0xcb, 0x5e, 0x73, 0x1f, 0x36, 0xb2, 0x36, 0xfe, 0x87, 0x32, 0xfa, - 0xbf, 0x1c, 0x6c, 0x64, 0xcd, 0x7d, 0x15, 0xa7, 0x6f, 0x45, 0x42, 0x94, 0xa7, 0x94, 0xe6, 0xde, - 0x4a, 0xef, 0xb1, 0xfd, 0xac, 0xc3, 0x86, 0xdd, 0x41, 0x7f, 0xbc, 0xd3, 0xdb, 0xa5, 0x24, 0x09, - 0xa3, 0x92, 0x6b, 0xbe, 0x8d, 0xbd, 0x50, 0x81, 0x62, 0x8f, 0x02, 0xc1, 0x1a, 0x77, 0x12, 0x98, - 0x2f, 0x63, 0x04, 0x11, 0xc1, 0x55, 0x50, 0xeb, 0x4b, 0xa8, 0x28, 0x5c, 0x0d, 0x80, 0xd2, 0x0e, - 0xeb, 0xb4, 0x47, 0x9d, 0xfa, 0x9a, 0xa1, 0x43, 0xf1, 0xf0, 0x88, 0xed, 0x77, 0xea, 0x39, 0xa3, - 0x0c, 0xda, 0x41, 0x77, 0x38, 0xaa, 0xe7, 0xb1, 0xb5, 0xcf, 0xda, 0x4f, 0xea, 0x85, 0xe6, 0xef, - 0x35, 0xd8, 0xc8, 0xba, 0xa7, 0x05, 0x99, 0xf2, 0xca, 0x1d, 0x66, 0x39, 0x6c, 0xb3, 0xce, 0xce, - 0x8b, 0x9d, 0x83, 0x4e, 0xba, 0xc3, 0x43, 0xa8, 0x04, 0x3c, 0x8c, 0xfc, 0x80, 0x63, 0x51, 0x23, - 0x73, 0xb7, 0xed, 0x4b, 0x30, 0x12, 0x44, 0x7b, 0x58, 0x09, 0x31, 0x95, 0x85, 0xd1, 0x05, 0x7d, - 0x36, 0x0f, 0x26, 0xdc, 0x36, 0xa3, 0x38, 0x7b, 0xfe, 0x74, 0x35, 0xbf, 0x43, 0x24, 0xd9, 0x35, - 0x23, 0xce, 0x52, 0x6a, 0x63, 0x1f, 0xca, 0x53, 0x27, 0x8c, 0x68, 0x65, 0xc5, 0xcb, 0x72, 0x3a, - 0x70, 0xc2, 0x48, 0x2c, 0x2b, 0x21, 0x6e, 0x3e, 0x87, 0xaa, 0xba, 0x60, 0x2a, 0xe8, 0xfc, 0xc0, - 0xe2, 0xb2, 0xbc, 0x16, 0x1d, 0x54, 0x3c, 0xf7, 0x15, 0x65, 0x55, 0xc2, 0x54, 0x64, 0x0f, 0x33, - 0x53, 0x79, 0x9c, 0xa1, 0x34, 0x93, 0xa4, 0xdf, 0xdc, 0x07, 0x3d, 0x59, 0x3a, 0xba, 0x96, 0x53, - 0x6e, 0x06, 0xc4, 0xb5, 0xc8, 0xa8, 0x8d, 0x53, 0xb9, 0xbe, 0x27, 0x79, 0x16, 0x99, 0xe8, 0xe0, - 0x49, 0xda, 0xe6, 0xa9, 0xd4, 0x28, 0x6c, 0x36, 0x3f, 0x05, 0x3d, 0x59, 0xb9, 0xd4, 0x3b, 0xee, - 0x45, 0x81, 0x43, 0xef, 0x07, 0xb1, 0xde, 0x49, 0x48, 0xeb, 0x3e, 0x54, 0x94, 0x93, 0x34, 0x2a, - 0xb0, 0xce, 0x3a, 0xc3, 0xd1, 0x80, 0x2d, 0x53, 0xab, 0xe6, 0xdf, 0xe7, 0x61, 0xf3, 0x4c, 0xb8, - 0x5a, 0x65, 0x3c, 0x7b, 0xc9, 0xe5, 0x62, 0x9e, 0xd2, 0xc2, 0xed, 0xd5, 0x11, 0x70, 0xe1, 0x2d, - 0x63, 0xc6, 0x07, 0x15, 0xce, 0xfa, 0xa0, 0x16, 0x54, 0x5f, 0xf1, 0xd3, 0x30, 0xf2, 0x6d, 0x3e, - 0xe5, 0xa4, 0x30, 0x85, 0xdb, 0x3a, 0xcb, 0xc0, 0xf0, 0x5c, 0xac, 0x80, 0xa3, 0x3a, 0x15, 0xc5, - 0xb9, 0x88, 0xde, 0xcf, 0xb8, 0x4b, 0x6c, 0x8e, 0xa0, 0xaa, 0x46, 0xe0, 0x55, 0xb2, 0xb8, 0x15, - 0x67, 0xee, 0x4b, 0x52, 0x48, 0x31, 0xda, 0x6c, 0x23, 0xd7, 0x34, 0x3c, 0xaf, 0xe2, 0x1a, 0x47, - 0xa2, 0xbc, 0x12, 0x89, 0x7e, 0x97, 0x07, 0x48, 0x63, 0xf5, 0x2a, 0x0e, 0x8f, 0x55, 0xf3, 0xbf, - 0x73, 0x61, 0xd8, 0xdf, 0x6e, 0xef, 0x1c, 0x8c, 0x77, 0x06, 0xbd, 0x5e, 0xbb, 0x2f, 0x4d, 0xff, - 0xe2, 0x83, 0xf9, 0x3a, 0x73, 0xed, 0xf5, 0xc9, 0x6a, 0xde, 0x4a, 0xa1, 0x68, 0x80, 0x16, 0xcc, - 0xa7, 0xe2, 0xb8, 0x74, 0x46, 0x6d, 0x34, 0xa2, 0x99, 0x1f, 0x3a, 0x49, 0x05, 0x57, 0x63, 0x49, - 0xbf, 0x75, 0x0f, 0x2a, 0xca, 0xea, 0x50, 0x6d, 0xfb, 0x83, 0x3e, 0xea, 0x32, 0x40, 0xa9, 0x37, - 0xd8, 0xed, 0xee, 0xbd, 0x50, 0x95, 0xb9, 0x75, 0x0b, 0xca, 0xf1, 0x84, 0x46, 0x15, 0xca, 0x47, - 0xc3, 0x0e, 0x1b, 0xb7, 0x77, 0x0e, 0xea, 0x6b, 0x68, 0x08, 0xc3, 0x17, 0x43, 0xea, 0xe4, 0x9a, - 0x5f, 0x61, 0x94, 0x4e, 0x13, 0x98, 0x15, 0xb5, 0x8a, 0x40, 0x15, 0x18, 0xcd, 0xdf, 0xe5, 0xa0, - 0xaa, 0xe6, 0x30, 0x0b, 0xaf, 0x0e, 0x6f, 0x28, 0xe5, 0xf0, 0x39, 0x8d, 0xc0, 0xd3, 0xd9, 0x82, - 0xbc, 0x3f, 0x93, 0xf7, 0xce, 0xf5, 0xec, 0xbd, 0xf3, 0xe0, 0x90, 0xe5, 0xfd, 0x59, 0xe6, 0x16, - 0x57, 0x3b, 0x73, 0x8b, 0xab, 0xde, 0x13, 0x17, 0xcf, 0xdc, 0x13, 0xdf, 0x81, 0x22, 0xba, 0x82, - 0x53, 0x92, 0xe4, 0x86, 0xb2, 0x15, 0x62, 0xde, 0xe9, 0x8f, 0xd8, 0x0b, 0x26, 0x30, 0x9a, 0xff, - 0xa5, 0x41, 0x55, 0xcd, 0xaa, 0x8c, 0xaf, 0x20, 0x3f, 0x0d, 0xa5, 0x0c, 0x7e, 0xb1, 0x22, 0x05, - 0xdb, 0x3e, 0x08, 0xa9, 0x8b, 0xc5, 0xc0, 0x34, 0x34, 0xfe, 0x82, 0x36, 0x24, 0x76, 0xfc, 0xd9, - 0x2a, 0xd2, 0xc1, 0x0c, 0x6b, 0x55, 0x9e, 0xd0, 0xfb, 0xb3, 0xe6, 0xbf, 0xe6, 0x60, 0x5d, 0x72, - 0x34, 0x06, 0xa0, 0xfb, 0xf3, 0xe8, 0xd8, 0x0f, 0x5c, 0x33, 0x92, 0x97, 0x0e, 0x0f, 0x2e, 0xb9, - 0x9a, 0xed, 0xc1, 0x3c, 0xda, 0x23, 0x42, 0x96, 0xf2, 0xa0, 0xfa, 0x32, 0xb9, 0x23, 0x10, 0x35, - 0xbd, 0x72, 0x1b, 0xf0, 0x4b, 0xd0, 0x13, 0x2a, 0x45, 0xc1, 0x36, 0x00, 0x7a, 0x83, 0x7e, 0x77, - 0x34, 0x60, 0xdd, 0xfe, 0x7e, 0x3d, 0x87, 0x0a, 0x84, 0x4a, 0x86, 0x1d, 0x8a, 0xc5, 0xdf, 0x0d, - 0x07, 0xfd, 0x7a, 0xa1, 0xf9, 0x37, 0x79, 0xa8, 0xaa, 0xfb, 0x31, 0xbe, 0x25, 0x49, 0x88, 0x65, - 0xdf, 0xff, 0x29, 0x92, 0xd8, 0x1e, 0xcc, 0xe8, 0xe4, 0xaf, 0xc6, 0xb9, 0xb0, 0x58, 0xa9, 0xe8, - 0xa0, 0x0b, 0xc3, 0x34, 0x5e, 0xdc, 0x0f, 0x50, 0x96, 0x1e, 0x2b, 0x9e, 0xa6, 0xd4, 0xf9, 0x06, - 0x68, 0xf3, 0x90, 0x07, 0xb1, 0x79, 0x61, 0x3b, 0xbd, 0x45, 0x28, 0x29, 0xb7, 0x08, 0xad, 0x03, - 0xc8, 0x0f, 0x66, 0x99, 0xa4, 0x03, 0xa0, 0xc4, 0x3a, 0xbd, 0xc1, 0x33, 0x0c, 0x0f, 0x3a, 0x14, - 0x87, 0x4f, 0xdb, 0xac, 0x53, 0xcf, 0xe3, 0xbe, 0x8f, 0xfa, 0xa2, 0x53, 0x40, 0x9c, 0xf6, 0xce, - 0x4e, 0x67, 0x38, 0xac, 0x6b, 0x8a, 0x05, 0x16, 0x9f, 0x94, 0xa1, 0x14, 0xce, 0x5f, 0x5a, 0xae, - 0xfd, 0x44, 0x87, 0x75, 0xcb, 0x77, 0x5d, 0xd3, 0xb3, 0x5b, 0xff, 0x58, 0x05, 0xc0, 0x7d, 0xcb, - 0xeb, 0xac, 0x47, 0x50, 0xe4, 0x41, 0xe0, 0x07, 0x52, 0xc1, 0xb2, 0x35, 0x97, 0xc0, 0xd9, 0xee, - 0x20, 0x42, 0xdc, 0x63, 0x02, 0x5f, 0xad, 0xf6, 0x84, 0x82, 0xdd, 0x5c, 0x44, 0x9a, 0x24, 0x6c, - 0x92, 0x78, 0x51, 0xb5, 0x57, 0x58, 0x4e, 0x9e, 0xa4, 0x0a, 0x31, 0x79, 0x5c, 0xed, 0xc9, 0xfa, - 0x49, 0x5b, 0x50, 0x98, 0x48, 0x52, 0xf2, 0x76, 0x92, 0x2c, 0xae, 0x9f, 0x44, 0x19, 0x54, 0x5c, - 0xbe, 0x53, 0xe9, 0x43, 0xe2, 0x9d, 0x9e, 0x29, 0x83, 0x4a, 0xcb, 0x09, 0xa5, 0xfe, 0xc4, 0x84, - 0xa2, 0x0c, 0xfa, 0x02, 0x6a, 0x19, 0xd1, 0xa1, 0x22, 0x58, 0x18, 0x40, 0x72, 0x22, 0x80, 0x60, - 0x9b, 0x1e, 0x17, 0xc2, 0x89, 0x54, 0x2b, 0x6c, 0x36, 0xff, 0x3b, 0x07, 0x9b, 0x67, 0xe4, 0x76, - 0x39, 0x4a, 0xe3, 0xfb, 0x4c, 0xe2, 0x83, 0x49, 0xc0, 0xfd, 0x4b, 0x1c, 0x4a, 0xdc, 0xef, 0x7a, - 0xc7, 0xbe, 0x92, 0x29, 0xfd, 0x00, 0x15, 0x65, 0x60, 0x55, 0x64, 0x4b, 0x1e, 0x49, 0xf3, 0xcb, - 0x1f, 0x49, 0x9b, 0xbf, 0x2d, 0xc0, 0xe6, 0x99, 0x23, 0xbd, 0xfc, 0xce, 0xe4, 0xd1, 0x5f, 0xb8, - 0xb3, 0x33, 0xcc, 0xe3, 0xbe, 0xd8, 0x59, 0xcc, 0xa0, 0xf9, 0x9b, 0x3c, 0x54, 0x94, 0x91, 0x3f, - 0x4e, 0x32, 0x81, 0x12, 0xb0, 0x95, 0x57, 0x9c, 0xb3, 0x12, 0xa0, 0xb1, 0xe4, 0xf7, 0x08, 0x4d, - 0xf9, 0x3d, 0xe2, 0x50, 0x46, 0xee, 0x22, 0x79, 0xa7, 0x5f, 0xfe, 0xc4, 0x7d, 0x6d, 0xef, 0x76, - 0x0e, 0x3a, 0xa3, 0xee, 0xa0, 0xaf, 0xc4, 0x73, 0x99, 0x59, 0x95, 0x92, 0xcc, 0xaa, 0xd5, 0x82, - 0xaa, 0x8a, 0x87, 0xae, 0x72, 0xaf, 0x7b, 0x80, 0x0e, 0xa6, 0x0c, 0xda, 0x88, 0x75, 0x3a, 0xf5, - 0x5c, 0x73, 0x1f, 0x2a, 0x8a, 0xd1, 0x5c, 0xf2, 0x60, 0xe2, 0xd4, 0xa1, 0x90, 0xa6, 0x0e, 0xcd, - 0x13, 0xa8, 0x65, 0x0c, 0xe9, 0x92, 0xac, 0x1e, 0x80, 0x4e, 0x06, 0xe7, 0x89, 0x6a, 0xbf, 0x90, - 0x89, 0xf9, 0xe9, 0x43, 0x32, 0x4b, 0xb1, 0x9a, 0xa1, 0xbc, 0x33, 0xa6, 0x63, 0x8c, 0xef, 0x87, - 0x73, 0xd9, 0xfb, 0x61, 0x7a, 0x59, 0x91, 0x77, 0xc6, 0xd8, 0x5e, 0xb4, 0xe4, 0xf8, 0x41, 0x53, - 0x4b, 0x1f, 0x34, 0x1b, 0xb0, 0xee, 0x91, 0x19, 0xdb, 0x32, 0x9a, 0xc7, 0xdd, 0xe6, 0x63, 0xa8, - 0x88, 0x8b, 0x56, 0xcb, 0xe2, 0x61, 0xb8, 0x70, 0xda, 0x06, 0xac, 0x4f, 0x02, 0xd3, 0x8b, 0xb8, - 0x2d, 0x4b, 0x93, 0xb8, 0xdb, 0xfc, 0xa7, 0x1c, 0xd4, 0x32, 0xce, 0xe2, 0x92, 0xc2, 0xf9, 0x02, - 0x4a, 0x34, 0x7d, 0xac, 0xfe, 0xd7, 0x97, 0x7a, 0x21, 0x52, 0x76, 0x89, 0x6c, 0x3c, 0x82, 0x92, - 0x49, 0xcb, 0xa4, 0x44, 0x7d, 0x89, 0xab, 0x54, 0x76, 0xc3, 0x24, 0x7a, 0xeb, 0x0e, 0xd4, 0xfa, - 0xe1, 0x30, 0x32, 0xa3, 0x95, 0xd7, 0xb5, 0xad, 0x7f, 0x29, 0xc0, 0x46, 0x8c, 0x7b, 0xc1, 0x9e, - 0x0c, 0xd0, 0x78, 0xba, 0x29, 0x6a, 0x53, 0x54, 0x8d, 0xb0, 0x50, 0x90, 0x37, 0xec, 0xd4, 0xc1, - 0xfa, 0xc1, 0x53, 0x73, 0x2c, 0xd9, 0xc3, 0xea, 0xdd, 0x53, 0x7e, 0x56, 0x10, 0xc7, 0xa2, 0x82, - 0x8c, 0x0f, 0x40, 0x7f, 0xe9, 0xfb, 0xd1, 0x98, 0xec, 0x50, 0xbc, 0xe4, 0x97, 0x11, 0x40, 0x3f, - 0x55, 0xdd, 0x80, 0x8a, 0x35, 0x0f, 0xe8, 0x4f, 0x94, 0x63, 0xc7, 0x96, 0x6f, 0xf9, 0x20, 0x41, - 0x7b, 0x8e, 0xad, 0x22, 0x58, 0x8e, 0x2d, 0x5f, 0xf2, 0x63, 0x84, 0x1d, 0x81, 0xe0, 0x72, 0x77, - 0xfc, 0xda, 0x09, 0xa2, 0xb9, 0x39, 0x95, 0xef, 0xf8, 0xe0, 0x72, 0xf7, 0x99, 0x80, 0x18, 0x1f, - 0x41, 0x15, 0x11, 0x02, 0x1e, 0x3a, 0x36, 0xf7, 0x22, 0xf9, 0x30, 0x89, 0x44, 0x4c, 0x82, 0x70, - 0x89, 0x88, 0x22, 0x22, 0x4a, 0x45, 0xe6, 0x89, 0xdc, 0x15, 0x69, 0xca, 0x75, 0x40, 0x6e, 0xe3, - 0x49, 0xe0, 0xbf, 0x89, 0x4e, 0xe8, 0x95, 0x52, 0x63, 0x88, 0xbe, 0x4f, 0x00, 0x3c, 0x83, 0xe8, - 0x24, 0xe0, 0xa6, 0x2d, 0x9e, 0xe7, 0x35, 0x16, 0x77, 0x51, 0x61, 0x8e, 0xed, 0x90, 0x1e, 0x24, - 0x35, 0x86, 0x4d, 0x14, 0xe2, 0x7c, 0x46, 0x72, 0x10, 0x7f, 0x81, 0xc8, 0x5e, 0xeb, 0xdf, 0x0a, - 0x50, 0xeb, 0x99, 0x9e, 0x33, 0x4d, 0x72, 0xe5, 0x6f, 0xa1, 0x1a, 0x88, 0xe6, 0x58, 0x79, 0x51, - 0x4a, 0x2f, 0x9b, 0x7b, 0xed, 0x7e, 0xf7, 0xa0, 0x3d, 0x66, 0x9d, 0x1f, 0x8e, 0x3a, 0xc3, 0x91, - 0xa8, 0x1b, 0x2a, 0x92, 0x62, 0x84, 0xee, 0xe6, 0x7d, 0x28, 0xa3, 0x2e, 0x8c, 0xcf, 0xfc, 0x0d, - 0xf7, 0xbd, 0x78, 0x24, 0xa2, 0x3f, 0x0e, 0x2d, 0x3f, 0xce, 0x92, 0x92, 0x3e, 0x6e, 0x96, 0xa4, - 0x30, 0x56, 0xff, 0x02, 0x20, 0x08, 0xfd, 0xd1, 0xb5, 0x05, 0x15, 0x9b, 0x87, 0x56, 0xe0, 0xcc, - 0x92, 0x27, 0x15, 0x9d, 0xa9, 0x20, 0x9c, 0x57, 0x30, 0x90, 0xbf, 0x95, 0xe9, 0x6c, 0x9d, 0xfa, - 0x5d, 0xdb, 0xf8, 0x18, 0x36, 0xc4, 0x90, 0x78, 0x5d, 0x95, 0xc7, 0xad, 0xb3, 0x2a, 0x41, 0xf7, - 0x11, 0x28, 0xfe, 0x3d, 0x13, 0x29, 0x41, 0x59, 0xd4, 0xfa, 0x22, 0xde, 0x37, 0x60, 0x9d, 0x0a, - 0x56, 0x3f, 0xa0, 0x13, 0xd6, 0x59, 0xdc, 0x45, 0x99, 0x72, 0x91, 0xb5, 0x81, 0x78, 0x92, 0x11, - 0x3d, 0x3c, 0x76, 0xd3, 0x76, 0x1d, 0x6f, 0x2c, 0x47, 0x2b, 0x62, 0xad, 0x04, 0xeb, 0x24, 0xef, - 0xc0, 0x62, 0x41, 0xf4, 0x5c, 0x55, 0x55, 0x36, 0xfb, 0xd4, 0x0f, 0x23, 0xe3, 0x56, 0xbc, 0xde, - 0xf8, 0x25, 0x5c, 0xfe, 0x7f, 0x51, 0x23, 0x68, 0xfc, 0xea, 0xdd, 0xfa, 0x7d, 0x0e, 0x36, 0xe2, - 0xc3, 0x93, 0xa6, 0x26, 0x5d, 0x45, 0x2e, 0xe3, 0x92, 0xad, 0xb8, 0x4c, 0x2d, 0x4a, 0xe3, 0xbb, - 0x0e, 0x10, 0xf9, 0x91, 0x39, 0x1d, 0xcf, 0x43, 0xf9, 0x5c, 0x53, 0x60, 0x3a, 0x41, 0x8e, 0x42, - 0x8e, 0x21, 0x6e, 0x43, 0x0c, 0x5b, 0xe6, 0xcc, 0xb4, 0x9c, 0x48, 0x3c, 0xf6, 0x15, 0x58, 0x8d, - 0xa0, 0x3b, 0x12, 0x68, 0x7c, 0x02, 0x9b, 0x1e, 0x7f, 0x23, 0x74, 0x77, 0x9c, 0x26, 0x53, 0x05, - 0x56, 0xf3, 0xf8, 0x1b, 0xd2, 0x60, 0x72, 0xd3, 0x28, 0xfd, 0x14, 0x4f, 0x79, 0xf6, 0xaa, 0xc6, - 0x68, 0x87, 0x66, 0x74, 0x72, 0xf7, 0xcf, 0x41, 0x3b, 0x13, 0x8b, 0x6a, 0xa0, 0xef, 0x0c, 0xfa, - 0xa3, 0x76, 0xb7, 0xdf, 0x61, 0x0b, 0x92, 0xfb, 0xe1, 0xa8, 0x3d, 0xaa, 0x17, 0xee, 0xde, 0x03, - 0x3d, 0xf9, 0x17, 0x08, 0xc1, 0x58, 0x4f, 0x8a, 0x7b, 0x94, 0x7d, 0x36, 0x38, 0x3a, 0x14, 0xd9, - 0xf1, 0x21, 0x1b, 0x7c, 0xd7, 0xd9, 0x41, 0xf4, 0xfb, 0xb0, 0x2e, 0x4b, 0x38, 0x63, 0x1d, 0x0a, - 0xfb, 0x9d, 0x51, 0x7d, 0x0d, 0x1b, 0xc3, 0xce, 0xa8, 0x9e, 0x33, 0x4a, 0x90, 0x67, 0xbd, 0x7a, - 0x9e, 0xd2, 0xec, 0x5e, 0x7f, 0xb0, 0xdb, 0x21, 0xfe, 0x90, 0x96, 0x65, 0xd9, 0xe2, 0xf6, 0xd9, - 0xe0, 0xe0, 0xa8, 0x27, 0x53, 0xf1, 0x2e, 0xa1, 0xe7, 0xef, 0xfe, 0x26, 0x07, 0x57, 0x16, 0x98, - 0x88, 0x51, 0x87, 0xaa, 0xc8, 0xe2, 0xc7, 0x22, 0x4f, 0x5f, 0x43, 0x08, 0x05, 0xe1, 0x18, 0x92, - 0x43, 0x48, 0xe7, 0xf9, 0xa8, 0xd3, 0xdf, 0x1d, 0xc7, 0x89, 0x7d, 0x1d, 0xaa, 0xc3, 0xa7, 0xac, - 0xdb, 0xff, 0x7e, 0x1c, 0x67, 0xf7, 0x57, 0x60, 0xb3, 0xd7, 0xee, 0xb7, 0xf7, 0x3b, 0xe3, 0xce, - 0x73, 0x29, 0x0d, 0x8d, 0xca, 0xe8, 0xbe, 0x00, 0xd7, 0x8b, 0x86, 0x01, 0x1b, 0xfb, 0x9d, 0xd1, - 0x78, 0xa7, 0x7d, 0xd8, 0xde, 0xe9, 0x8e, 0xba, 0x9d, 0x61, 0xbd, 0xf4, 0xf0, 0x7f, 0x0b, 0x50, - 0xe8, 0xf8, 0xa1, 0xf1, 0x10, 0xb4, 0x43, 0xc7, 0x9b, 0x18, 0xe9, 0xfb, 0xab, 0xf2, 0xc3, 0x6f, - 0xd3, 0x38, 0x03, 0x9d, 0x4d, 0x4f, 0x5b, 0x6b, 0xc6, 0x03, 0xc8, 0xf7, 0x76, 0x0d, 0x43, 0x49, - 0x85, 0x62, 0xfc, 0x2b, 0x19, 0x98, 0x50, 0xc1, 0xd6, 0xda, 0xe7, 0x39, 0xe3, 0x0b, 0xd0, 0xf6, - 0x1c, 0xcf, 0x36, 0xd4, 0xe7, 0xee, 0xe4, 0xb1, 0x7a, 0x39, 0xd9, 0x63, 0x28, 0x89, 0xd0, 0x61, - 0xbc, 0x9b, 0x46, 0x26, 0x35, 0xee, 0x34, 0xdf, 0x3b, 0x07, 0x8f, 0xc9, 0x8d, 0xef, 0x60, 0xf3, - 0xcc, 0x1f, 0xc5, 0xc6, 0x8d, 0xf3, 0xaf, 0xe8, 0x99, 0x9f, 0x7c, 0x9b, 0xe9, 0xfa, 0x94, 0xbf, - 0x74, 0x5b, 0x6b, 0xc6, 0x5f, 0x02, 0xa4, 0x7f, 0x04, 0x1b, 0xcd, 0xcc, 0xa3, 0xfd, 0xe5, 0x38, - 0x3c, 0x00, 0xad, 0xf3, 0x96, 0x5b, 0x8a, 0xd8, 0x92, 0xf2, 0x52, 0xd9, 0x7f, 0x1a, 0x76, 0x5b, - 0x6b, 0xc6, 0x53, 0xb8, 0x22, 0xac, 0x79, 0xc8, 0x83, 0xd7, 0x3c, 0xb9, 0xe8, 0x4b, 0x45, 0x91, - 0x71, 0xd4, 0x8a, 0x28, 0xb2, 0x3e, 0xa0, 0xb5, 0xf6, 0xe4, 0x08, 0x36, 0x1d, 0x7f, 0x7b, 0x82, - 0x63, 0x12, 0xe7, 0x49, 0xb9, 0xe3, 0x87, 0x94, 0x30, 0x1d, 0xe6, 0xfe, 0xea, 0xf3, 0x89, 0x13, - 0x9d, 0xcc, 0x5f, 0x6e, 0x5b, 0xbe, 0x7b, 0xdf, 0xe2, 0x81, 0x77, 0x8f, 0xfb, 0xe1, 0x7d, 0xc4, - 0xbe, 0x47, 0xde, 0xf8, 0x3e, 0x7d, 0x5f, 0xce, 0x8f, 0x1f, 0x73, 0x3f, 0x1c, 0x23, 0xfc, 0x1f, - 0xf2, 0x85, 0xce, 0x60, 0xf8, 0xb2, 0x44, 0x03, 0x7f, 0xfa, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x8f, 0xfd, 0x31, 0xde, 0x3b, 0x2e, 0x00, 0x00, -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// EosClient is the client API for Eos service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type EosClient interface { - // Replies to a ping - Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) - // Replies to MD requests with a stream - MD(ctx context.Context, in *MDRequest, opts ...grpc.CallOption) (Eos_MDClient, error) - // Replies to Find requests with a stream - Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (Eos_FindClient, error) - // Replies to a NsStat operation - NsStat(ctx context.Context, in *NsStatRequest, opts ...grpc.CallOption) (*NsStatResponse, error) - // Replies to an insert - ContainerInsert(ctx context.Context, in *ContainerInsertRequest, opts ...grpc.CallOption) (*InsertReply, error) - FileInsert(ctx context.Context, in *FileInsertRequest, opts ...grpc.CallOption) (*InsertReply, error) - // Replies to a NsRequest operation - Exec(ctx context.Context, in *NSRequest, opts ...grpc.CallOption) (*NSResponse, error) - // Manila Driver - ManilaServerRequest(ctx context.Context, in *ManilaRequest, opts ...grpc.CallOption) (*ManilaResponse, error) -} - -type eosClient struct { - cc grpc.ClientConnInterface -} - -func NewEosClient(cc grpc.ClientConnInterface) EosClient { - return &eosClient{cc} -} - -func (c *eosClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) { - out := new(PingReply) - err := c.cc.Invoke(ctx, "/eos.rpc.Eos/Ping", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *eosClient) MD(ctx context.Context, in *MDRequest, opts ...grpc.CallOption) (Eos_MDClient, error) { - stream, err := c.cc.NewStream(ctx, &_Eos_serviceDesc.Streams[0], "/eos.rpc.Eos/MD", opts...) - if err != nil { - return nil, err - } - x := &eosMDClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type Eos_MDClient interface { - Recv() (*MDResponse, error) - grpc.ClientStream -} - -type eosMDClient struct { - grpc.ClientStream -} - -func (x *eosMDClient) Recv() (*MDResponse, error) { - m := new(MDResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *eosClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (Eos_FindClient, error) { - stream, err := c.cc.NewStream(ctx, &_Eos_serviceDesc.Streams[1], "/eos.rpc.Eos/Find", opts...) - if err != nil { - return nil, err - } - x := &eosFindClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type Eos_FindClient interface { - Recv() (*MDResponse, error) - grpc.ClientStream -} - -type eosFindClient struct { - grpc.ClientStream -} - -func (x *eosFindClient) Recv() (*MDResponse, error) { - m := new(MDResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *eosClient) NsStat(ctx context.Context, in *NsStatRequest, opts ...grpc.CallOption) (*NsStatResponse, error) { - out := new(NsStatResponse) - err := c.cc.Invoke(ctx, "/eos.rpc.Eos/NsStat", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *eosClient) ContainerInsert(ctx context.Context, in *ContainerInsertRequest, opts ...grpc.CallOption) (*InsertReply, error) { - out := new(InsertReply) - err := c.cc.Invoke(ctx, "/eos.rpc.Eos/ContainerInsert", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *eosClient) FileInsert(ctx context.Context, in *FileInsertRequest, opts ...grpc.CallOption) (*InsertReply, error) { - out := new(InsertReply) - err := c.cc.Invoke(ctx, "/eos.rpc.Eos/FileInsert", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *eosClient) Exec(ctx context.Context, in *NSRequest, opts ...grpc.CallOption) (*NSResponse, error) { - out := new(NSResponse) - err := c.cc.Invoke(ctx, "/eos.rpc.Eos/Exec", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *eosClient) ManilaServerRequest(ctx context.Context, in *ManilaRequest, opts ...grpc.CallOption) (*ManilaResponse, error) { - out := new(ManilaResponse) - err := c.cc.Invoke(ctx, "/eos.rpc.Eos/ManilaServerRequest", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// EosServer is the server API for Eos service. -type EosServer interface { - // Replies to a ping - Ping(context.Context, *PingRequest) (*PingReply, error) - // Replies to MD requests with a stream - MD(*MDRequest, Eos_MDServer) error - // Replies to Find requests with a stream - Find(*FindRequest, Eos_FindServer) error - // Replies to a NsStat operation - NsStat(context.Context, *NsStatRequest) (*NsStatResponse, error) - // Replies to an insert - ContainerInsert(context.Context, *ContainerInsertRequest) (*InsertReply, error) - FileInsert(context.Context, *FileInsertRequest) (*InsertReply, error) - // Replies to a NsRequest operation - Exec(context.Context, *NSRequest) (*NSResponse, error) - // Manila Driver - ManilaServerRequest(context.Context, *ManilaRequest) (*ManilaResponse, error) -} - -// UnimplementedEosServer can be embedded to have forward compatible implementations. -type UnimplementedEosServer struct { -} - -func (*UnimplementedEosServer) Ping(ctx context.Context, req *PingRequest) (*PingReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") -} -func (*UnimplementedEosServer) MD(req *MDRequest, srv Eos_MDServer) error { - return status.Errorf(codes.Unimplemented, "method MD not implemented") -} -func (*UnimplementedEosServer) Find(req *FindRequest, srv Eos_FindServer) error { - return status.Errorf(codes.Unimplemented, "method Find not implemented") -} -func (*UnimplementedEosServer) NsStat(ctx context.Context, req *NsStatRequest) (*NsStatResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NsStat not implemented") -} -func (*UnimplementedEosServer) ContainerInsert(ctx context.Context, req *ContainerInsertRequest) (*InsertReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method ContainerInsert not implemented") -} -func (*UnimplementedEosServer) FileInsert(ctx context.Context, req *FileInsertRequest) (*InsertReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method FileInsert not implemented") -} -func (*UnimplementedEosServer) Exec(ctx context.Context, req *NSRequest) (*NSResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Exec not implemented") -} -func (*UnimplementedEosServer) ManilaServerRequest(ctx context.Context, req *ManilaRequest) (*ManilaResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ManilaServerRequest not implemented") -} - -func RegisterEosServer(s *grpc.Server, srv EosServer) { - s.RegisterService(&_Eos_serviceDesc, srv) -} - -func _Eos_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PingRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(EosServer).Ping(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/eos.rpc.Eos/Ping", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(EosServer).Ping(ctx, req.(*PingRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Eos_MD_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(MDRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(EosServer).MD(m, &eosMDServer{stream}) -} - -type Eos_MDServer interface { - Send(*MDResponse) error - grpc.ServerStream -} - -type eosMDServer struct { - grpc.ServerStream -} - -func (x *eosMDServer) Send(m *MDResponse) error { - return x.ServerStream.SendMsg(m) -} - -func _Eos_Find_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(FindRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(EosServer).Find(m, &eosFindServer{stream}) -} - -type Eos_FindServer interface { - Send(*MDResponse) error - grpc.ServerStream -} - -type eosFindServer struct { - grpc.ServerStream -} - -func (x *eosFindServer) Send(m *MDResponse) error { - return x.ServerStream.SendMsg(m) -} - -func _Eos_NsStat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NsStatRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(EosServer).NsStat(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/eos.rpc.Eos/NsStat", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(EosServer).NsStat(ctx, req.(*NsStatRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Eos_ContainerInsert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerInsertRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(EosServer).ContainerInsert(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/eos.rpc.Eos/ContainerInsert", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(EosServer).ContainerInsert(ctx, req.(*ContainerInsertRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Eos_FileInsert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FileInsertRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(EosServer).FileInsert(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/eos.rpc.Eos/FileInsert", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(EosServer).FileInsert(ctx, req.(*FileInsertRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Eos_Exec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NSRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(EosServer).Exec(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/eos.rpc.Eos/Exec", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(EosServer).Exec(ctx, req.(*NSRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Eos_ManilaServerRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ManilaRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(EosServer).ManilaServerRequest(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/eos.rpc.Eos/ManilaServerRequest", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(EosServer).ManilaServerRequest(ctx, req.(*ManilaRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Eos_serviceDesc = grpc.ServiceDesc{ - ServiceName: "eos.rpc.Eos", - HandlerType: (*EosServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Ping", - Handler: _Eos_Ping_Handler, - }, - { - MethodName: "NsStat", - Handler: _Eos_NsStat_Handler, - }, - { - MethodName: "ContainerInsert", - Handler: _Eos_ContainerInsert_Handler, - }, - { - MethodName: "FileInsert", - Handler: _Eos_FileInsert_Handler, - }, - { - MethodName: "Exec", - Handler: _Eos_Exec_Handler, - }, - { - MethodName: "ManilaServerRequest", - Handler: _Eos_ManilaServerRequest_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "MD", - Handler: _Eos_MD_Handler, - ServerStreams: true, - }, - { - StreamName: "Find", - Handler: _Eos_Find_Handler, - ServerStreams: true, - }, - }, - Metadata: "Rpc.proto", -} diff --git a/pkg/eosclient/eosgrpc/eos_grpc/Rpc.proto b/pkg/eosclient/eosgrpc/eos_grpc/Rpc.proto deleted file mode 100644 index 97c68bdaa5..0000000000 --- a/pkg/eosclient/eosgrpc/eos_grpc/Rpc.proto +++ /dev/null @@ -1,604 +0,0 @@ -// @project The CERN Tape Archive (CTA) -// @brief CTA-EOS gRPC API for CASTOR-EOS migration -// @copyright Copyright 2019 CERN -// @license This program is free software: you can redistribute it and/or -// modify -// it under the terms of the GNU General Public License as -// published by the Free Software Foundation, either version 3 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied -// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -// PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public -// License along with this program. If not, see -// . - -// NOTE: Compile for Go with: -// protoc ./eos_grpc.proto --go_out=plugins=grpc:. - -syntax = "proto3"; - -package eos.rpc; - -option java_multiple_files = true; -option java_package = "io.grpc.eos.rpc"; -option java_outer_classname = "EosProto"; -option objc_class_prefix = "EOS"; -option go_package = "github.com/cern-eos/grpc-proto/protobuf;eos_grpc"; - -service Eos { - // Replies to a ping - rpc Ping(PingRequest) returns (PingReply) {} - - // --------------------------------------------------------------------- - // NAMESPACE - // --------------------------------------------------------------------- - - // Replies to MD requests with a stream - rpc MD(MDRequest) returns (stream MDResponse) {} - - // Replies to Find requests with a stream - rpc Find(FindRequest) returns (stream MDResponse) {} - - // Replies to a NsStat operation - rpc NsStat(NsStatRequest) returns (NsStatResponse) {} - - // Replies to an insert - rpc ContainerInsert(ContainerInsertRequest) returns (InsertReply) {} - rpc FileInsert(FileInsertRequest) returns (InsertReply) {} - - // Replies to a NsRequest operation - rpc Exec(NSRequest) returns (NSResponse) {} - - // --------------------------------------------------------------------- - // OPENSTACK - // --------------------------------------------------------------------- - - // Manila Driver - rpc ManilaServerRequest(ManilaRequest) returns (ManilaResponse) {} -} - -message PingRequest { - string authkey = 1; - bytes message = 2; -} - -message PingReply { bytes message = 1; } - -// --------------------------------------------------------------------- -// NAMESPACE -// --------------------------------------------------------------------- - -message ContainerInsertRequest { - repeated ContainerMdProto container = 1; - string authkey = 2; - bool inherit_md = 3; -} - -message FileInsertRequest { - repeated FileMdProto files = 1; - string authkey = 2; -} - -message InsertReply { - repeated string message = 1; - repeated uint32 retc = 2; -} - -message Time { - uint64 sec = 1; - uint64 n_sec = 2; -} - -message Checksum { - bytes value = 1; - string type = 2; -} - -message FileMdProto { - uint64 id = 1; - uint64 cont_id = 2; - uint64 uid = 3; - uint64 gid = 4; - uint64 size = 5; - uint32 layout_id = 6; - uint32 flags = 7; - bytes name = 8; - bytes link_name = 9; - Time ctime = 10; // change time - Time mtime = 11; // modification time - Checksum checksum = 12; - repeated uint32 locations = 13; - repeated uint32 unlink_locations = 14; - map xattrs = 15; - bytes path = 16; - string etag = 17; - uint64 inode = 18; -} - -message ContainerMdProto { - uint64 id = 1; - uint64 parent_id = 2; - uint64 uid = 3; - uint64 gid = 4; - int64 tree_size = 6; - uint32 mode = 5; - uint32 flags = 7; - bytes name = 8; - Time ctime = 9; // change time - Time mtime = 10; // modification time - Time stime = 11; // sync time - map xattrs = 12; - bytes path = 13; - string etag = 14; - uint64 inode = 15; -} - -enum TYPE { - FILE = 0; - CONTAINER = 1; - LISTING = 2; - STAT = 3; -} - -enum QUOTATYPE { - USER = 0; - GROUP = 2; - PROJECT = 3; -} - -enum QUOTAOP { - GET = 0; - SET = 1; - RM = 2; - RMNODE = 3; -} - -enum QUOTAENTRY { - NONE = 0; - VOLUME = 1; - INODE = 2; -} - -message QuotaProto { - bytes path = 1; // quota node path - string name = 2; // associated name for the given type - QUOTATYPE type = 3; // user,group,project or all quota - uint64 usedbytes = 4; // bytes used physical - uint64 usedlogicalbytes = 5; // bytes used logical - uint64 usedfiles = 6; // number of files used - uint64 maxbytes = 7; // maximum number of bytes (volume quota) - uint64 maxlogicalbytes = - 8; // maximum number of logical bytes (logical volume quota) - uint64 maxfiles = 9; // maximum number of files (inode quota) - float percentageusedbytes = - 10; // percentage of volume quota used from 0 to 100 - float percentageusedfiles = 11; // percentag of inode quota used from 0 to 100 - string statusbytes = 12; // status string for volume quota ok,warning,exceeded - string statusfiles = 13; // status string for inode quota ok,warning,exceeded -} - -message RoleId { - uint64 uid = 1; - uint64 gid = 2; - string username = 3; - string groupname = 4; -} - -message MDId { - bytes path = 1; - fixed64 id = 2; - fixed64 ino = 3; - TYPE type = 4; -} - -message Limit { - bool zero = 1; - uint64 min = 2; - uint64 max = 3; -} - -message MDSelection { - bool select = 1; - Limit ctime = 2; - Limit mtime = 3; - Limit stime = 4; - Limit size = 5; - Limit treesize = 6; - Limit children = 7; - Limit locations = 8; - Limit unlinked_locations = 9; - uint64 layoutid = 10; - uint64 flags = 11; - bool symlink = 12; - Checksum checksum = 13; - uint32 owner = 14; - uint32 group = 15; - bool owner_root = 16; - bool group_root = 17; - bytes regexp_filename = 18; - bytes regexp_dirname = 19; - map xattr = 20; -} - -message MDRequest { - TYPE type = 1; - MDId id = 2; - string authkey = 3; - RoleId role = 4; - MDSelection selection = 5; -} - -message MDResponse { - TYPE type = 1; - FileMdProto fmd = 2; - ContainerMdProto cmd = 3; -} - -message FindRequest { - TYPE type = 1; - MDId id = 2; - RoleId role = 3; - string authkey = 4; - uint64 maxdepth = 5; - MDSelection selection = 6; -} - -message ShareAuth { - string prot = 1; - string name = 2; - string host = 3; -} - -message ShareProto { - string permission = 1; - uint64 expires = 2; - string owner = 3; - string group = 4; - uint64 generation = 5; - string path = 6; - bool allowtree = 7; - string vtoken = 8; - repeated ShareAuth origins = 9; -} - -message ShareToken { - ShareProto token = 1; - bytes signature = 2; - bytes serialized = 3; - int32 seed = 4; -} - -message NSRequest { - message MkdirRequest { - MDId id = 1; - bool recursive = 2; - int64 mode = 3; - } - - message RmdirRequest { MDId id = 1; } - - message TouchRequest { MDId id = 1; } - - message UnlinkRequest { - MDId id = 1; - bool norecycle = 3; - } - - message RmRequest { - MDId id = 1; - bool recursive = 2; - bool norecycle = 3; - } - - message RenameRequest { - MDId id = 1; - bytes target = 2; - } - - message SymlinkRequest { - MDId id = 1; - bytes target = 2; - } - - message VersionRequest { - enum VERSION_CMD { - CREATE = 0; - PURGE = 1; - LIST = 2; - GRAB = 3; - } - MDId id = 1; - VERSION_CMD cmd = 2; - int32 maxversion = 3; - string grabversion = 4; - } - - message RecycleRequest { - string key = 1; - enum RECYCLE_CMD { - RESTORE = 0; - PURGE = 1; - LIST = 2; - } - RECYCLE_CMD cmd = 2; - - message RestoreFlags { - bool force = 1; - bool mkpath = 2; - bool versions = 3; - } - - message PurgeDate { - int32 year = 1; - int32 month = 2; - int32 day = 3; - } - - RestoreFlags restoreflag = 3; - PurgeDate purgedate = 4; - } - - message SetXAttrRequest { - MDId id = 1; - map xattrs = 2; - bool recursive = 3; - repeated string keystodelete = 4; - bool create = 5; - } - - message ChownRequest { - MDId id = 1; - RoleId owner = 2; - } - - message ChmodRequest { - MDId id = 1; - int64 mode = 2; - } - - message AclRequest { - enum ACL_COMMAND { - NONE = 0; - MODIFY = 1; - LIST = 2; - } - - enum ACL_TYPE { - USER_ACL = 0; - SYS_ACL = 1; - } - - MDId id = 1; - ACL_COMMAND cmd = 2; - bool recursive = 3; - ACL_TYPE type = 4; - string rule = 5; - uint32 position = 6; - } - - message TokenRequest { ShareToken token = 1; } - - message QuotaRequest { - bytes path = 1; - RoleId id = 2; - QUOTAOP op = 3; // get or set, rm or rmnode - uint64 maxfiles = 4; // maximum number of bytes (volume quota) for setting - uint64 maxbytes = 5; // maximum number of bytes (volume quota) for setting - QUOTAENTRY entry = 6; // select volume or inode entry for deletion - } - - message ShareRequest { - message LsShare { - enum OutFormat { - NONE = 0; // - MONITORING = 1; // [-m] - LISTING = 2; // [-l] - JSON = 3; // [grpc] - } - OutFormat outformat = 1; // - string selection = 2; // - } - - message OperateShare { - enum Op { - CREATE = 0; - REMOVE = 1; - SHARE = 2; - UNSHARE = 3; - ACCESS = 4; - MODIFY = 5; - } - Op op = 1; - string share = 2; - string acl = 3; - string path = 4; - string user = 5; - string group = 6; - } - - oneof subcmd { - LsShare ls = 1; - OperateShare op = 2; - } - } - - string authkey = 1; - RoleId role = 2; - - // Actual request data object - oneof command { - MkdirRequest mkdir = 21; - RmdirRequest rmdir = 22; - TouchRequest touch = 23; - UnlinkRequest unlink = 24; - RmRequest rm = 25; - RenameRequest rename = 26; - SymlinkRequest symlink = 27; - VersionRequest version = 28; - RecycleRequest recycle = 29; - SetXAttrRequest xattr = 30; - ChownRequest chown = 31; - ChmodRequest chmod = 32; - AclRequest acl = 33; - TokenRequest token = 34; - QuotaRequest quota = 35; - ShareRequest share = 36; - } -} - -message NSResponse { - message ErrorResponse { - int64 code = 1; - string msg = 2; - } - - message VersionResponse { - message VersionInfo { - MDId id = 1; - Time mtime = 2; - } - int64 code = 1; - string msg = 2; - repeated VersionInfo versions = 3; - } - - message RecycleResponse { - int64 code = 1; - string msg = 2; - - message RecycleInfo { - enum DELETIONTYPE { - FILE = 0; - TREE = 1; - } - MDId id = 1; - RoleId owner = 2; - Time dtime = 3; - uint64 size = 4; - DELETIONTYPE type = 5; - string key = 6; - } - - repeated RecycleInfo recycles = 3; - } - - message AclResponse { - int64 code = 1; - string msg = 2; - string rule = 3; - } - - message QuotaResponse { - int64 code = 1; - string msg = 2; - repeated QuotaProto quotanode = 3; - } - - message ShareInfo { - string name = 1; - string root = 2; - string rule = 3; - uint64 uid = 4; - uint64 nshared = 5; - } - - message ShareAccess { - string name = 1; - bool granted = 2; - } - - message ShareResponse { - int64 code = 1; - string msg = 2; - repeated ShareInfo shares = 3; - repeated ShareAccess access = 4; - } - - ErrorResponse error = 1; - VersionResponse version = 2; - RecycleResponse recycle = 3; - AclResponse acl = 4; - QuotaResponse quota = 5; - ShareResponse share = 6; -} - -message NsStatRequest { string authkey = 1; } - -message NsStatResponse { - int64 code = 1; - string emsg = 2; - string state = 3; - uint64 nfiles = 4; - uint64 ncontainers = 5; - uint64 boot_time = 6; - uint64 current_fid = 7; - uint64 current_cid = 8; - uint64 mem_virtual = 9; - uint64 mem_resident = 10; - uint64 mem_share = 11; - uint64 mem_growth = 12; - uint64 threads = 13; - uint64 fds = 14; - uint64 uptime = 15; -} - -// --------------------------------------------------------------------- -// OPENSTACK -// --------------------------------------------------------------------- - -enum MANILA_REQUEST_TYPE { - CREATE_SHARE = 0; - DELETE_SHARE = 1; - EXTEND_SHARE = 2; - SHRINK_SHARE = 3; - MANAGE_EXISTING = 4; - UNMANAGE = 5; - GET_CAPACITIES = 6; - /* EXTRA FUNCTIONS NOT IMPLEMENTED */ - /* - CREATE_SNAPSHOT = 7; - DELETE_SNAPSHOT = 8; - CREATE_SHARE_FROM_SNAPSHOT = 9; - ENSURE_SHARE = 10; - ALLOW_ACCESS = 11; - DENY_ACCESS = 12; - GET_SHARE_STATS = 13; - DO_SETUP = 14; - SETUP_SERVER = 15; - TEARDOWN_SERVER = 16; - GET_NETWORK_ALLOCATIONS_NUMBER = 17; - VERIFY_SHARE_SERVER_HANDLING = 18; - CREATE_SHARE_GROUP = 19; - DELETE_SHARE_GROUP = 20; - */ -} - -message ManilaRequest { - MANILA_REQUEST_TYPE request_type = 1; - string auth_key = 2; - string protocol = 3; - string share_name = 4; - string description = 5; - string share_id = 6; - string share_group_id = 7; - int32 quota = 8; - string creator = 9; - string egroup = 10; - string admin_egroup = 11; - string share_host = 12; - string share_location = 13; -} - -message ManilaResponse { - string msg = 1; // for generic messages - int32 code = 2; // < 1 is an error -- > 1 is OK - int64 total_used = 3; - int64 total_capacity = 4; - int64 new_share_quota = 5; - string new_share_path = 6; -} diff --git a/pkg/eosclient/eosgrpc/eosgrpc.go b/pkg/eosclient/eosgrpc/eosgrpc.go index 59cc0c5fbc..2793cb5e3d 100644 --- a/pkg/eosclient/eosgrpc/eosgrpc.go +++ b/pkg/eosclient/eosgrpc/eosgrpc.go @@ -23,23 +23,20 @@ package eosgrpc import ( - "bytes" "context" "encoding/hex" "fmt" "io" "os" - "os/exec" "path" "strconv" "strings" - "syscall" "time" + erpc "github.com/cern-eos/go-eosgrpc" userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" "github.com/cs3org/reva/pkg/appctx" "github.com/cs3org/reva/pkg/eosclient" - erpc "github.com/cs3org/reva/pkg/eosclient/eosgrpc/eos_grpc" "github.com/cs3org/reva/pkg/errtypes" "github.com/cs3org/reva/pkg/storage/utils/acl" "github.com/google/uuid" @@ -204,7 +201,7 @@ func (c *Client) getRespError(rsp *erpc.NSResponse, err error) error { } // Common code to create and initialize a NSRequest. -func (c *Client) initNSRequest(ctx context.Context, auth eosclient.Authorization) (*erpc.NSRequest, error) { +func (c *Client) initNSRequest(ctx context.Context, auth eosclient.Authorization, app string) (*erpc.NSRequest, error) { // Stuff filename, uid, gid into the MDRequest type log := appctx.GetLogger(ctx) @@ -223,12 +220,15 @@ func (c *Client) initNSRequest(ctx context.Context, auth eosclient.Authorization } rq.Role.Uid = uidInt rq.Role.Gid = gidInt + if app != "" { + rq.Role.App = app + } rq.Authkey = c.opt.Authkey return rq, nil } -// Common code to create and initialize a NSRequest. +// Common code to create and initialize a MDRequest. func (c *Client) initMDRequest(ctx context.Context, auth eosclient.Authorization) (*erpc.MDRequest, error) { // Stuff filename, uid, gid into the MDRequest type @@ -260,7 +260,7 @@ func (c *Client) AddACL(ctx context.Context, auth, rootAuth eosclient.Authorizat log.Info().Str("func", "AddACL").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Init a new NSRequest - rq, err := c.initNSRequest(ctx, rootAuth) + rq, err := c.initNSRequest(ctx, rootAuth, "") if err != nil { return err } @@ -311,7 +311,7 @@ func (c *Client) RemoveACL(ctx context.Context, auth, rootAuth eosclient.Authori sysACL := acls.Serialize() // Init a new NSRequest - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -388,7 +388,7 @@ func (c *Client) getACLForPath(ctx context.Context, auth eosclient.Authorization log.Info().Str("func", "GetACLForPath").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return nil, err } @@ -507,12 +507,12 @@ func (c *Client) fixupACLs(ctx context.Context, auth eosclient.Authorization, in } // SetAttr sets an extended attributes on a path. -func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, errorIfExists, recursive bool, path string) error { +func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, errorIfExists, recursive bool, path, app string) error { log := appctx.GetLogger(ctx) log.Info().Str("func", "SetAttr").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, app) if err != nil { return err } @@ -557,12 +557,12 @@ func (c *Client) SetAttr(ctx context.Context, auth eosclient.Authorization, attr } // UnsetAttr unsets an extended attribute on a path. -func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, recursive bool, path string) error { +func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, attr *eosclient.Attribute, recursive bool, path, app string) error { log := appctx.GetLogger(ctx) log.Info().Str("func", "UnsetAttr").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, app) if err != nil { return err } @@ -572,7 +572,6 @@ func (c *Client) UnsetAttr(ctx context.Context, auth eosclient.Authorization, at var ktd = []string{attr.GetKey()} msg.Keystodelete = ktd msg.Recursive = recursive - msg.Id = new(erpc.MDId) msg.Id.Path = []byte(path) @@ -725,7 +724,7 @@ func (c *Client) GetQuota(ctx context.Context, username string, rootAuth eosclie log.Info().Str("func", "GetQuota").Str("rootuid,rootgid", rootAuth.Role.UID+","+rootAuth.Role.GID).Str("username", username).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, rootAuth) + rq, err := c.initNSRequest(ctx, rootAuth, "") if err != nil { return nil, err } @@ -801,7 +800,7 @@ func (c *Client) SetQuota(ctx context.Context, rootAuth eosclient.Authorization, // return errtypes.NotSupported("eosgrpc: SetQuota not implemented") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, rootAuth) + rq, err := c.initNSRequest(ctx, rootAuth, "") if err != nil { return err } @@ -859,7 +858,7 @@ func (c *Client) Touch(ctx context.Context, auth eosclient.Authorization, path s log.Info().Str("func", "Touch").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -894,7 +893,7 @@ func (c *Client) Chown(ctx context.Context, auth, chownAuth eosclient.Authorizat log.Info().Str("func", "Chown").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("chownuid,chowngid", chownAuth.Role.UID+","+chownAuth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -938,7 +937,7 @@ func (c *Client) Chmod(ctx context.Context, auth eosclient.Authorization, mode, log.Info().Str("func", "Chmod").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("mode", mode).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -979,7 +978,7 @@ func (c *Client) CreateDir(ctx context.Context, auth eosclient.Authorization, pa log.Info().Str("func", "Createdir").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1020,7 +1019,7 @@ func (c *Client) rm(ctx context.Context, auth eosclient.Authorization, path stri log.Info().Str("func", "rm").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1055,7 +1054,7 @@ func (c *Client) rmdir(ctx context.Context, auth eosclient.Authorization, path s log.Info().Str("func", "rmdir").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1110,7 +1109,7 @@ func (c *Client) Rename(ctx context.Context, auth eosclient.Authorization, oldPa log.Info().Str("func", "Rename").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("oldPath", oldPath).Str("newPath", newPath).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1322,7 +1321,7 @@ func (c *Client) Read(ctx context.Context, auth eosclient.Authorization, path st // Write writes a file to the mgm // Somehow the same considerations as Read apply. -func (c *Client) Write(ctx context.Context, auth eosclient.Authorization, path string, stream io.ReadCloser) error { +func (c *Client) Write(ctx context.Context, auth eosclient.Authorization, path string, stream io.ReadCloser, app string) error { log := appctx.GetLogger(ctx) log.Info().Str("func", "Write").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Msg("") var length int64 @@ -1355,24 +1354,10 @@ func (c *Client) Write(ctx context.Context, auth eosclient.Authorization, path s defer wfd.Close() defer os.RemoveAll(fd.Name()) - return c.httpcl.PUTFile(ctx, u.Username, auth, path, wfd, length) + return c.httpcl.PUTFile(ctx, u.Username, auth, path, wfd, length, app) } - return c.httpcl.PUTFile(ctx, u.Username, auth, path, stream, length) - - // return c.httpcl.PUTFile(ctx, remoteuser, auth, urlpathng, stream) - // return c.WriteFile(ctx, uid, gid, path, fd.Name()) -} - -// WriteFile writes an existing file to the mgm. Old xrdcp utility. -func (c *Client) WriteFile(ctx context.Context, auth eosclient.Authorization, path, source string) error { - log := appctx.GetLogger(ctx) - log.Info().Str("func", "WriteFile").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Str("source", source).Msg("") - - xrdPath := fmt.Sprintf("%s//%s", c.opt.URL, path) - cmd := exec.CommandContext(ctx, c.opt.XrdcopyBinary, "--nopbar", "--silent", "-f", source, xrdPath, fmt.Sprintf("-ODeos.ruid=%s&eos.rgid=%s", auth.Role.UID, auth.Role.GID)) - _, _, err := c.execute(ctx, cmd) - return err + return c.httpcl.PUTFile(ctx, u.Username, auth, path, stream, length, app) } // ListDeletedEntries returns a list of the deleted entries. @@ -1381,7 +1366,7 @@ func (c *Client) ListDeletedEntries(ctx context.Context, auth eosclient.Authoriz log.Info().Str("func", "ListDeletedEntries").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return nil, err } @@ -1449,7 +1434,7 @@ func (c *Client) RestoreDeletedEntry(ctx context.Context, auth eosclient.Authori log.Info().Str("func", "RestoreDeletedEntries").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("key", key).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1487,7 +1472,7 @@ func (c *Client) PurgeDeletedEntries(ctx context.Context, auth eosclient.Authori log.Info().Str("func", "PurgeDeletedEntries").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1534,7 +1519,7 @@ func (c *Client) RollbackToVersion(ctx context.Context, auth eosclient.Authoriza log.Info().Str("func", "RollbackToVersion").Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", path).Str("version", version).Msg("") // Initialize the common fields of the NSReq - rq, err := c.initNSRequest(ctx, auth) + rq, err := c.initNSRequest(ctx, auth, "") if err != nil { return err } @@ -1677,51 +1662,3 @@ func (c *Client) grpcMDResponseToFileInfo(ctx context.Context, st *erpc.MDRespon } return fi, nil } - -// exec executes the command and returns the stdout, stderr and return code. -func (c *Client) execute(ctx context.Context, cmd *exec.Cmd) (string, string, error) { - log := appctx.GetLogger(ctx) - - outBuf := &bytes.Buffer{} - errBuf := &bytes.Buffer{} - cmd.Stdout = outBuf - cmd.Stderr = errBuf - cmd.Env = []string{ - "EOS_MGM_URL=" + c.opt.URL, - } - - if c.opt.UseKeytab { - cmd.Env = append(cmd.Env, "XrdSecPROTOCOL="+c.opt.SecProtocol) - cmd.Env = append(cmd.Env, "XrdSecSSSKT="+c.opt.Keytab) - } - - err := cmd.Run() - - var exitStatus int - if exiterr, ok := err.(*exec.ExitError); ok { - // The program has exited with an exit code != 0 - // This works on both Unix and Windows. Although package - // syscall is generally platform dependent, WaitStatus is - // defined for both Unix and Windows and in both cases has - // an ExitStatus() method with the same signature. - if status, ok := exiterr.Sys().(syscall.WaitStatus); ok { - exitStatus = status.ExitStatus() - switch exitStatus { - case 0: - err = nil - case 2: - err = errtypes.NotFound(errBuf.String()) - } - } - } - - args := fmt.Sprintf("%s", cmd.Args) - env := fmt.Sprintf("%s", cmd.Env) - log.Info().Str("args", args).Str("env", env).Int("exit", exitStatus).Msg("eos cmd") - - if err != nil && exitStatus != 2 { // don't wrap the errtypes.NotFoundError - err = errors.Wrap(err, "eosclient: error while executing command") - } - - return outBuf.String(), errBuf.String(), err -} diff --git a/pkg/eosclient/eosgrpc/eoshttp.go b/pkg/eosclient/eosgrpc/eoshttp.go index e75fc8c409..ee1aa3aacf 100644 --- a/pkg/eosclient/eosgrpc/eoshttp.go +++ b/pkg/eosclient/eosgrpc/eoshttp.go @@ -210,8 +210,8 @@ func (c *EOSHTTPClient) doReq(req *http.Request, remoteuser string) (*http.Respo return resp, err } -// If the error is not nil, take that -// If there is an error coming from EOS, erturn a descriptive error. +// If the error is not nil, take that. +// If there is an error coming from EOS, return a descriptive error. func (c *EOSHTTPClient) getRespError(rsp *http.Response, err error) error { if err != nil { return err @@ -228,6 +228,8 @@ func (c *EOSHTTPClient) getRespError(rsp *http.Response, err error) error { return errtypes.PermissionDenied(rspdesc(rsp)) case http.StatusNotFound: return errtypes.NotFound(rspdesc(rsp)) + case http.StatusConflict: + return errtypes.Conflict(rspdesc(rsp)) } return errtypes.InternalError("Err from EOS: " + rspdesc(rsp)) @@ -281,6 +283,8 @@ func (c *EOSHTTPClient) GETFile(ctx context.Context, remoteuser string, auth eos log.Error().Str("func", "GETFile").Str("url", finalurl).Str("err", err.Error()).Msg("can't create request") return nil, err } + // similar to eosbinary.go::Read() + req.Header.Set("app", "reva_eosclient::read") ntries := 0 nredirs := 0 @@ -360,9 +364,9 @@ func (c *EOSHTTPClient) GETFile(ctx context.Context, remoteuser string, auth eos } // PUTFile does an entire PUT to upload a full file, taking the data from a stream. -func (c *EOSHTTPClient) PUTFile(ctx context.Context, remoteuser string, auth eosclient.Authorization, urlpath string, stream io.ReadCloser, length int64) error { +func (c *EOSHTTPClient) PUTFile(ctx context.Context, remoteuser string, auth eosclient.Authorization, urlpath string, stream io.ReadCloser, length int64, app string) error { log := appctx.GetLogger(ctx) - log.Info().Str("func", "PUTFile").Str("remoteuser", remoteuser).Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", urlpath).Int64("length", length).Msg("") + log.Info().Str("func", "PUTFile").Str("remoteuser", remoteuser).Str("uid,gid", auth.Role.UID+","+auth.Role.GID).Str("path", urlpath).Int64("length", length).Str("app", app).Msg("") // Now send the req and see what happens finalurl, err := c.buildFullURL(urlpath, auth) @@ -376,6 +380,9 @@ func (c *EOSHTTPClient) PUTFile(ctx context.Context, remoteuser string, auth eos return err } + if app != "" { + req.Header.Set("app", app) + } req.Close = true ntries := 0 diff --git a/pkg/errtypes/errtypes.go b/pkg/errtypes/errtypes.go index 119bc7f8a9..f67f7a452e 100644 --- a/pkg/errtypes/errtypes.go +++ b/pkg/errtypes/errtypes.go @@ -94,6 +94,14 @@ func (e BadRequest) Error() string { return "error: bad request: " + string(e) } // IsBadRequest implements the IsBadRequest interface. func (e BadRequest) IsBadRequest() {} +// Conflict is the error to use when the server found a conflict when processing the request (e.g. with an existing lock). +type Conflict string + +func (e Conflict) Error() string { return "error: conflict: " + string(e) } + +// IsConflict implements the IsConflict interface. +func (e Conflict) IsConflict() {} + // ChecksumMismatch is the error to use when the sent hash does not match the calculated hash. type ChecksumMismatch string diff --git a/pkg/ocm/storage/outcoming/ocm.go b/pkg/ocm/storage/outcoming/ocm.go index ac80120f7c..b771106f2d 100644 --- a/pkg/ocm/storage/outcoming/ocm.go +++ b/pkg/ocm/storage/outcoming/ocm.go @@ -32,8 +32,9 @@ import ( rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" ocmv1beta1 "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" - typepb "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" + typespb "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" "github.com/cs3org/reva/internal/http/services/datagateway" + "github.com/cs3org/reva/internal/http/services/owncloud/ocdav" "github.com/cs3org/reva/internal/http/services/owncloud/ocs/conversions" "github.com/cs3org/reva/pkg/appctx" @@ -396,14 +397,19 @@ func getUploadProtocol(protocols []*gateway.FileUploadProtocol, protocol string) return "", "", false } -func (d *driver) Upload(ctx context.Context, ref *provider.Reference, content io.ReadCloser) error { +func (d *driver) Upload(ctx context.Context, ref *provider.Reference, content io.ReadCloser, metadata map[string]string) error { share, rel, err := d.shareAndRelativePathFromRef(ctx, ref) if err != nil { return err } + if metadata == nil { + metadata = map[string]string{} + } return d.unwrappedOpFromShareCreator(ctx, share, rel, func(ctx context.Context, newRef *provider.Reference) error { - initRes, err := d.gateway.InitiateFileUpload(ctx, &provider.InitiateFileUploadRequest{Ref: newRef}) + initRes, err := d.gateway.InitiateFileUpload(ctx, &provider.InitiateFileUploadRequest{ + Ref: newRef, + LockId: metadata["lockid"]}) switch { case err != nil: return err @@ -422,6 +428,12 @@ func (d *driver) Upload(ctx context.Context, ref *provider.Reference, content io } httpReq.Header.Set(datagateway.TokenTransportHeader, token) + if lockid := metadata["lockid"]; lockid != "" { + httpReq.Header.Set(ocdav.HeaderLockID, lockid) + } + if lockholder := metadata["lockholder"]; lockholder != "" { + httpReq.Header.Set(ocdav.HeaderLockHolder, lockholder) + } httpRes, err := httpclient.New().Do(httpReq) if err != nil { @@ -673,7 +685,7 @@ func (d *driver) RestoreRevision(ctx context.Context, ref *provider.Reference, k return errtypes.NotSupported("operation not supported") } -func (d *driver) ListRecycle(ctx context.Context, basePath, key, relativePath string, from, to *typepb.Timestamp) ([]*provider.RecycleItem, error) { +func (d *driver) ListRecycle(ctx context.Context, basePath, key, relativePath string, from, to *typespb.Timestamp) ([]*provider.RecycleItem, error) { return nil, errtypes.NotSupported("operation not supported") } diff --git a/pkg/ocm/storage/received/ocm.go b/pkg/ocm/storage/received/ocm.go index 89e73ef29b..75a0f38ff6 100644 --- a/pkg/ocm/storage/received/ocm.go +++ b/pkg/ocm/storage/received/ocm.go @@ -285,7 +285,7 @@ func (d *driver) InitiateUpload(ctx context.Context, ref *provider.Reference, _ }, nil } -func (d *driver) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error { +func (d *driver) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, _ map[string]string) error { client, _, rel, err := d.webdavClient(ctx, ref) if err != nil { return err diff --git a/pkg/rhttp/datatx/manager/simple/simple.go b/pkg/rhttp/datatx/manager/simple/simple.go index 40bbd3104e..a776ba3f7b 100644 --- a/pkg/rhttp/datatx/manager/simple/simple.go +++ b/pkg/rhttp/datatx/manager/simple/simple.go @@ -23,6 +23,7 @@ import ( "net/http" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + "github.com/cs3org/reva/internal/http/services/owncloud/ocdav" "github.com/cs3org/reva/pkg/appctx" "github.com/cs3org/reva/pkg/errtypes" "github.com/cs3org/reva/pkg/rhttp/datatx" @@ -75,8 +76,15 @@ func (m *manager) Handler(fs storage.FS) (http.Handler, error) { defer r.Body.Close() ref := &provider.Reference{Path: fn} + metadata := map[string]string{} + if lockid := r.Header.Get(ocdav.HeaderLockID); lockid != "" { + metadata["lockid"] = lockid + } + if lockholder := r.Header.Get(ocdav.HeaderLockHolder); lockholder != "" { + metadata["lockholder"] = lockholder + } - err := fs.Upload(ctx, ref, r.Body) + err := fs.Upload(ctx, ref, r.Body, metadata) switch v := err.(type) { case nil: w.WriteHeader(http.StatusOK) @@ -92,6 +100,8 @@ func (m *manager) Handler(fs storage.FS) (http.Handler, error) { w.WriteHeader(http.StatusUnauthorized) case errtypes.InsufficientStorage: w.WriteHeader(http.StatusInsufficientStorage) + case errtypes.Conflict: + w.WriteHeader(http.StatusConflict) default: sublog.Error().Err(v).Msg("error uploading file") w.WriteHeader(http.StatusInternalServerError) diff --git a/pkg/rhttp/datatx/manager/spaces/spaces.go b/pkg/rhttp/datatx/manager/spaces/spaces.go index 07a346d32e..ee87211026 100644 --- a/pkg/rhttp/datatx/manager/spaces/spaces.go +++ b/pkg/rhttp/datatx/manager/spaces/spaces.go @@ -25,6 +25,7 @@ import ( "strings" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + "github.com/cs3org/reva/internal/http/services/owncloud/ocdav" "github.com/cs3org/reva/pkg/appctx" "github.com/cs3org/reva/pkg/errtypes" "github.com/cs3org/reva/pkg/rhttp/datatx" @@ -96,7 +97,15 @@ func (m *manager) Handler(fs storage.FS) (http.Handler, error) { ResourceId: &provider.ResourceId{StorageId: storageid, OpaqueId: opaqeid}, Path: fn, } - err = fs.Upload(ctx, ref, r.Body) + metadata := map[string]string{} + if lockid := r.Header.Get(ocdav.HeaderLockID); lockid != "" { + metadata["lockid"] = lockid + } + if lockholder := r.Header.Get(ocdav.HeaderLockHolder); lockholder != "" { + metadata["lockholder"] = lockholder + } + + err = fs.Upload(ctx, ref, r.Body, metadata) switch v := err.(type) { case nil: w.WriteHeader(http.StatusOK) @@ -112,6 +121,8 @@ func (m *manager) Handler(fs storage.FS) (http.Handler, error) { w.WriteHeader(http.StatusUnauthorized) case errtypes.InsufficientStorage: w.WriteHeader(http.StatusInsufficientStorage) + case errtypes.Conflict: + w.WriteHeader(http.StatusConflict) default: sublog.Error().Err(v).Msg("error uploading file") w.WriteHeader(http.StatusInternalServerError) diff --git a/pkg/storage/fs/cephfs/upload.go b/pkg/storage/fs/cephfs/upload.go index d5cc71a863..64ac7f7179 100644 --- a/pkg/storage/fs/cephfs/upload.go +++ b/pkg/storage/fs/cephfs/upload.go @@ -31,10 +31,12 @@ import ( "github.com/pkg/errors" ) -func (fs *cephfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error { +func (fs *cephfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, metadata map[string]string) error { user := fs.makeUser(ctx) p := ref.GetPath() + // TODO(lopresti) validate lock metadata if present + ok, err := IsChunked(p) if err != nil { return errors.Wrap(err, "cephfs: error checking path") diff --git a/pkg/storage/fs/nextcloud/nextcloud.go b/pkg/storage/fs/nextcloud/nextcloud.go index db081d3d73..e66307ca49 100644 --- a/pkg/storage/fs/nextcloud/nextcloud.go +++ b/pkg/storage/fs/nextcloud/nextcloud.go @@ -317,8 +317,8 @@ func (nc *StorageDriver) InitiateUpload(ctx context.Context, ref *provider.Refer return res, err } -// Upload as defined in the storage.FS interface. -func (nc *StorageDriver) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error { +// Upload as defined in the storage.FS interface. The metadata parameters (e.g. lock context) are ignored. +func (nc *StorageDriver) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, _ map[string]string) error { req, err := nc.prepareRequest(ctx, http.MethodPut, filepath.Join("/Upload/home", ref.Path), r) if err != nil { return err diff --git a/pkg/storage/fs/nextcloud/nextcloud_test.go b/pkg/storage/fs/nextcloud/nextcloud_test.go index 5ff07bdb16..753b56fff5 100644 --- a/pkg/storage/fs/nextcloud/nextcloud_test.go +++ b/pkg/storage/fs/nextcloud/nextcloud_test.go @@ -351,7 +351,7 @@ var _ = Describe("Nextcloud", func() { }) }) - // Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error + // Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, metadata map[string]string) error Describe("Upload", func() { It("calls the Upload endpoint", func() { nc, called, teardown := setUpNextcloudServer() @@ -366,7 +366,7 @@ var _ = Describe("Nextcloud", func() { } stringReader := strings.NewReader("shiny!") stringReadCloser := io.NopCloser(stringReader) - err := nc.Upload(ctx, ref, stringReadCloser) + err := nc.Upload(ctx, ref, stringReadCloser, map[string]string{}) Expect(err).ToNot(HaveOccurred()) checkCalled(called, `PUT /apps/sciencemesh/~tester/api/storage/Upload/home/some/file/path.txt shiny!`) }) diff --git a/pkg/storage/storage.go b/pkg/storage/storage.go index 54de8aefa1..1ce30d9142 100644 --- a/pkg/storage/storage.go +++ b/pkg/storage/storage.go @@ -39,7 +39,7 @@ type FS interface { GetMD(ctx context.Context, ref *provider.Reference, mdKeys []string) (*provider.ResourceInfo, error) ListFolder(ctx context.Context, ref *provider.Reference, mdKeys []string) ([]*provider.ResourceInfo, error) InitiateUpload(ctx context.Context, ref *provider.Reference, uploadLength int64, metadata map[string]string) (map[string]string, error) - Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error + Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, metadata map[string]string) error Download(ctx context.Context, ref *provider.Reference) (io.ReadCloser, error) ListRevisions(ctx context.Context, ref *provider.Reference) ([]*provider.FileVersion, error) DownloadRevision(ctx context.Context, ref *provider.Reference, key string) (io.ReadCloser, error) diff --git a/pkg/storage/utils/eosfs/eosfs.go b/pkg/storage/utils/eosfs/eosfs.go index d98bde1fe5..50c5af028b 100644 --- a/pkg/storage/utils/eosfs/eosfs.go +++ b/pkg/storage/utils/eosfs/eosfs.go @@ -62,8 +62,10 @@ import ( ) const ( - refTargetAttrKey = "reva.target" - lwShareAttrKey = "reva.lwshare" + refTargetAttrKey = "reva.target" // used as user attr to store a reference + lwShareAttrKey = "reva.lwshare" // used to store grants to lightweight accounts + lockPayloadKey = "reva.lockpayload" // used to store lock payloads + eosLockKey = "app.lock" // this is the key known by EOS to enforce a lock. ) const ( @@ -73,12 +75,6 @@ const ( UserAttr ) -// EosLockKey is the key in the xattrs known by EOS to enforce a lock. -const EosLockKey = "app.lock" - -// LockPayloadKey is the key in the xattrs used to store the lock payload. -const LockPayloadKey = "reva.lockpayload" - var hiddenReg = regexp.MustCompile(`\.sys\..#.`) var eosLockReg = regexp.MustCompile(`expires:\d+,type:[a-z]+,owner:.+:.+`) @@ -541,9 +537,9 @@ func (fs *eosfs) SetArbitraryMetadata(ctx context.Context, ref *provider.Referen return errtypes.BadRequest(fmt.Sprintf("eosfs: key or value is empty: key:%s, value:%s", k, v)) } - // do not allow to set a lock key attr - if k == LockPayloadKey || k == EosLockKey { - return errtypes.BadRequest(fmt.Sprintf("eosfs: key %s not allowed", k)) + // do not allow to override system-reserved keys + if k == lockPayloadKey || k == eosLockKey || k == lwShareAttrKey || k == refTargetAttrKey { + return errtypes.BadRequest(fmt.Sprintf("eosfs: key %s is reserved", k)) } attr := &eosclient.Attribute{ @@ -554,7 +550,7 @@ func (fs *eosfs) SetArbitraryMetadata(ctx context.Context, ref *provider.Referen // TODO(labkode): SetArbitraryMetadata does not have semantics for recursivity. // We set it to false - err := fs.c.SetAttr(ctx, rootAuth, attr, false, false, fn) + err := fs.c.SetAttr(ctx, rootAuth, attr, false, false, fn, "") if err != nil { return errors.Wrap(err, "eosfs: error setting xattr in eos driver") } @@ -587,7 +583,7 @@ func (fs *eosfs) UnsetArbitraryMetadata(ctx context.Context, ref *provider.Refer Key: k, } - err := fs.c.UnsetAttr(ctx, rootAuth, attr, false, fn) + err := fs.c.UnsetAttr(ctx, rootAuth, attr, false, fn, "") if err != nil { if errors.Is(err, eosclient.AttrNotExistsError) { continue @@ -598,18 +594,26 @@ func (fs *eosfs) UnsetArbitraryMetadata(ctx context.Context, ref *provider.Refer return nil } +func (fs *eosfs) EncodeAppName(a string) string { + // this function returns the string to be used as EOS "app" tag, both in uploads and when handling locks; + // note that the GET (and PUT) operations in eosbinary.go and eoshttp.go use a `reva_eosclient::read` + // (resp. `write`) tag when no locks are involved. + r := strings.NewReplacer(" ", "_") + return "reva_eosclient::app_" + strings.ToLower(r.Replace(a)) +} + func (fs *eosfs) getLockPayloads(ctx context.Context, path string) (string, string, error) { // sys attributes want root auth, buddy rootauth, err := fs.getRootAuth(ctx) if err != nil { return "", "", err } - data, err := fs.c.GetAttr(ctx, rootauth, "sys."+LockPayloadKey, path) + data, err := fs.c.GetAttr(ctx, rootauth, "sys."+lockPayloadKey, path) if err != nil { return "", "", err } - eoslock, err := fs.c.GetAttr(ctx, rootauth, "sys."+EosLockKey, path) + eoslock, err := fs.c.GetAttr(ctx, rootauth, "sys."+eosLockKey, path) if err != nil { return "", "", err } @@ -617,7 +621,7 @@ func (fs *eosfs) getLockPayloads(ctx context.Context, path string) (string, stri return data.Val, eoslock.Val, nil } -func (fs *eosfs) removeLockAttrs(ctx context.Context, path string) error { +func (fs *eosfs) removeLockAttrs(ctx context.Context, path, app string) error { rootAuth, err := fs.getRootAuth(ctx) if err != nil { return err @@ -625,16 +629,16 @@ func (fs *eosfs) removeLockAttrs(ctx context.Context, path string) error { err = fs.c.UnsetAttr(ctx, rootAuth, &eosclient.Attribute{ Type: SystemAttr, - Key: EosLockKey, - }, false, path) + Key: eosLockKey, + }, false, path, app) if err != nil { return errors.Wrap(err, "eosfs: error unsetting the eos lock") } err = fs.c.UnsetAttr(ctx, rootAuth, &eosclient.Attribute{ Type: SystemAttr, - Key: LockPayloadKey, - }, false, path) + Key: lockPayloadKey, + }, false, path, app) if err != nil { return errors.Wrap(err, "eosfs: error unsetting the lock payload") } @@ -665,9 +669,9 @@ func (fs *eosfs) getLock(ctx context.Context, user *userpb.User, path string, re return nil, errors.Wrap(err, "eosfs: malformed lock payload") } - if time.Unix(int64(l.Expiration.Seconds), 0).After(time.Now()) { + if time.Unix(int64(l.Expiration.Seconds), 0).Before(time.Now()) { // the lock expired - if err := fs.removeLockAttrs(ctx, path); err != nil { + if err := fs.removeLockAttrs(ctx, path, fs.EncodeAppName(l.AppName)); err != nil { return nil, err } return nil, errtypes.NotFound("lock not found for ref") @@ -708,7 +712,7 @@ func (fs *eosfs) setLock(ctx context.Context, lock *provider.Lock, path string) return err } - encodedLock, eosLock, err := encodeLock(lock) + encodedLock, eosLock, err := fs.encodeLock(lock) if err != nil { return errors.Wrap(err, "eosfs: error encoding lock") } @@ -716,12 +720,12 @@ func (fs *eosfs) setLock(ctx context.Context, lock *provider.Lock, path string) // set eos lock err = fs.c.SetAttr(ctx, auth, &eosclient.Attribute{ Type: SystemAttr, - Key: EosLockKey, + Key: eosLockKey, Val: eosLock, - }, false, false, path) + }, false, false, path, fs.EncodeAppName(lock.AppName)) switch { - case errors.Is(err, eosclient.AttrAlreadyExistsError): - return errtypes.BadRequest("resource already locked") + case errors.Is(err, eosclient.FileIsLockedError): + return errtypes.Conflict("resource already locked") case err != nil: return errors.Wrap(err, "eosfs: error setting eos lock") } @@ -729,9 +733,9 @@ func (fs *eosfs) setLock(ctx context.Context, lock *provider.Lock, path string) // set payload err = fs.c.SetAttr(ctx, auth, &eosclient.Attribute{ Type: SystemAttr, - Key: LockPayloadKey, + Key: lockPayloadKey, Val: encodedLock, - }, false, false, path) + }, false, false, path, fs.EncodeAppName(lock.AppName)) if err != nil { return errors.Wrap(err, "eosfs: error setting lock payload") } @@ -826,14 +830,15 @@ func (fs *eosfs) userHasReadAccess(ctx context.Context, user *userpb.User, ref * return resInfo.PermissionSet.InitiateFileDownload, nil } -func encodeLock(l *provider.Lock) (string, string, error) { +func (fs *eosfs) encodeLock(l *provider.Lock) (string, string, error) { data, err := json.Marshal(l) if err != nil { return "", "", err } var a string if l.AppName != "" { - a = l.AppName + // cf. upload implementation + a = fs.EncodeAppName(l.AppName) } else { a = "*" } @@ -974,7 +979,7 @@ func (fs *eosfs) Unlock(ctx context.Context, ref *provider.Reference, lock *prov } path = fs.wrap(ctx, path) - return fs.removeLockAttrs(ctx, path) + return fs.removeLockAttrs(ctx, path, fs.EncodeAppName(lock.AppName)) } func (fs *eosfs) AddGrant(ctx context.Context, ref *provider.Reference, g *provider.Grant) error { @@ -1003,7 +1008,7 @@ func (fs *eosfs) AddGrant(ctx context.Context, ref *provider.Reference, g *provi Key: fmt.Sprintf("%s.%s", lwShareAttrKey, eosACL.Qualifier), Val: eosACL.Permissions, } - if err := fs.c.SetAttr(ctx, rootAuth, attr, false, true, fn); err != nil { + if err := fs.c.SetAttr(ctx, rootAuth, attr, false, true, fn, ""); err != nil { return errors.Wrap(err, "eosfs: error adding acl for lightweight account") } return nil @@ -1106,7 +1111,7 @@ func (fs *eosfs) RemoveGrant(ctx context.Context, ref *provider.Reference, g *pr Type: SystemAttr, Key: fmt.Sprintf("%s.%s", lwShareAttrKey, eosACL.Qualifier), } - if err := fs.c.UnsetAttr(ctx, rootAuth, attr, true, fn); err != nil { + if err := fs.c.UnsetAttr(ctx, rootAuth, attr, true, fn, ""); err != nil { return errors.Wrap(err, "eosfs: error removing acl for lightweight account") } return nil @@ -1593,7 +1598,7 @@ func (fs *eosfs) createUserDir(ctx context.Context, u *userpb.User, path string, } for _, attr := range attrs { - err = fs.c.SetAttr(ctx, rootAuth, attr, false, recursiveAttr, path) + err = fs.c.SetAttr(ctx, rootAuth, attr, false, recursiveAttr, path, "") if err != nil { return errors.Wrap(err, "eosfs: error setting attribute") } @@ -1676,7 +1681,7 @@ func (fs *eosfs) CreateReference(ctx context.Context, p string, targetURI *url.U Val: targetURI.String(), } - if err := fs.c.SetAttr(ctx, rootAuth, attr, false, false, tmp); err != nil { + if err := fs.c.SetAttr(ctx, rootAuth, attr, false, false, tmp, ""); err != nil { err = errors.Wrapf(err, "eosfs: error setting reva.ref attr on file: %q", tmp) return err } @@ -2253,7 +2258,7 @@ func (fs *eosfs) convert(ctx context.Context, eosFileInfo *eosclient.FileInfo) ( } } - // filter 'sys' attrs and the reserved lock + // filter 'sys' attrs filteredAttrs := make(map[string]string) for k, v := range eosFileInfo.Attrs { if !strings.HasPrefix(k, "sys") { @@ -2276,6 +2281,9 @@ func (fs *eosfs) convert(ctx context.Context, eosFileInfo *eosclient.FileInfo) ( Seconds: eosFileInfo.MTimeSec, Nanos: eosFileInfo.MTimeNanos, }, + ArbitraryMetadata: &provider.ArbitraryMetadata{ + Metadata: filteredAttrs, + }, Opaque: &types.Opaque{ Map: map[string]*types.OpaqueEntry{ "eos": { @@ -2284,11 +2292,17 @@ func (fs *eosfs) convert(ctx context.Context, eosFileInfo *eosclient.FileInfo) ( }, }, }, - ArbitraryMetadata: &provider.ArbitraryMetadata{ - Metadata: filteredAttrs, - }, } - + if eosFileInfo.Attrs[eosLockKey] != "" { + // populate the lock if decodable, log failure (but move on) if not + l, err := decodeLock(eosFileInfo.Attrs[lockPayloadKey], eosFileInfo.Attrs[eosLockKey]) + if err != nil { + sublog := appctx.GetLogger(ctx).With().Logger() + sublog.Warn().Interface("xattrs", eosFileInfo.Attrs).Msg("could not decode lock, leaving empty") + } else { + info.Lock = l + } + } if eosFileInfo.IsDir { info.Opaque.Map["disable_tus"] = &types.OpaqueEntry{ Decoder: "plain", diff --git a/pkg/storage/utils/eosfs/upload.go b/pkg/storage/utils/eosfs/upload.go index 2c53920fe1..fb46c2699d 100644 --- a/pkg/storage/utils/eosfs/upload.go +++ b/pkg/storage/utils/eosfs/upload.go @@ -30,7 +30,7 @@ import ( "github.com/pkg/errors" ) -func (fs *eosfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error { +func (fs *eosfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, metadata map[string]string) error { p, err := fs.resolve(ctx, ref) if err != nil { return errors.Wrap(err, "eos: error resolving reference") @@ -75,7 +75,18 @@ func (fs *eosfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadC if err != nil { return err } - return fs.c.Write(ctx, auth, fn, r) + + if metadata == nil { + metadata = map[string]string{} + } + app := metadata["lockholder"] + if app == "" { + app = "reva_eosclient::write" + } else { + // if we have a lock context, the app for EOS must match the lock holder + app = fs.EncodeAppName(app) + } + return fs.c.Write(ctx, auth, fn, r, app) } func (fs *eosfs) InitiateUpload(ctx context.Context, ref *provider.Reference, uploadLength int64, metadata map[string]string) (map[string]string, error) { diff --git a/pkg/storage/utils/localfs/upload.go b/pkg/storage/utils/localfs/upload.go index 67967fa495..604cd26b4f 100644 --- a/pkg/storage/utils/localfs/upload.go +++ b/pkg/storage/utils/localfs/upload.go @@ -39,7 +39,7 @@ import ( var defaultFilePerm = os.FileMode(0664) -func (fs *localfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser) error { +func (fs *localfs) Upload(ctx context.Context, ref *provider.Reference, r io.ReadCloser, metadata map[string]string) error { upload, err := fs.GetUpload(ctx, ref.GetPath()) if err != nil { return errors.Wrap(err, "localfs: error retrieving upload") diff --git a/tests/helpers/helpers.go b/tests/helpers/helpers.go index d84923b15c..2354c72be0 100644 --- a/tests/helpers/helpers.go +++ b/tests/helpers/helpers.go @@ -105,7 +105,7 @@ func Upload(ctx context.Context, fs storage.FS, ref *provider.Reference, content return errors.New("simple upload method not available") } uploadRef := &provider.Reference{Path: "/" + uploadID} - err = fs.Upload(ctx, uploadRef, io.NopCloser(bytes.NewReader(content))) + err = fs.Upload(ctx, uploadRef, io.NopCloser(bytes.NewReader(content)), map[string]string{}) return err }