Skip to content

Commit

Permalink
[vault] do not allow empty units names to be used
Browse files Browse the repository at this point in the history
Signed-off-by: Denis Zalevskiy <denis.zalevskiy@jolla.com>
  • Loading branch information
Denis Zalevskiy committed Sep 24, 2014
1 parent 4272f21 commit 4150d99
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions src/vault.cpp
Expand Up @@ -138,10 +138,7 @@ void Vault::execute(const QVariantMap &options)
}

Vault vault(options.value("vault").toString());
QStringList units;
for (const QVariant &v: options.value("unit").toString().split(",")) {
units << v.toString();
}
QStringList units{str(options.value("unit")).split(",", QString::SkipEmptyParts)};

if (action == "init") {
vault.init(parseKvPairs(options.value("git_config").toString()));
Expand Down Expand Up @@ -374,6 +371,7 @@ Vault::Result Vault::backup(const QString &home, const QStringList &units, const

QStringList usedUnits = units;
if (units.isEmpty()) {
debug::info("Units list is not supplied, backup all units");
QMap<QString, config::Unit> units = config().units();
for (auto i = units.begin(); i != units.end(); ++i) {
usedUnits << i.key();
Expand Down Expand Up @@ -695,17 +693,20 @@ struct Unit
bool Vault::backupUnit(const QString &home, const QString &unit, const ProgressCallback &callback)
{
Gittin::Commit head = Gittin::Branch(&m_vcs, "master").head();
QString name = unit;

try {
debug::info("Backup unit", unit);
if (unit.isEmpty())
error::raise({{"msg", "Trying to backup unit w/o name"}});

callback(unit, "begin");
Unit u(unit, home, &m_vcs, config().units().value(unit));
u.backup();
callback(unit, "ok");
} catch (error::Error err) {
debug::error(err.what(), "\n");
callback(unit, err.m.contains("reason") ? err.m.value("reason").toString() : "fail");
m_vcs.clean(CleanOptions::Force | CleanOptions::RemoveDirectories | CleanOptions::IgnoreIgnores, name);
m_vcs.clean(CleanOptions::Force | CleanOptions::RemoveDirectories | CleanOptions::IgnoreIgnores, unit);
m_vcs.reset(ResetOptions::Hard, head.sha());
return false;
}
Expand All @@ -716,6 +717,10 @@ bool Vault::backupUnit(const QString &home, const QString &unit, const ProgressC
bool Vault::restoreUnit(const QString &home, const QString &unit, const ProgressCallback &callback)
{
try {
debug::info("Restore unit", unit);
if (unit.isEmpty())
error::raise({{"msg", "Trying to restore unit w/o name"}});

callback(unit, "begin");
Unit u(unit, home, &m_vcs, config().units().value(unit));
u.restore();
Expand Down

0 comments on commit 4150d99

Please sign in to comment.