CernVM-FS  2.13.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
settings.h
Go to the documentation of this file.
1 
5 #ifndef CVMFS_PUBLISH_SETTINGS_H_
6 #define CVMFS_PUBLISH_SETTINGS_H_
7 
8 #include <stdint.h>
9 #include <unistd.h>
10 
11 #include <map>
12 #include <string>
13 
15 #include "crypto/hash.h"
16 #include "sync_union.h"
18 
19 class OptionsManager;
20 
21 namespace publish {
22 
28 template<class T>
29 class Setting {
30  public:
31  Setting() : value_(), is_default_(true) { }
32  explicit Setting(const T &v) : value_(v), is_default_(true) { }
33 
34  Setting &operator=(const T &v) {
35  value_ = v;
36  is_default_ = false;
37  return *this;
38  }
39 
40  const T &operator()() const { return value_; }
41 
42  bool SetIfDefault(const T &v) {
43  if (!is_default_)
44  return false;
45  value_ = v;
46  is_default_ = false;
47  return true;
48  }
49 
50  bool is_default() const { return is_default_; }
51 
52  T *GetPtr() { return &value_; }
53 
54  private:
55  T value_;
57 }; // Setting
58 
59 
67 };
68 
69 
70 // Settings from the point of construction always represent a valid
71 // configuration. The constructor sets default values, which can be overwritten
72 // by setters. The setters throw errors when invalid options are detected.
73 
75  public:
76  explicit SettingsSpoolArea(const std::string &fqrn)
77  : workspace_(std::string("/var/spool/cvmfs/") + fqrn)
78  , tmp_dir_(workspace_() + "/tmp")
79  , union_mnt_(std::string("/cvmfs/") + fqrn)
81 
82  void UseSystemTempDir();
83  void SetSpoolArea(const std::string &path);
84  void SetUnionMount(const std::string &path);
85  void SetRepairMode(const EUnionMountRepairMode val);
86 
87  // Creates, if necessary, all the directories in the spool area and the temp
88  // directory. Does not take care of the union mount point.
89  void EnsureDirectories();
90 
91  std::string workspace() const { return workspace_(); }
92  std::string tmp_dir() const { return tmp_dir_(); }
93  std::string readonly_mnt() const { return workspace_() + "/rdonly"; }
94  std::string readonly_talk_socket() const {
95  return workspace_() + "/cvmfs_io";
96  }
97  std::string union_mnt() const { return union_mnt_(); }
98  std::string scratch_base() const { return workspace_() + "/scratch"; }
99  std::string scratch_dir() const { return scratch_base() + "/current"; }
100  std::string scratch_wastebin() const { return scratch_base() + "/wastebin"; }
101  std::string log_dir() const { return workspace() + "/logs"; }
102  // TODO(jblomer): shouldn't this be in /etc/cvmfs/repository.../client.conf
103  std::string client_config() const { return workspace_() + "/client.config"; }
104  std::string client_lconfig() const { return workspace_() + "/client.local"; }
105  std::string client_log() const { return log_dir() + "/cvmfs.log"; }
106  std::string cache_dir() const { return workspace_() + "/cache"; }
107  std::string ovl_work_dir() const { return workspace_() + "/ovl_work"; }
108  std::string checkout_marker() const { return workspace_() + "/checkout"; }
109  std::string gw_session_token() const {
110  return workspace_() + "/session_token";
111  }
112  std::string transaction_lock() const {
113  return workspace_() + "/in_transaction.lock";
114  }
115  std::string publishing_lock() const {
116  return workspace_() + "/is_publishing.lock";
117  }
119 
120  private:
128 }; // SettingsSpoolArea
129 
130 
132  public:
133  explicit SettingsTransaction(const std::string &fqrn)
134  : layout_revision_(0)
135  , in_enter_session_(false)
136  , hash_algorithm_(shash::kShake128)
138  , ttl_second_(240)
140  , is_volatile_(false)
141  , enforce_limits_(false)
142  // SyncParameters::kDefaultNestedKcatalogLimit
144  // SyncParameters::kDefaultRootKcatalogLimit
146  // SyncParameters::kDefaultFileMbyteLimit
147  , limit_file_size_mb_(1024)
148  , use_catalog_autobalance_(false)
149  // SyncParameters::kDefaultMaxWeight
150  , autobalance_max_weight_(100000)
151  // SyncParameters::kDefaultMinWeight
153  , print_changeset_(false)
154  , dry_run_(false)
156  , timeout_s_(0)
157  , spool_area_(fqrn) { }
158 
159  void SetLayoutRevision(const unsigned revision);
160  void SetInEnterSession(const bool value);
161  void SetBaseHash(const shash::Any &hash);
162  void SetUnionFsType(const std::string &union_fs);
163  void SetHashAlgorithm(const std::string &algorithm);
164  void SetCompressionAlgorithm(const std::string &algorithm);
165  void SetEnforceLimits(bool value);
166  void SetEnableMtimeNs(bool value);
167  void SetLimitNestedCatalogKentries(unsigned value);
168  void SetLimitRootCatalogKentries(unsigned value);
169  void SetLimitFileSizeMb(unsigned value);
170  void SetUseCatalogAutobalance(bool value);
171  void SetAutobalanceMaxWeight(unsigned value);
172  void SetAutobalanceMinWeight(unsigned value);
173  void SetPrintChangeset(bool value);
174  void SetDryRun(bool value);
175  void SetTimeout(unsigned seconds);
176  void SetLeasePath(const std::string &path);
177  void SetTemplate(const std::string &from, const std::string &to);
178  void DetectUnionFsType();
179 
184  int GetTimeoutS() const;
185 
186  unsigned layout_revision() const { return layout_revision_(); }
187  bool in_enter_session() const { return in_enter_session_(); }
188  shash::Any base_hash() const { return base_hash_(); }
191  return compression_algorithm_();
192  }
193  uint32_t ttl_second() const { return ttl_second_(); }
195  bool is_volatile() const { return is_volatile_(); }
196  bool enforce_limits() const { return enforce_limits_(); }
197  bool enable_mtime_ns() const { return enable_mtime_ns_(); }
198  unsigned limit_nested_catalog_kentries() const {
200  }
201  unsigned limit_root_catalog_kentries() const {
203  }
204  unsigned limit_file_size_mb() const { return limit_file_size_mb_(); }
206  unsigned autobalance_max_weight() const { return autobalance_max_weight_(); }
207  unsigned autobalance_min_weight() const { return autobalance_min_weight_(); }
208  bool print_changeset() const { return print_changeset_(); }
209  bool dry_run() const { return dry_run_(); }
210  std::string voms_authz() const { return voms_authz_(); }
211  UnionFsType union_fs() const { return union_fs_(); }
212  std::string lease_path() const { return lease_path_(); }
213  std::string template_from() const { return template_from_(); }
214  std::string template_to() const { return template_to_(); }
215 
216  const SettingsSpoolArea &spool_area() const { return spool_area_; }
218 
219  bool HasTemplate() const { return !template_to().empty(); }
220 
221  private:
222  bool ValidateUnionFs();
223 
269 
271 }; // class SettingsTransaction
272 
273 
274 class SettingsGc { }; // class SettingsGc
275 
276 
278  public:
279  explicit SettingsStorage(const std::string &fqrn)
280  : fqrn_(fqrn)
281  , type_(upload::SpoolerDefinition::Local)
282  , tmp_dir_(std::string("/srv/cvmfs/") + fqrn + "/data/txn")
283  , endpoint_(std::string("/srv/cvmfs/") + fqrn) { }
284 
285  std::string GetLocator() const;
286  void SetLocator(const std::string &locator);
287  void MakeLocal(const std::string &path);
288  void MakeS3(const std::string &s3_config, const std::string &tmp_dir);
289  void MakeGateway(const std::string &host, unsigned port,
290  const std::string &tmp_dir);
291 
293  std::string endpoint() const { return endpoint_(); }
294 
295  private:
300 }; // class SettingsStorage
301 
302 
304  public:
305  explicit SettingsKeychain(const std::string &fqrn)
306  : fqrn_(fqrn)
307  , keychain_dir_("/etc/cvmfs/keys")
308  , master_private_key_path_(keychain_dir_() + "/" + fqrn + ".masterkey")
309  , master_public_key_path_(keychain_dir_() + "/" + fqrn + ".pub")
310  , private_key_path_(keychain_dir_() + "/" + fqrn + ".key")
311  , certificate_path_(keychain_dir_() + "/" + fqrn + ".crt")
312  , gw_key_path_(keychain_dir_() + "/" + fqrn + ".gw") { }
313 
314  void SetKeychainDir(const std::string &keychain_dir);
315 
316  bool HasDanglingMasterKeys() const;
317  bool HasMasterKeys() const;
318  bool HasDanglingRepositoryKeys() const;
319  bool HasRepositoryKeys() const;
320  bool HasGatewayKey() const;
321 
322  std::string keychain_dir() const { return keychain_dir_(); }
323  std::string master_private_key_path() const {
324  return master_private_key_path_();
325  }
326  std::string master_public_key_path() const {
327  return master_public_key_path_();
328  }
329  std::string private_key_path() const { return private_key_path_(); }
330  std::string certificate_path() const { return certificate_path_(); }
331  std::string gw_key_path() const { return gw_key_path_(); }
332 
333  private:
341 }; // class SettingsKeychain
342 
343 
344 class SettingsPublisher;
345 class SettingsReplica;
346 
351  public:
352  explicit SettingsRepository(const std::string &fqrn)
353  : fqrn_(fqrn)
354  , url_(std::string("http://localhost/cvmfs/") + fqrn_())
355  , proxy_("")
356  , tmp_dir_("/tmp")
357  , keychain_(fqrn) { }
358  explicit SettingsRepository(const SettingsPublisher &settings_publisher);
359  explicit SettingsRepository(const SettingsReplica &settings_replica);
360 
361  void SetUrl(const std::string &url);
362  void SetProxy(const std::string &proxy);
363  void SetTmpDir(const std::string &tmp_dir);
364  void SetCertBundle(const std::string &cert_bundle);
365 
366  std::string fqrn() const { return fqrn_(); }
367  std::string url() const { return url_(); }
368  std::string proxy() const { return proxy_(); }
369  std::string tmp_dir() const { return tmp_dir_(); }
370  std::string cert_bundle() const { return cert_bundle_(); }
371 
372  const SettingsKeychain &keychain() const { return keychain_; }
374 
375  private:
380  // Currently only used for testing, steered by X509_CERT_BUNDLE
381  // in /etc/cvmfs/server.local
383 
385 }; // class SettingsRepository
386 
387 
392  public:
393  static const unsigned kDefaultWhitelistValidity; // 30 days
394 
395  explicit SettingsPublisher(const std::string &fqrn)
396  : fqrn_(fqrn)
397  , url_(std::string("http://localhost/cvmfs/") + fqrn)
398  , proxy_("")
399  , owner_uid_(0)
400  , owner_gid_(0)
402  , is_silent_(false)
403  , is_managed_(false)
404  , ignore_invalid_lease_(false)
405  , storage_(fqrn_())
406  , transaction_(fqrn_())
407  , keychain_(fqrn_()) { }
408  explicit SettingsPublisher(const SettingsRepository &settings_repository);
409 
410  void SetUrl(const std::string &url);
411  void SetProxy(const std::string &proxy);
412  void SetOwner(const std::string &user_name);
413  void SetOwner(uid_t uid, gid_t gid);
414  void SetIsSilent(bool value);
415  void SetIsManaged(bool value);
416  void SetIgnoreInvalidLease(bool value);
417 
418  std::string GetReadOnlyXAttr(const std::string &attr);
419 
420  std::string fqrn() const { return fqrn_(); }
421  std::string url() const { return url_(); }
422  std::string proxy() const { return proxy_(); }
423  unsigned whitelist_validity_days() const {
424  return whitelist_validity_days_();
425  }
426  uid_t owner_uid() const { return owner_uid_(); }
427  uid_t owner_gid() const { return owner_gid_(); }
428  bool is_silent() const { return is_silent_(); }
429  bool is_managed() const { return is_managed_(); }
430  bool ignore_invalid_lease() const { return ignore_invalid_lease_(); }
431 
432  const SettingsStorage &storage() const { return storage_; }
433  const SettingsTransaction &transaction() const { return transaction_; }
434  const SettingsKeychain &keychain() const { return keychain_; }
438 
439  private:
448  // When trying to drop the session, ignore an invalid lease failure. Useful
449  // to recover a publisher with abort -f.
451 
455 }; // SettingsPublisher
456 
457 
462  public:
463  explicit SettingsReplica(const std::string &fqrn)
464  : fqrn_(fqrn)
465  , alias_(fqrn)
466  , url_(std::string("http://localhost/cvmfs/") + alias_()) { }
467 
468  std::string fqrn() const { return fqrn_(); }
469  std::string url() const { return url_(); }
470 
471  private:
475 }; // class SettingsReplica
476 
477 
483  public:
485  : config_path_("/etc/cvmfs/repositories.d"), options_mgr_(NULL) { }
490  explicit SettingsBuilder(const std::string &c) : config_path_(c) { }
491 
499  SettingsRepository CreateSettingsRepository(const std::string &ident);
500 
512  SettingsPublisher *CreateSettingsPublisher(const std::string &ident,
513  bool needs_managed = false);
514 
516  bool IsManagedRepository() const { return options_mgr_ != NULL; }
517 
523  SettingsPublisher *settings_publisher);
524 
525  void SetConfigPath(const std::string &config_path) {
526  config_path_ = config_path;
527  }
528 
529  private:
534  std::string config_path_;
535 
541  // TODO(avalenzu): options_mgr_ should become a unique pointer.
542 
550  std::string GetSingleAlias();
551 
556  std::map<std::string, std::string> GetSessionEnvironment();
557 
562 }; // class SettingsBuilder
563 
564 } // namespace publish
565 
566 #endif // CVMFS_PUBLISH_SETTINGS_H_
unsigned autobalance_min_weight() const
Definition: settings.h:207
void SetUnionFsType(const std::string &union_fs)
Definition: settings.cc:124
SettingsKeychain * GetKeychain()
Definition: settings.h:373
SettingsSpoolArea spool_area_
Definition: settings.h:270
Setting< std::string > keychain_dir_
Definition: settings.h:335
void SetIgnoreInvalidLease(bool value)
Definition: settings.cc:355
Setting< unsigned > whitelist_validity_days_
Definition: settings.h:445
bool use_catalog_autobalance() const
Definition: settings.h:205
std::string endpoint() const
Definition: settings.h:293
std::string config_path_
Definition: settings.h:534
std::string readonly_mnt() const
Definition: settings.h:93
std::string checkout_marker() const
Definition: settings.h:108
void SetEnableMtimeNs(bool value)
Definition: settings.cc:90
bool HasGatewayKey() const
Definition: settings.cc:264
Setting< unsigned > timeout_s_
Definition: settings.h:261
const T & operator()() const
Definition: settings.h:40
shash::Algorithms hash_algorithm() const
Definition: settings.h:189
std::string voms_authz() const
Definition: settings.h:210
SettingsPublisher * CreateSettingsPublisher(const std::string &ident, bool needs_managed=false)
Definition: settings.cc:572
SettingsTransaction * GetTransaction()
Definition: settings.h:436
void SetUrl(const std::string &url)
Definition: settings.cc:288
void SetUnionMount(const std::string &path)
Definition: settings.cc:37
void MakeGateway(const std::string &host, unsigned port, const std::string &tmp_dir)
Definition: settings.cc:199
Setting< bool > is_managed_
Definition: settings.h:447
void SetTimeout(unsigned seconds)
Definition: settings.cc:156
SettingsKeychain * GetKeychain()
Definition: settings.h:437
unsigned limit_root_catalog_kentries() const
Definition: settings.h:201
uid_t owner_gid() const
Definition: settings.h:427
void SetKeychainDir(const std::string &keychain_dir)
Definition: settings.cc:229
Setting< gid_t > owner_gid_
Definition: settings.h:444
std::string fqrn() const
Definition: settings.h:468
std::string keychain_dir() const
Definition: settings.h:322
void SetLimitNestedCatalogKentries(unsigned value)
Definition: settings.cc:94
EUnionMountRepairMode
Definition: settings.h:63
void SetAutobalanceMaxWeight(unsigned value)
Definition: settings.cc:110
std::string gw_key_path() const
Definition: settings.h:331
void SetIsSilent(bool value)
Definition: settings.cc:351
bool HasTemplate() const
Definition: settings.h:219
SettingsKeychain(const std::string &fqrn)
Definition: settings.h:305
bool ignore_invalid_lease() const
Definition: settings.h:430
Setting< UnionFsType > union_fs_
Definition: settings.h:257
unsigned layout_revision() const
Definition: settings.h:186
Setting< upload::SpoolerDefinition::DriverType > type_
Definition: settings.h:297
Setting< uint32_t > ttl_second_
Definition: settings.h:243
std::string private_key_path() const
Definition: settings.h:329
void SetTemplate(const std::string &from, const std::string &to)
Definition: settings.cc:168
Setting< bool > enforce_limits_
Definition: settings.h:246
unsigned autobalance_max_weight() const
Definition: settings.h:206
std::string GetSingleAlias()
Definition: settings.cc:392
Setting< std::string > union_mnt_
Definition: settings.h:123
std::string client_config() const
Definition: settings.h:103
std::string template_to() const
Definition: settings.h:214
SettingsRepository(const std::string &fqrn)
Definition: settings.h:352
void SetLayoutRevision(const unsigned revision)
Definition: settings.cc:65
EUnionMountRepairMode repair_mode() const
Definition: settings.h:118
std::string log_dir() const
Definition: settings.h:101
SettingsTransaction transaction_
Definition: settings.h:453
void SetConfigPath(const std::string &config_path)
Definition: settings.h:525
Setting< std::string > voms_authz_
Definition: settings.h:256
Setting< bool > ignore_invalid_lease_
Definition: settings.h:450
bool enable_mtime_ns() const
Definition: settings.h:197
bool is_default_
Definition: settings.h:56
void SetLeasePath(const std::string &path)
Definition: settings.cc:164
Setting< std::string > tmp_dir_
Definition: settings.h:379
unsigned limit_nested_catalog_kentries() const
Definition: settings.h:198
std::string cert_bundle() const
Definition: settings.h:370
Setting< unsigned > layout_revision_
Definition: settings.h:227
bool is_volatile() const
Definition: settings.h:195
void SetAutobalanceMinWeight(unsigned value)
Definition: settings.cc:114
char algorithm
SettingsPublisher(const std::string &fqrn)
Definition: settings.h:395
OptionsManager * options_mgr_
Definition: settings.h:540
Setting< bool > is_silent_
Definition: settings.h:446
bool HasMasterKeys() const
Definition: settings.cc:247
void ApplyOptionsFromServerPath(const OptionsManager &options_mgr_, SettingsPublisher *settings_publisher)
Definition: settings.cc:511
Setting< shash::Any > base_hash_
Definition: settings.h:240
Algorithms
Definition: hash.h:41
bool is_silent() const
Definition: settings.h:428
std::string master_public_key_path() const
Definition: settings.h:326
Setting< unsigned > limit_root_catalog_kentries_
Definition: settings.h:249
SettingsBuilder(const std::string &c)
Definition: settings.h:490
std::string transaction_lock() const
Definition: settings.h:112
Algorithms
Definition: compression.h:44
std::string cache_dir() const
Definition: settings.h:106
bool HasRepositoryKeys() const
Definition: settings.cc:260
std::string proxy() const
Definition: settings.h:368
UnionFsType union_fs() const
Definition: settings.h:211
const SettingsKeychain & keychain() const
Definition: settings.h:434
void SetTmpDir(const std::string &tmp_dir)
Definition: settings.cc:297
bool IsManagedRepository() const
Definition: settings.h:516
Setting< bool > in_enter_session_
Definition: settings.h:232
void SetDryRun(bool value)
Definition: settings.cc:122
std::string scratch_wastebin() const
Definition: settings.h:100
Setting< std::string > template_from_
Definition: settings.h:267
Setting< uid_t > owner_uid_
Definition: settings.h:443
std::string union_mnt() const
Definition: settings.h:97
Setting< bool > use_catalog_autobalance_
Definition: settings.h:251
bool print_changeset() const
Definition: settings.h:208
void SetProxy(const std::string &proxy)
Definition: settings.cc:336
std::string GetReadOnlyXAttr(const std::string &attr)
Definition: settings.cc:465
std::string publishing_lock() const
Definition: settings.h:115
std::string lease_path() const
Definition: settings.h:212
void SetUrl(const std::string &url)
Definition: settings.cc:330
std::string master_private_key_path() const
Definition: settings.h:323
std::string ovl_work_dir() const
Definition: settings.h:107
SettingsRepository CreateSettingsRepository(const std::string &ident)
Definition: settings.cc:415
Setting< unsigned > autobalance_max_weight_
Definition: settings.h:252
const SettingsSpoolArea & spool_area() const
Definition: settings.h:216
void SetLimitRootCatalogKentries(unsigned value)
Definition: settings.cc:98
Setting< std::string > url_
Definition: settings.h:474
void SetIsManaged(bool value)
Definition: settings.cc:353
Setting & operator=(const T &v)
Definition: settings.h:34
Setting< std::string > workspace_
Definition: settings.h:121
const SettingsTransaction & transaction() const
Definition: settings.h:433
Setting< std::string > fqrn_
Definition: settings.h:440
SettingsPublisher * CreateSettingsPublisherFromSession()
Definition: settings.cc:475
uint32_t ttl_second() const
Definition: settings.h:193
Setting< std::string > alias_
Definition: settings.h:473
SettingsKeychain keychain_
Definition: settings.h:454
bool is_default() const
Definition: settings.h:50
std::string proxy() const
Definition: settings.h:422
void SetHashAlgorithm(const std::string &algorithm)
Definition: settings.cc:77
std::string workspace() const
Definition: settings.h:91
void SetLocator(const std::string &locator)
Definition: settings.cc:207
SettingsTransaction(const std::string &fqrn)
Definition: settings.h:133
Setting< std::string > fqrn_
Definition: settings.h:296
void SetCertBundle(const std::string &cert_bundle)
Definition: settings.cc:302
zlib::Algorithms compression_algorithm() const
Definition: settings.h:190
std::string certificate_path() const
Definition: settings.h:330
Setting< bool > print_changeset_
Definition: settings.h:254
std::string url() const
Definition: settings.h:469
bool is_managed() const
Definition: settings.h:429
SettingsStorage * GetStorage()
Definition: settings.h:435
const SettingsStorage & storage() const
Definition: settings.h:432
Setting< zlib::Algorithms > compression_algorithm_
Definition: settings.h:242
Setting< std::string > fqrn_
Definition: settings.h:334
Setting< std::string > cert_bundle_
Definition: settings.h:382
OptionsManager * options_mgr() const
Definition: settings.h:515
void SetLimitFileSizeMb(unsigned value)
Definition: settings.cc:102
Setting< std::string > url_
Definition: settings.h:441
Setting< std::string > template_to_
Definition: settings.h:268
void SetUseCatalogAutobalance(bool value)
Definition: settings.cc:106
Setting< EUnionMountRepairMode > repair_mode_
Definition: settings.h:127
Setting< unsigned > autobalance_min_weight_
Definition: settings.h:253
void SetCompressionAlgorithm(const std::string &algorithm)
Definition: settings.cc:81
bool enforce_limits() const
Definition: settings.h:196
Setting< std::string > private_key_path_
Definition: settings.h:338
void SetSpoolArea(const std::string &path)
Definition: settings.cc:32
Setting< shash::Algorithms > hash_algorithm_
Definition: settings.h:241
unsigned limit_file_size_mb() const
Definition: settings.h:204
void SetEnforceLimits(bool value)
Definition: settings.cc:86
Setting< std::string > tmp_dir_
Definition: settings.h:298
void SetProxy(const std::string &proxy)
Definition: settings.cc:294
Setting< std::string > master_private_key_path_
Definition: settings.h:336
shash::Any base_hash() const
Definition: settings.h:188
const SettingsKeychain & keychain() const
Definition: settings.h:372
static const unsigned kDefaultWhitelistValidity
Definition: settings.h:393
std::string tmp_dir() const
Definition: settings.h:92
Setting< std::string > proxy_
Definition: settings.h:442
void SetBaseHash(const shash::Any &hash)
Definition: settings.cc:73
Setting< std::string > endpoint_
Definition: settings.h:299
void SetPrintChangeset(bool value)
Definition: settings.cc:118
std::string readonly_talk_socket() const
Definition: settings.h:94
SettingsStorage(const std::string &fqrn)
Definition: settings.h:279
std::string scratch_dir() const
Definition: settings.h:99
std::string gw_session_token() const
Definition: settings.h:109
unsigned whitelist_validity_days() const
Definition: settings.h:423
std::map< std::string, std::string > GetSessionEnvironment()
Definition: settings.cc:366
SettingsSpoolArea * GetSpoolArea()
Definition: settings.h:217
bool HasDanglingRepositoryKeys() const
Definition: settings.cc:253
std::string fqrn() const
Definition: settings.h:420
std::string fqrn() const
Definition: settings.h:366
SettingsStorage storage_
Definition: settings.h:452
Setting< unsigned > limit_file_size_mb_
Definition: settings.h:250
void MakeLocal(const std::string &path)
Definition: settings.cc:193
Setting< std::string > master_public_key_path_
Definition: settings.h:337
upload::SpoolerDefinition::DriverType type() const
Definition: settings.h:292
std::string scratch_base() const
Definition: settings.h:98
void SetOwner(const std::string &user_name)
Definition: settings.cc:339
void SetRepairMode(const EUnionMountRepairMode val)
Definition: settings.cc:41
std::string template_from() const
Definition: settings.h:213
uid_t owner_uid() const
Definition: settings.h:426
bool in_enter_session() const
Definition: settings.h:187
Setting< unsigned > limit_nested_catalog_kentries_
Definition: settings.h:248
Setting< std::string > fqrn_
Definition: settings.h:472
Setting< bool > is_volatile_
Definition: settings.h:245
SettingsKeychain keychain_
Definition: settings.h:384
Setting< bool > dry_run_
Definition: settings.h:255
Setting< std::string > certificate_path_
Definition: settings.h:339
std::string url() const
Definition: settings.h:367
bool SetIfDefault(const T &v)
Definition: settings.h:42
Setting< std::string > proxy_
Definition: settings.h:378
std::string client_lconfig() const
Definition: settings.h:104
void MakeS3(const std::string &s3_config, const std::string &tmp_dir)
Definition: settings.cc:186
std::string url() const
Definition: settings.h:421
Setting< std::string > tmp_dir_
Definition: settings.h:122
std::string GetLocator() const
Definition: settings.cc:181
Setting< std::string > url_
Definition: settings.h:377
void SetInEnterSession(const bool value)
Definition: settings.cc:69
SettingsReplica(const std::string &fqrn)
Definition: settings.h:463
Setting< std::string > gw_key_path_
Definition: settings.h:340
Setting(const T &v)
Definition: settings.h:32
Setting< std::string > lease_path_
Definition: settings.h:262
std::string tmp_dir() const
Definition: settings.h:369
SettingsSpoolArea(const std::string &fqrn)
Definition: settings.h:76
Setting< bool > is_garbage_collectable_
Definition: settings.h:244
Setting< std::string > fqrn_
Definition: settings.h:376
bool HasDanglingMasterKeys() const
Definition: settings.cc:239
Setting< bool > enable_mtime_ns_
Definition: settings.h:247
std::string client_log() const
Definition: settings.h:105
bool is_garbage_collectable() const
Definition: settings.h:194