CernVM-FS
2.12.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
repository_tags.cc
Go to the documentation of this file.
1
5
#include "cvmfs_config.h"
6
#include "
publish/repository.h
"
7
8
#include <vector>
9
10
#include "
history_sqlite.h
"
11
#include "
publish/except.h
"
12
#include "
sanitizer.h
"
13
14
namespace
publish {
15
16
void
Publisher::CheckTagName
(
const
std::string &name) {
17
if
(name.empty())
throw
EPublish
(
"the empty string is not a valid tag name"
);
18
if
(name ==
"trunk"
)
19
throw
EPublish
(
"'trunk' is not allowed as a custom tag name"
);
20
if
(name ==
"trunk-previous"
)
21
throw
EPublish
(
"'trunk-previous' is not allowed as a custom tag name"
);
22
if
(!
sanitizer::TagSanitizer
().IsValid(name))
23
throw
EPublish
(
"invalid tag name: "
+ name);
24
}
25
26
27
void
Publisher::EditTags
(
const
std::vector<history::History::Tag> &add_tags,
28
const
std::vector<std::string> &rm_tags)
29
{
30
if
(!
in_transaction_
.
IsSet
())
31
throw
EPublish
(
"cannot edit tags outside transaction"
);
32
33
for
(
unsigned
i = 0; i < add_tags.size(); ++i) {
34
std::string name = add_tags[i].name;
35
CheckTagName
(name);
36
history_
->
Insert
(add_tags[i]);
37
}
38
39
for
(
unsigned
i = 0; i < rm_tags.size(); ++i) {
40
std::string name = rm_tags[i];
41
CheckTagName
(name);
42
if
(
history_
->
Exists
(name)) {
43
bool
retval =
history_
->
Remove
(name);
44
if
(!retval)
throw
EPublish
(
"cannot remove tag "
+ name);
45
}
46
}
47
48
PushHistory
();
49
50
// TODO(jblomer): virtual catalog
51
}
52
53
}
// namespace publish
except.h
publish::ServerFlagFile::IsSet
bool IsSet() const
Definition:
repository_util.cc:111
sanitizer::TagSanitizer
Definition:
sanitizer.h:93
history::SqliteHistory::Remove
bool Remove(const std::string &name)
Definition:
history_sqlite.cc:180
history::SqliteHistory::Exists
bool Exists(const std::string &name) const
Definition:
history_sqlite.cc:195
publish::EPublish
Definition:
except.h:13
publish::PushHistory
void PushHistory()
Definition:
repository.cc:355
repository.h
history::SqliteHistory::Insert
bool Insert(const Tag &tag)
Definition:
history_sqlite.cc:170
publish::EditTags
void EditTags(const std::vector< history::History::Tag > &add_tags, const std::vector< std::string > &rm_tags)
Definition:
repository_tags.cc:27
publish::history_
history::SqliteHistory * history_
Definition:
repository.h:149
publish::in_transaction_
ServerFlagFile in_transaction_
Definition:
repository.h:370
sanitizer.h
history_sqlite.h
publish::CheckTagName
void CheckTagName(const std::string &name)
Definition:
repository_tags.cc:16
cvmfs
cvmfs
publish
repository_tags.cc
Generated on Sun Sep 8 2024 00:20:34 for CernVM-FS by
1.8.5