CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
manifest Namespace Reference

Classes

struct  Breadcrumb
 
class  Manifest
 
struct  ManifestEnsemble
 
class  Reflog
 

Enumerations

enum  Failures {
  kFailOk = 0, kFailLoad, kFailIncomplete, kFailNameMismatch,
  kFailRootMismatch, kFailOutdated, kFailBadCertificate, kFailBadSignature,
  kFailBadWhitelist, kFailInvalidCertificate, kFailUnknown, kFailNumEntries
}
 

Functions

static Failures DoVerify (unsigned char *manifest_data, size_t manifest_size, const std::string &base_url, const std::string &repository_name, const uint64_t minimum_timestamp, const shash::Any *base_catalog, signature::SignatureManager *signature_manager, download::DownloadManager *download_manager, ManifestEnsemble *ensemble)
 
static Failures DoFetch (const std::string &base_url, const std::string &repository_name, const uint64_t minimum_timestamp, const shash::Any *base_catalog, signature::SignatureManager *signature_manager, download::DownloadManager *download_manager, ManifestEnsemble *ensemble)
 
Failures Fetch (const std::string &base_url, const std::string &repository_name, const uint64_t minimum_timestamp, const shash::Any *base_catalog, signature::SignatureManager *signature_manager, download::DownloadManager *download_manager, ManifestEnsemble *ensemble)
 
Failures Verify (unsigned char *manifest_data, size_t manifest_size, const std::string &base_url, const std::string &repository_name, const uint64_t minimum_timestamp, const shash::Any *base_catalog, signature::SignatureManager *signature_manager, download::DownloadManager *download_manager, ManifestEnsemble *ensemble)
 
const char * Code2Ascii (const Failures error)
 

Detailed Description

This file is part of the CernVM File System.

This file is part of the CernVM File System.

The SyncMediator is an intermediate layer between the UnionSync implementation and the CatalogManager. It's main responsibility is to unwind file system intrinsics as deleting all files in a deleted directory. Furthermore newly created directories are recursed and all included files are added as a whole (performance improvement).

Furthermore it keeps track of hard link relations. As we cannot store the transient inode of the union file system in cvmfs, we just keep track of hard link relations itself. Inodes will be assigned at run time of the CVMFS client taking these relations into account.

Another responsibility of this class is the creation and destruction of nested catalogs. If a .cvmfscatalog magic file is encountered, either on delete or add, it will be treated as nested catalog change.

New and modified files are piped to external processes for hashing and compression. Results come back in a pipe.

Enumeration Type Documentation

Enumerator
kFailOk 
kFailLoad 
kFailIncomplete 
kFailNameMismatch 
kFailRootMismatch 
kFailOutdated 
kFailBadCertificate 
kFailBadSignature 
kFailBadWhitelist 
kFailInvalidCertificate 
kFailUnknown 
kFailNumEntries 

Definition at line 27 of file manifest_fetch.h.

Function Documentation

const char* manifest::Code2Ascii ( const Failures  error)
inline

Definition at line 43 of file manifest_fetch.h.

Referenced by ServerTool::FetchRemoteManifest(), catalog::ClientCatalogManager::GetNewRootCatalogContext(), and swissknife::CommandPull::Main().

Here is the caller graph for this function:

static Failures manifest::DoFetch ( const std::string &  base_url,
const std::string &  repository_name,
const uint64_t  minimum_timestamp,
const shash::Any base_catalog,
signature::SignatureManager signature_manager,
download::DownloadManager download_manager,
ManifestEnsemble *  ensemble 
)
static

Downloads and verifies the manifest, the certificate, and the whitelist. If base_url is empty, uses the probe_hosts feature from download manager.

Definition at line 162 of file manifest_fetch.cc.

Referenced by Fetch().

Here is the call graph for this function:

Here is the caller graph for this function:

static Failures manifest::DoVerify ( unsigned char *  manifest_data,
size_t  manifest_size,
const std::string &  base_url,
const std::string &  repository_name,
const uint64_t  minimum_timestamp,
const shash::Any base_catalog,
signature::SignatureManager signature_manager,
download::DownloadManager download_manager,
ManifestEnsemble *  ensemble 
)
static

Verifies the manifest, the certificate, and the whitelist. If base_url is empty, uses the probe_hosts feature from download manager.

Note
Ownership of manifest_data is transferred to the ensemble.

Definition at line 30 of file manifest_fetch.cc.

Referenced by DoFetch(), and Verify().

Here is the call graph for this function:

Here is the caller graph for this function:

Failures manifest::Fetch ( const std::string &  base_url,
const std::string &  repository_name,
const uint64_t  minimum_timestamp,
const shash::Any base_catalog,
signature::SignatureManager signature_manager,
download::DownloadManager download_manager,
ManifestEnsemble *  ensemble 
)

If the whitelist or the manifest are corrupted, fail-over once to another stratum 1 if more than a single stratum 1 is known.

Definition at line 195 of file manifest_fetch.cc.

Referenced by publish::DownloadRootObjects(), MountPoint::FetchHistory(), HttpObjectFetcher< CatalogT, HistoryT, ReflogT >::FetchManifest(), ServerTool::FetchRemoteManifestEnsemble(), and catalog::ClientCatalogManager::GetNewRootCatalogContext().

Here is the call graph for this function:

Here is the caller graph for this function:

Failures manifest::Verify ( unsigned char *  manifest_data,
size_t  manifest_size,
const std::string &  base_url,
const std::string &  repository_name,
const uint64_t  minimum_timestamp,
const shash::Any base_catalog,
signature::SignatureManager signature_manager,
download::DownloadManager download_manager,
ManifestEnsemble *  ensemble 
)

Verifies the manifest, the certificate, and the whitelist. If base_url is empty, uses the probe_hosts feature from download manager. Creates a copy of the manifest to verify.

Definition at line 223 of file manifest_fetch.cc.

Referenced by anonymous_namespace{notification_client.cc}::ActivitySubscriber::Consume(), anonymous_namespace{cmd_sub.cc}::SwissknifeSubscriber::Consume(), signature::SignatureManager::KeysMatch(), and signature::SignatureManager::VerifyLetter().

Here is the call graph for this function:

Here is the caller graph for this function: