// @project The CERN Tape Archive (CTA)
// @brief CTA-EOS API definition
// @copyright Copyright 2017 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 .
syntax = "proto3";
package cta.eos;
import "cta_common.proto";
//
// Messages sent from EOS to CTA Frontend
//
message Workflow {
enum EventType {
NONE = 0;
OPENR = 1;
OPENW = 2;
CLOSER = 3;
CLOSEW = 4;
DELETE = 5;
PREPARE = 6;
CREATE = 7;
ABORT_PREPARE = 8;
UPDATE_FID = 10;
}
EventType event = 1; //< event
//string queue = 2; //< RESERVED
//string wfname = 3; //< RESERVED
//string vpath = 4; //< RESERVED
cta.common.Service instance = 5; //< instance information
//uint64 timestamp = 6; //< RESERVED
// for CLOSEW events submitted by the FST
string requester_instance = 7; //< hostname and instance name of the FST which submitted the request
// For PREPARE events
bool verify_only = 10; //< Recall file from tape but do not write a disk copy
string vid = 11; //< Recall from the specified tape VID only (in the case of dual-copy files)
}
message Client {
cta.common.RequesterId user = 1; //< acting client
cta.common.Security sec = 2; //< client security information
}
message Transport {
string dst_url = 1; //< transport destination URL
string report_url = 2; //< URL to report successful archiving
string error_report_url = 3; //< URL to report errors
}
message Metadata {
uint64 fid = 1; //< file/container id
uint64 pid = 2; //< parent id (NOT USED BY CTA)
cta.common.Clock ctime = 3; //< change time (NOT USED BY CTA)
cta.common.Clock mtime = 4; //< modification time (NOT USED BY CTA)
cta.common.Clock btime = 5; //< birth time (NOT USED BY CTA)
cta.common.Clock ttime = 6; //< tree modification time (NOT USED BY CTA)
cta.common.OwnerId owner = 7; //< ownership
uint64 size = 8; //< size
sint32 mode = 10; //< mode (NOT USED BY CTA)
string lpath = 11; //< logical path
map xattr = 12; //< xattribute map
cta.common.ChecksumBlob csb = 13; //< array of checksums
// Additions for dCache integration
string disk_file_id = 14; //< String identifier for Disk File ID (= fid above)
uint64 archive_file_id = 15; //< CTA Archive File ID
string storage_class = 16; //< CTA Storage Class
};
message Notification {
Workflow wf = 1; //< workflow
Client cli = 2; //< client information
Transport transport = 3; //< transport
Metadata file = 4; //< file meta data
Metadata directory = 5; //< directory meta data (NOT USED BY CTA)
}