26 bool waiting_on_lease =
false;
30 throw EPublish(
"cannot establish writable mountpoint");
38 if (
settings_.transaction().GetTimeoutS() == 0)
39 deadline = uint64_t(-1);
56 waiting_on_lease =
true;
73 throw EPublish(
"another transaction is already open",
86 if (!
settings_.transaction().lease_path().empty()) {
87 const std::string path =
94 throw EPublish(
"cannot open transaction on non-existing path " + path,
99 "cannot open transaction on " + path +
", which is not a directory",
105 settings_.transaction().spool_area().checkout_marker()));
110 && waiting_on_lease) {
115 throw EPublish(
"cannot establish writable mountpoint");
125 if (
settings_.transaction().HasTemplate()) {
127 "CernVM-FS: cloning template %s --> %s ... ",
128 settings_.transaction().template_from().c_str(),
129 settings_.transaction().template_to().c_str());
136 const std::string panic_msg = e.what();
145 settings_.transaction().spool_area().readonly_talk_socket(),
146 "chroot " +
settings_.transaction().base_hash().ToString() +
"\n");
void TransactionImpl(bool waiting_on_lease=false)
const SettingsRepository settings_
void CloneTree(const std::string &from_dir, const std::string &to_dir)
void ConstructSyncManagers()
catalog::SimpleCatalogManager * GetSimpleCatalogManager()
UniquePtr< ManagedNode > managed_node_
const unsigned kLookupDefault
catalog::WritableCatalogManager * catalog_mgr_
void DownloadRootObjects(const std::string &url, const std::string &fqrn, const std::string &tmp_dir)
shash::Any catalog_hash() const
std::string SendTalkCommand(const std::string &socket, const std::string &cmd)
UniquePtr< Session > session_
manifest::Manifest * manifest_
EFailures failure() const
ServerFlagFile in_transaction_
PathString GetParentPath(const PathString &path)
static CheckoutMarker * CreateFrom(const std::string &path)
std::string tmp_dir() const
CVMFS_EXPORT void LogCvmfs(const LogSource source, const int mask, const char *format,...)