CernVM-FS  2.13.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cmd_transaction.h
Go to the documentation of this file.
1 
5 #ifndef CVMFS_PUBLISH_CMD_TRANSACTION_H_
6 #define CVMFS_PUBLISH_CMD_TRANSACTION_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "publish/command.h"
12 
13 namespace publish {
14 
15 class CmdTransaction : public Command {
16  public:
17  virtual std::string GetName() const { return "transaction"; }
18  virtual std::string GetBrief() const {
19  return "Open a managed repository for writing";
20  }
21  virtual std::string GetDescription() const {
22  return "A transaction gets a lease for a repository in order to write "
23  "new content. The content is not visible to clients until "
24  "publication. "
25  "Transactions can be aborted in order to revert to the original "
26  "state. "
27  "Repositories that are configured to use a CernVM-FS gateway can "
28  "lock "
29  "certain sub paths, such that other publisher nodes can publish "
30  "concurrently to other sub trees.";
31  }
32  virtual std::string GetUsage() const {
33  return "[options] <repository name>[path]";
34  }
35  virtual std::vector<std::string> DoGetExamples() const {
36  std::vector<std::string> e;
37  e.push_back("example.cvmfs.io "
38  "# normal use with a locally managed repository");
39  e.push_back("example.cvmfs.io/64bit/v42 "
40  "# locks only the given sub tree, use with gateway "
41  "(no space between the repository name and the path)");
42  e.push_back("example.cvmfs.io/popular/path -t 500 "
43  "# retries for a maximum of 5 minutes to lock /popular/path");
44  return e;
45  }
46  virtual ParameterList GetParams() const {
47  ParameterList p;
48  p.push_back(Parameter::Optional(
49  "retry-timeout", 't', "seconds",
50  "Retry for a maximum number of given seconds if repository is busy "
51  "(0 for infinite)"));
52  p.push_back(Parameter::Optional(
53  "template", 'T', "from-dir=to-dir",
54  "Clone directory 'from-dir' to 'to-dir' as part of opening the "
55  "transaction"));
56  p.push_back(Parameter::Optional(
57  "template-from", 'U', "from-dir",
58  "Use -U and -V as an alternative to the -T parameter"));
59  p.push_back(Parameter::Optional(
60  "template-to", 'V', "to-dir",
61  "Use -U and -V as an alternative to the -T parameter"));
62  return p;
63  }
64 
65  virtual int Main(const Options &options);
66 }; // class CmdTransaction
67 
68 } // namespace publish
69 
70 #endif // CVMFS_PUBLISH_CMD_TRANSACTION_H_
static Parameter Optional(const std::string &key, char short_key, const std::string &arg_name, const std::string &desc)
Definition: command.h:69
virtual ParameterList GetParams() const
virtual std::string GetBrief() const
virtual int Main(const Options &options)
virtual std::string GetName() const
std::vector< Parameter > ParameterList
Definition: command.h:86
virtual std::string GetDescription() const
virtual std::vector< std::string > DoGetExamples() const
virtual std::string GetUsage() const