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

#include <manifest.h>

Collaboration diagram for manifest::Manifest:

Public Member Functions

 Manifest (const shash::Any &catalog_hash, const uint64_t catalog_size, const std::string &root_path)
 
 Manifest (const shash::Any &catalog_hash, const uint64_t catalog_size, const shash::Md5 &root_path, const uint32_t ttl, const uint64_t revision, const shash::Any &micro_catalog_hash, const std::string &repository_name, const shash::Any certificate, const shash::Any history, const uint64_t publish_timestamp, const bool garbage_collectable, const bool has_alt_catalog_path, const shash::Any &meta_info, const shash::Any &reflog_hash)
 
std::string ExportString () const
 
bool Export (const std::string &path) const
 
bool ExportBreadcrumb (const std::string &directory, const int mode) const
 
shash::Algorithms GetHashAlgorithm () const
 
void set_ttl (const uint32_t ttl)
 
void set_revision (const uint64_t revision)
 
void set_certificate (const shash::Any &certificate)
 
void set_history (const shash::Any &history_db)
 
void set_repository_name (const std::string &repository_name)
 
void set_publish_timestamp (const uint32_t publish_timestamp)
 
void set_catalog_size (const uint64_t catalog_size)
 
void set_catalog_hash (const shash::Any &catalog_hash)
 
void set_garbage_collectability (const bool garbage_collectable)
 
void set_has_alt_catalog_path (const bool &has_alt_path)
 
void set_meta_info (const shash::Any &meta_info)
 
void set_root_path (const std::string &root_path)
 
void set_reflog_hash (const shash::Any &checksum)
 
uint64_t revision () const
 
std::string repository_name () const
 
shash::Md5 root_path () const
 
shash::Any catalog_hash () const
 
uint64_t catalog_size () const
 
shash::Any certificate () const
 
shash::Any history () const
 
uint64_t publish_timestamp () const
 
bool garbage_collectable () const
 
bool has_alt_catalog_path () const
 
shash::Any meta_info () const
 
shash::Any reflog_hash () const
 
std::string MakeCatalogPath () const
 
std::string MakeCertificatePath () const
 

Static Public Member Functions

static ManifestLoadFile (const std::string &path)
 
static ManifestLoadMem (const unsigned char *buffer, const unsigned length)
 
static Breadcrumb ReadBreadcrumb (const std::string &repo_name, const std::string &directory)
 

Static Private Member Functions

static ManifestLoad (const std::map< char, std::string > &content)
 

Private Attributes

shash::Any catalog_hash_
 
uint64_t catalog_size_
 
shash::Md5 root_path_
 
uint32_t ttl_
 
uint64_t revision_
 
shash::Any micro_catalog_hash_
 
std::string repository_name_
 
shash::Any certificate_
 
shash::Any history_
 
uint64_t publish_timestamp_
 
bool garbage_collectable_
 
bool has_alt_catalog_path_
 
shash::Any meta_info_
 
shash::Any reflog_hash_
 

Detailed Description

The Manifest is the bootstrap snippet for a repository. It is stored in .cvmfspublished.

Definition at line 49 of file manifest.h.

Constructor & Destructor Documentation

manifest::Manifest::Manifest ( const shash::Any catalog_hash,
const uint64_t  catalog_size,
const std::string &  root_path 
)
manifest::Manifest::Manifest ( const shash::Any catalog_hash,
const uint64_t  catalog_size,
const shash::Md5 root_path,
const uint32_t  ttl,
const uint64_t  revision,
const shash::Any micro_catalog_hash,
const std::string &  repository_name,
const shash::Any  certificate,
const shash::Any  history,
const uint64_t  publish_timestamp,
const bool  garbage_collectable,
const bool  has_alt_catalog_path,
const shash::Any meta_info,
const shash::Any reflog_hash 
)
inline

Definition at line 56 of file manifest.h.

Member Function Documentation

uint64_t manifest::Manifest::catalog_size ( ) const
inline

Definition at line 133 of file manifest.h.

Referenced by publish::CreateRootObjects(), and set_catalog_size().

Here is the caller graph for this function:

bool manifest::Manifest::Export ( const std::string &  path) const

Writes the .cvmfspublished file (unsigned).

Definition at line 223 of file manifest.cc.

Referenced by receiver::CatalogMergeTool< RwCatalogMgr, RoCatalogMgr >::CreateNewManifest(), swissknife::CommandMigrate::DoMigrationAndCommit(), and ExportBreadcrumb().

Here is the call graph for this function:

Here is the caller graph for this function:

bool manifest::Manifest::ExportBreadcrumb ( const std::string &  directory,
const int  mode 
) const

Writes the cvmfschecksum.$repository file. Atomic store.

Definition at line 246 of file manifest.cc.

Referenced by swissknife::CommandPull::Main(), and PosixCacheManager::StoreBreadcrumb().

Here is the call graph for this function:

Here is the caller graph for this function:

string manifest::Manifest::ExportString ( ) const

Creates the manifest string

Definition at line 188 of file manifest.cc.

Referenced by Export(), and publish::PushManifest().

Here is the call graph for this function:

Here is the caller graph for this function:

bool manifest::Manifest::garbage_collectable ( ) const
inline

Definition at line 137 of file manifest.h.

Referenced by swissknife::CommandPull::Main(), and set_garbage_collectability().

Here is the caller graph for this function:

shash::Algorithms manifest::Manifest::GetHashAlgorithm ( ) const
inline

Definition at line 91 of file manifest.h.

Referenced by catalog::WritableCatalogManager::CreateRepository(), and swissknife::CommandPull::Main().

Here is the caller graph for this function:

bool manifest::Manifest::has_alt_catalog_path ( ) const
inline

Definition at line 138 of file manifest.h.

Referenced by swissknife::CommandPull::Main(), and publish::PushManifest().

Here is the caller graph for this function:

Manifest * manifest::Manifest::Load ( const std::map< char, std::string > &  content)
staticprivate

Definition at line 101 of file manifest.cc.

Here is the call graph for this function:

Manifest * manifest::Manifest::LoadFile ( const std::string &  path)
static

Definition at line 92 of file manifest.cc.

Referenced by LocalObjectFetcher< CatalogT, HistoryT, ReflogT >::FetchManifest(), swissknife::CommandInfo::Main(), ServerTool::OpenLocalManifest(), and SigningTool::Run().

Here is the call graph for this function:

Here is the caller graph for this function:

Manifest * manifest::Manifest::LoadMem ( const unsigned char *  buffer,
const unsigned  length 
)
static
std::string manifest::Manifest::MakeCatalogPath ( ) const
inline

Definition at line 142 of file manifest.h.

Here is the call graph for this function:

std::string manifest::Manifest::MakeCertificatePath ( ) const
inline

Definition at line 147 of file manifest.h.

Referenced by manifest::DoVerify().

Here is the call graph for this function:

Here is the caller graph for this function:

uint64_t manifest::Manifest::publish_timestamp ( ) const
inline

Definition at line 136 of file manifest.h.

Referenced by publish::CreateRootObjects(), manifest::DoVerify(), set_publish_timestamp(), and ExternalCacheManager::StoreBreadcrumb().

Here is the caller graph for this function:

Breadcrumb manifest::Manifest::ReadBreadcrumb ( const std::string &  repo_name,
const std::string &  directory 
)
static

Read the hash and the last-modified time stamp from the cvmfschecksum.$repository file in the given directory.

Definition at line 256 of file manifest.cc.

Referenced by PosixCacheManager::LoadBreadcrumb().

Here is the caller graph for this function:

shash::Any manifest::Manifest::reflog_hash ( ) const
inline

Definition at line 140 of file manifest.h.

Referenced by swissknife::CommandListReflog::Main().

Here is the caller graph for this function:

std::string manifest::Manifest::repository_name ( ) const
inline
uint64_t manifest::Manifest::revision ( ) const
inline
shash::Md5 manifest::Manifest::root_path ( ) const
inline

Definition at line 131 of file manifest.h.

Referenced by manifest::DoVerify().

Here is the caller graph for this function:

void manifest::Manifest::set_catalog_hash ( const shash::Any catalog_hash)
inline

Definition at line 110 of file manifest.h.

Referenced by catalog::WritableCatalogManager::Commit(), and swissknife::CommandMigrate::DoMigrationAndCommit().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_catalog_size ( const uint64_t  catalog_size)
inline

Definition at line 107 of file manifest.h.

Referenced by catalog::WritableCatalogManager::Commit(), and swissknife::CommandMigrate::DoMigrationAndCommit().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_certificate ( const shash::Any certificate)
inline

Definition at line 95 of file manifest.h.

Referenced by publish::OnProcessCertificate().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_garbage_collectability ( const bool  garbage_collectable)
inline

Definition at line 113 of file manifest.h.

Referenced by publish::CreateRootObjects().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_has_alt_catalog_path ( const bool &  has_alt_path)
inline

Definition at line 116 of file manifest.h.

Referenced by catalog::WritableCatalogManager::CreateRepository(), and publish::CreateRootObjects().

Here is the caller graph for this function:

void manifest::Manifest::set_history ( const shash::Any history_db)
inline

Definition at line 98 of file manifest.h.

Referenced by swissknife::CommandMigrate::DoMigrationAndCommit(), and publish::OnProcessHistory().

Here is the caller graph for this function:

void manifest::Manifest::set_meta_info ( const shash::Any meta_info)
inline

Definition at line 119 of file manifest.h.

Referenced by publish::OnProcessMetainfo().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_publish_timestamp ( const uint32_t  publish_timestamp)
inline

Definition at line 104 of file manifest.h.

Here is the call graph for this function:

void manifest::Manifest::set_reflog_hash ( const shash::Any checksum)
inline

Definition at line 125 of file manifest.h.

Referenced by publish::PushReflog().

Here is the caller graph for this function:

void manifest::Manifest::set_repository_name ( const std::string &  repository_name)
inline

Definition at line 101 of file manifest.h.

Referenced by publish::CreateRootObjects().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_revision ( const uint64_t  revision)
inline

Definition at line 94 of file manifest.h.

Referenced by catalog::WritableCatalogManager::Commit(), and swissknife::CommandMigrate::DoMigrationAndCommit().

Here is the call graph for this function:

Here is the caller graph for this function:

void manifest::Manifest::set_root_path ( const std::string &  root_path)
inline

Definition at line 122 of file manifest.h.

Referenced by catalog::WritableCatalogManager::Commit(), and swissknife::CommandMigrate::DoMigrationAndCommit().

Here is the caller graph for this function:

void manifest::Manifest::set_ttl ( const uint32_t  ttl)
inline

Definition at line 93 of file manifest.h.

Referenced by catalog::WritableCatalogManager::Commit(), publish::CreateRootObjects(), and swissknife::CommandMigrate::DoMigrationAndCommit().

Here is the caller graph for this function:

Member Data Documentation

shash::Any manifest::Manifest::catalog_hash_
private
uint64_t manifest::Manifest::catalog_size_
private

Definition at line 155 of file manifest.h.

Referenced by catalog_size(), ExportString(), and set_catalog_size().

shash::Any manifest::Manifest::certificate_
private

Definition at line 161 of file manifest.h.

Referenced by certificate(), ExportString(), MakeCertificatePath(), and set_certificate().

bool manifest::Manifest::garbage_collectable_
private

Definition at line 164 of file manifest.h.

Referenced by ExportString(), garbage_collectable(), and set_garbage_collectability().

bool manifest::Manifest::has_alt_catalog_path_
private

The root catalog and the certificate might be available as .cvmfscatalog and .cvmfscertificate. That is helpful if the data subdirectory is protected on the web server.

Definition at line 171 of file manifest.h.

Referenced by ExportString(), has_alt_catalog_path(), MakeCatalogPath(), MakeCertificatePath(), and set_has_alt_catalog_path().

shash::Any manifest::Manifest::history_
private

Definition at line 162 of file manifest.h.

Referenced by ExportString(), history(), and set_history().

shash::Any manifest::Manifest::meta_info_
private

Hash of a JSON object that describes the repository (owner, purpose, list of recommended stratum 1s, ...)

Definition at line 177 of file manifest.h.

Referenced by ExportString(), meta_info(), and set_meta_info().

shash::Any manifest::Manifest::micro_catalog_hash_
private

Definition at line 159 of file manifest.h.

Referenced by ExportString().

uint64_t manifest::Manifest::publish_timestamp_
private
shash::Any manifest::Manifest::reflog_hash_
private

Hash of the reflog file

Definition at line 182 of file manifest.h.

Referenced by ExportString(), reflog_hash(), and set_reflog_hash().

std::string manifest::Manifest::repository_name_
private

Definition at line 160 of file manifest.h.

Referenced by ExportBreadcrumb(), ExportString(), repository_name(), and set_repository_name().

uint64_t manifest::Manifest::revision_
private

Definition at line 158 of file manifest.h.

Referenced by ExportBreadcrumb(), ExportString(), revision(), and set_revision().

shash::Md5 manifest::Manifest::root_path_
private

Definition at line 156 of file manifest.h.

Referenced by ExportString(), root_path(), and set_root_path().

uint32_t manifest::Manifest::ttl_
private

Definition at line 157 of file manifest.h.

Referenced by ExportString(), and set_ttl().


The documentation for this class was generated from the following files: