Skip to content
Snippets Groups Projects
Commit f20ed0ed authored by Steven Murray's avatar Steven Murray
Browse files

Added the eos::wfe::Wrapper message

parent 91b3a97a
Branches
Tags
No related merge requests found
syntax = "proto3";
package eos.wfe;
message id {
message Id {
fixed64 n = 1; // identity number
string name = 2; // identity name
}
message checksum {
message Checksum {
string value = 1; //< checksum value
string name = 2; //< checksum name
}
message clock {
message Clock {
fixed64 sec = 1; //< seconds of a clock
fixed64 nsec = 2; //< nanoseconds of a clock
}
message md {
message Md {
fixed64 fid = 1; //< file/container id
fixed64 pid = 2; //< parent id
clock ctime = 3; //< change time
clock mtime = 4; //< modification time
clock btime = 5; //< birth time
clock ttime = 6; //< tree modification time
id owner = 7; //< ownership
Clock ctime = 3; //< change time
Clock mtime = 4; //< modification time
Clock btime = 5; //< birth time
Clock ttime = 6; //< tree modification time
Id owner = 7; //< ownership
fixed64 size = 8; //< size
checksum cks = 9; //< checksum information
Checksum cks = 9; //< checksum information
sfixed32 mode = 10; //< mode
string lpath = 11; //< logical path
map<string, string> xattr = 12; //< xattribute map
};
message security {
message Security {
string host = 1; //< client host
string app = 2; //< app string
string name = 3; //< sec name
......@@ -39,44 +39,71 @@ message security {
string grps = 5; //< security grps
}
message client {
id user = 1; //< acting client
security sec = 2; //< client security information
message Client {
Id user = 1; //< acting client
Security sec = 2; //< client security information
}
message service {
message Service {
string name = 1; //< name of the service
string url = 2; //< access url of the service
}
message workflow {
message Workflow {
string event = 1; //< event
string queue = 2; //< queue
string wfname = 3; //< workflow
string vpath = 4; //< vpath
service instance = 5; //< instance information
Service instance = 5; //< instance information
fixed64 timestamp = 6; //< event timestamp
}
message notification {
workflow wf = 1; //< workflow
message Notification {
Workflow wf = 1; //< workflow
string turl = 2; //< transport URL
client cli = 3; //< client information
md file = 4; //< file meta data
md directory = 5; //< directory meta data
Client cli = 3; //< client information
Md file = 4; //< file meta data
Md directory = 5; //< directory meta data
}
message xattr {
message Xattr {
enum Operation { GET = 0; ADD = 1; SET = 2; DELETE = 3;}
fixed64 fid = 1; //< file id
map<string, string> xattrs = 2; //< xattribute map
Operation op = 3; //< operation to execute for this xattr map
}
message tapereplica {
enum Status { OFFTAPE = 0; ONTAPE = 1; ONTAPESAVE = 2;}
message Tapereplica {
enum Status { OFFTAPE = 0; ONTAPE = 1; ONTAPESAVE = 2;}
fixed64 fid = 1; //< file id
Status status = 2; //< state state for file ID
fixed64 size = 3; //< File size as recorded on tape for cross check
checksum cks = 4; //< File checksum as computer while writing to tape
Checksum cks = 4; //< File checksum as computer while writing to tape
}
// The following message is used to wrap all messages sent between EOS and its
// peers.
//
// This wrapper message allows new message types to be added to the protocol in
// the future.
//
// This wrapper message also allows EOS peers to receive non-EOS messages as
// long as the following two conditions are met:
// 1. The peer uses a wrapper message with exactly the same (simple) structure.
// 2. No two message types use the same numeric tag value.
//
// The structure of this message is based on the "Union Types" section of the
// following Google protocol buffers web page:
//
// https://developers.google.com/protocol-buffers/docs/techniques
//
// A protocol buffer parser cannot determine a message type based solely on its
// contents. The type field of this wrapper message provides the required
// metadata.
message Wrapper {
enum Type {NOTIFICATION = 0; XATTR = 1; TAPEREPLICA = 2;}
Type type = 1;
Notification notification = 2;
Xattr xattr = 3;
Tapereplica tapereplica = 4;
}
......@@ -55,7 +55,7 @@ int WriteNotificationMsgCmd::exceptionThrowingMain(const int argc, char *const *
return 0;
}
eos::wfe::notification notification;
eos::wfe::Notification notification;
notification.mutable_wf()->set_event("notification_workflow_event");
notification.mutable_wf()->set_queue("notification_workflow_queue");
notification.mutable_wf()->set_wfname("notification_workflow_wfname");
......
......@@ -99,7 +99,7 @@ int XrdCtaFilesystem::FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eIn
}
const std::string query(args.Arg1, args.Arg1Len);
eos::wfe::notification notification;
eos::wfe::Notification notification;
if(!notification.ParseFromString(query)) {
eInfo.setErrInfo(EINVAL, "Failed to parse notification message");
return SFS_ERROR;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment