diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 74f0e8e6964df85546d80ac972553cc47e60c349..ba7fe9e64c66404d841d6de32db67c9c40fb4fc4 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -6,6 +6,7 @@ - cta/CTA#214 - Update manual page for cta-admin to include info about user defined config files. ### Bug fixes - cta/CTA#93 - Refactor Frontend code to allow code sharing between SSI and gRPC implementations +- cta/CTA#221 - Change option in cta-send-event from instance to eos.instance # v4.7.14-1 diff --git a/cmdline/standalone_cli_tools/CtaSendEvent.cpp b/cmdline/standalone_cli_tools/CtaSendEvent.cpp index 987d7c170aa7da036e519b57a3044c985c5012f5..c72fc6d981c07780a05329c6c7f5ccd10661062e 100644 --- a/cmdline/standalone_cli_tools/CtaSendEvent.cpp +++ b/cmdline/standalone_cli_tools/CtaSendEvent.cpp @@ -26,6 +26,7 @@ #include "CtaFrontendApi.hpp" #include "version.h" #include "common/CmdLineArgs.hpp" +#include "common/exception/CommandLineNotParsed.hpp" const std::string config_file = "/etc/cta/cta-cli.conf"; @@ -111,9 +112,7 @@ void parseFileInfo(std::istream &in, AttrMap &attr, AttrMap &xattr) void fillNotification(cta::eos::Notification ¬ification, const std::string &wf_command, const int argc, char *const *const argv) { - cta::cliTool::CmdLineArgs cmdLineArgs(argc, argv, cta::cliTool::StandaloneCliTool::CTA_SEND_EVENT); - const std::string &eos_instance = cmdLineArgs.m_diskInstance.value(); const std::string &eos_endpoint = cmdLineArgs.m_eosEndpoint.has_value() ? cmdLineArgs.m_eosEndpoint.value() : "localhost:1095"; const std::string &requester_user = cmdLineArgs.m_requestUser.value(); @@ -135,10 +134,10 @@ void fillNotification(cta::eos::Notification ¬ification, const std::string &w std::string accessUrl = "root://" + eos_endpoint + "/" + attr["path"] + "?eos.lfn=fxid:" + attr["fxid"]; std::string reportUrl = "eosQuery://" + eos_endpoint + "//eos/wfe/passwd?mgm.pcmd=event&mgm.fid=" + attr["fxid"] + - "&mgm.logid=cta&mgm.event=sync::archived&mgm.workflow=default&mgm.path=/dummy_path&mgm.ruid=0&mgm.rgid=0&cta_archive_file_id=" + - xattrs["sys.archive.file_id"]; + "&mgm.logid=cta&mgm.event=sync::archived&mgm.workflow=default&mgm.path=/dummy_path&mgm.ruid=0&mgm.rgid=0&cta_archive_file_id=" + + xattrs["sys.archive.file_id"]; std::string destUrl = "root://" + eos_endpoint + "/" + attr["path"] + "?eos.lfn=fxid:" + attr["fxid"] + - "&eos.ruid=0&eos.rgid=0&eos.injection=1&eos.workflow=retrieve_written&eos.space=default"; + "&eos.ruid=0&eos.rgid=0&eos.injection=1&eos.workflow=retrieve_written&eos.space=default"; // WF notification.mutable_wf()->mutable_instance()->set_name(eos_instance); @@ -257,10 +256,12 @@ int exceptionThrowingMain(int argc, char *const *const argv) * Start here */ int main(int argc, char *const *const argv) { - try { + try { return exceptionThrowingMain(argc, argv); } catch (XrdSsiPb::PbException &ex) { std::cerr << "Error in Google Protocol Buffers: " << ex.what() << std::endl; + } catch(cta::exception::CommandLineNotParsed &ex) { + std::cerr << ex.what() << std::endl; } catch (XrdSsiPb::XrdSsiException &ex) { std::cerr << "Error from XRootD SSI Framework: " << ex.what() << std::endl; } catch (std::exception &ex) { diff --git a/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp b/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp index 752f0e817a7b68bf083bb72ad6c169ab6b69a250..5f375997d0b88807a938c82e2b960e331fb16468 100644 --- a/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp +++ b/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp @@ -44,8 +44,8 @@ static struct option restoreFilesLongOption[] = { {nullptr, 0, nullptr, 0} }; -static struct option sendFileLongOption[] = { - {"instance", required_argument, nullptr, 'i'}, +static struct option sendEventLongOption[] = { + {"eos.instance", required_argument, nullptr, 'i'}, {"eos.endpoint", required_argument, nullptr, 'e'}, {"request.user", required_argument, nullptr, 'u'}, {"request.group", required_argument, nullptr, 'g'}, @@ -74,7 +74,7 @@ static struct option changeStorageClassLongOption[] = { std::map<StandaloneCliTool, const option*> longopts = { {StandaloneCliTool::RESTORE_FILES, restoreFilesLongOption}, - {StandaloneCliTool::CTA_SEND_EVENT, sendFileLongOption}, + {StandaloneCliTool::CTA_SEND_EVENT, sendEventLongOption}, {StandaloneCliTool::CTA_VERIFY_FILE, verifyFileLongOption}, {StandaloneCliTool::CTA_CHANGE_STORAGE_CLASS, changeStorageClassLongOption}, }; @@ -170,7 +170,7 @@ m_help(false), m_debug(false), m_standaloneCliTool{standaloneCliTool} { } case ':': // Missing parameter { - exception::CommandLineNotParsed ex; + exception::CommandLineNotParsed ex("", false); ex.getMessage() << "The -" << static_cast<char>(optopt) << " option requires a parameter"; throw ex; }