Skip to content

Commit

Permalink
[api] allow to backup unit without snapshot tagging. Fixes MER#1282
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 17, 2015
1 parent a6a86a3 commit fc5e465
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/vault/vault.hpp
Expand Up @@ -94,6 +94,7 @@ class Vault

Lock lock() const;

std::tuple<QString, bool, QString> backupUnit(const QString &, const QString &);
QString tagSnapshot(const QString &message);
private:
bool setState(const QString &state);
Expand Down
14 changes: 14 additions & 0 deletions qml/Vault/vault.cpp
Expand Up @@ -64,12 +64,20 @@ class Worker : public QObject
emit done(Vault::Restore, QVariantMap());
}

Q_INVOKABLE void backupUnit(const QString &home, const QString &unit)
{
debug::debug("Backup unit", unit);
auto res = m_vault->backupUnit(home, unit);
emit progress(Vault::Backup, {{"unit", unit}, {"status", std::get<2>(res)}});
}

Q_INVOKABLE void tagSnapshot(const QString &message)
{
debug::debug("Tag snapshot, message:", message);
auto tag = m_vault->tagSnapshot(message);
emit done(Vault::Backup, {{"tag", tag}});
}

Q_INVOKABLE void backup(const QString &home, const QStringList &units, const QString &message)
{
debug::debug("Backup: home", home);
Expand Down Expand Up @@ -369,6 +377,12 @@ void Vault::requestData(DataType dataType, QVariantMap const &context)
, Q_ARG(QVariantMap, context));
}

Q_INVOKABLE void Vault::backupUnit(const QString &unit)
{
QMetaObject::invokeMethod(m_worker, "backupUnit"
, Q_ARG(QString, m_home)
, Q_ARG(QString, unit));
}

Q_INVOKABLE void Vault::tagSnapshot(const QString &message)
{
Expand Down
2 changes: 2 additions & 0 deletions qml/Vault/vault.hpp
Expand Up @@ -61,7 +61,9 @@ class Vault : public QObject
Q_INVOKABLE void startGc();
Q_INVOKABLE void requestData(DataType, QVariantMap const &);

Q_INVOKABLE void backupUnit(const QString &unit);
Q_INVOKABLE void tagSnapshot(const QString &message);

signals:
void rootChanged();
void backupHomeChanged();
Expand Down
12 changes: 12 additions & 0 deletions src/vault.cpp
Expand Up @@ -815,6 +815,18 @@ struct Unit
config::Unit m_config;
};

/// \return (unit, isOk, reason)
std::tuple<QString, bool, QString> Vault::backupUnit(const QString &home, const QString &unit)
{
auto l = lock();
QString reason;
auto onDone = [&reason](const QString &, const QString &result) {
reason = result;
};
auto isOk = backupUnit(home, unit, onDone);
return std::make_tuple(unit, isOk, reason);
}

bool Vault::backupUnit(const QString &home, const QString &unit, const ProgressCallback &callback)
{
Gittin::Commit head = Gittin::Branch(&m_vcs, "master").head();
Expand Down

0 comments on commit fc5e465

Please sign in to comment.