summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2016-12-12 15:57:19 +0100
committerGatis Paeglis <gatis.paeglis@qt.io>2016-12-16 16:29:21 +0000
commit141c33eb3823a4f3d8a5ad62041c712a6fd54daa (patch)
treedc0aa2b1649859f342b9e753107089d6f9b1657b
parent3522fbe467130fade14b491b9af25cb22dedb183 (diff)
Simplify metadata retrieval for revision
Don't special case reading a metadata for the booted sysroot. We can use revision to extract this data from the repo, as we already do for remote and rollback metadata. Also get rid of unnecessary indirection and enum. Change-Id: Ic6ad4f0c6b5ca9ddda34bee50674e7f37af8f99a Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
-rw-r--r--src/lib/qotaclient.cpp92
-rw-r--r--src/lib/qotaclient_p.h13
-rw-r--r--src/lib/qotaclientasync.cpp27
-rw-r--r--src/lib/qotaclientasync_p.h2
4 files changed, 19 insertions, 115 deletions
diff --git a/src/lib/qotaclient.cpp b/src/lib/qotaclient.cpp
index f8d0d1a..df71125 100644
--- a/src/lib/qotaclient.cpp
+++ b/src/lib/qotaclient.cpp
@@ -180,74 +180,6 @@ void QOtaClientPrivate::defaultRevisionChanged(const QString &defaultRevision)
refreshState();
}
-QString QOtaClientPrivate::version(QueryTarget target) const
-{
- if (!m_otaEnabled)
- return QString();
-
- switch (target) {
- case QueryTarget::Booted:
- return m_bootedVersion.isEmpty() ? QStringLiteral("unknown") : m_bootedVersion;
- case QueryTarget::Remote:
- return m_remoteVersion.isEmpty() ? QStringLiteral("unknown") : m_remoteVersion;
- case QueryTarget::Rollback:
- return m_rollbackVersion.isEmpty() ? QStringLiteral("unknown") : m_rollbackVersion;
- default:
- Q_UNREACHABLE();
- }
-}
-
-QByteArray QOtaClientPrivate::info(QueryTarget target) const
-{
- if (!m_otaEnabled)
- return QByteArray();
-
- switch (target) {
- case QueryTarget::Booted:
- return m_bootedInfo;
- case QueryTarget::Remote:
- return m_remoteInfo;
- case QueryTarget::Rollback:
- return m_rollbackInfo;
- default:
- Q_UNREACHABLE();
- }
-}
-
-QString QOtaClientPrivate::description(QueryTarget target) const
-{
- if (!m_otaEnabled)
- return QString();
-
- switch (target) {
- case QueryTarget::Booted:
- return m_bootedDescription.isEmpty() ? QStringLiteral("unknown") : m_bootedDescription;
- case QueryTarget::Remote:
- return m_remoteDescription.isEmpty() ? QStringLiteral("unknown") : m_remoteDescription;
- case QueryTarget::Rollback:
- return m_rollbackDescription.isEmpty() ? QStringLiteral("unknown") : m_rollbackDescription;
- default:
- Q_UNREACHABLE();
- }
-}
-
-QString QOtaClientPrivate::revision(QueryTarget target) const
-{
- if (!m_otaEnabled)
- return QString();
-
- switch (target) {
- case QueryTarget::Booted:
- return m_bootedRev.isEmpty() ? QStringLiteral("unknown") : m_bootedRev;
- case QueryTarget::Remote:
- return m_remoteRev.isEmpty() ? QStringLiteral("unknown") : m_remoteRev;
- case QueryTarget::Rollback:
- return m_rollbackRev.isEmpty() ? QStringLiteral("unknown") : m_rollbackRev;
- default:
- Q_UNREACHABLE();
- }
-}
-
/*!
\class QOtaClient
\inmodule qtotaupdate
@@ -757,7 +689,7 @@ bool QOtaClient::restartRequired() const
*/
QString QOtaClient::bootedVersion() const
{
- return d_func()->version(QOtaClientPrivate::QueryTarget::Booted);
+ return d_func()->m_bootedVersion;
}
/*!
@@ -770,7 +702,7 @@ QString QOtaClient::bootedVersion() const
*/
QString QOtaClient::bootedDescription() const
{
- return d_func()->description(QOtaClientPrivate::QueryTarget::Booted);
+ return d_func()->m_bootedDescription;
}
/*!
@@ -781,7 +713,7 @@ QString QOtaClient::bootedDescription() const
*/
QString QOtaClient::bootedRevision() const
{
- return d_func()->revision(QOtaClientPrivate::QueryTarget::Booted);
+ return d_func()->m_bootedRev;
}
/*!
@@ -793,7 +725,7 @@ QString QOtaClient::bootedRevision() const
*/
QByteArray QOtaClient::bootedInfo() const
{
- return d_func()->info(QOtaClientPrivate::QueryTarget::Booted);
+ return d_func()->m_bootedInfo;
}
/*!
@@ -806,7 +738,7 @@ QByteArray QOtaClient::bootedInfo() const
*/
QString QOtaClient::remoteVersion() const
{
- return d_func()->version(QOtaClientPrivate::QueryTarget::Remote);
+ return d_func()->m_remoteVersion;
}
/*!
@@ -819,7 +751,7 @@ QString QOtaClient::remoteVersion() const
*/
QString QOtaClient::remoteDescription() const
{
- return d_func()->description(QOtaClientPrivate::QueryTarget::Remote);
+ return d_func()->m_remoteDescription;
}
/*!
@@ -830,7 +762,7 @@ QString QOtaClient::remoteDescription() const
*/
QString QOtaClient::remoteRevision() const
{
- return d_func()->revision(QOtaClientPrivate::QueryTarget::Remote);
+ return d_func()->m_remoteRev;
}
/*!
@@ -844,7 +776,7 @@ QString QOtaClient::remoteRevision() const
*/
QByteArray QOtaClient::remoteInfo() const
{
- return d_func()->info(QOtaClientPrivate::QueryTarget::Remote);
+ return d_func()->m_remoteInfo;
}
/*!
@@ -857,7 +789,7 @@ QByteArray QOtaClient::remoteInfo() const
*/
QString QOtaClient::rollbackVersion() const
{
- return d_func()->version(QOtaClientPrivate::QueryTarget::Rollback);
+ return d_func()->m_rollbackVersion;
}
/*!
@@ -870,7 +802,7 @@ QString QOtaClient::rollbackVersion() const
*/
QString QOtaClient::rollbackDescription() const
{
- return d_func()->description(QOtaClientPrivate::QueryTarget::Rollback);
+ return d_func()->m_rollbackDescription;
}
/*!
@@ -881,7 +813,7 @@ QString QOtaClient::rollbackDescription() const
*/
QString QOtaClient::rollbackRevision() const
{
- return d_func()->revision(QOtaClientPrivate::QueryTarget::Rollback);
+ return d_func()->m_rollbackRev;
}
/*!
@@ -895,7 +827,7 @@ QString QOtaClient::rollbackRevision() const
*/
QByteArray QOtaClient::rollbackInfo() const
{
- return d_func()->info(QOtaClientPrivate::QueryTarget::Rollback);
+ return d_func()->m_rollbackInfo;
}
QT_END_NAMESPACE
diff --git a/src/lib/qotaclient_p.h b/src/lib/qotaclient_p.h
index dd9b6b0..58625f0 100644
--- a/src/lib/qotaclient_p.h
+++ b/src/lib/qotaclient_p.h
@@ -49,14 +49,6 @@ class QOtaClientPrivate : public QObject
Q_OBJECT
Q_DECLARE_PUBLIC(QOtaClient)
public:
- enum class QueryTarget
- {
- Booted,
- Remote,
- Rollback
- };
- Q_ENUM(QueryTarget)
-
QOtaClientPrivate(QOtaClient *client);
virtual ~QOtaClientPrivate();
@@ -69,11 +61,6 @@ public:
void remoteInfoChanged(const QString &remoteRev, const QJsonDocument &remoteInfo);
void defaultRevisionChanged(const QString &defaultRevision);
- QString version(QueryTarget target) const;
- QString description(QueryTarget target) const;
- QString revision(QueryTarget target) const;
- QByteArray info(QueryTarget target) const;
-
bool isReady() const;
// members
diff --git a/src/lib/qotaclientasync.cpp b/src/lib/qotaclientasync.cpp
index c62fdd0..aadd4bf 100644
--- a/src/lib/qotaclientasync.cpp
+++ b/src/lib/qotaclientasync.cpp
@@ -110,25 +110,10 @@ QString QOtaClientAsync::ostree(const QString &command, bool *ok, bool updateSta
return out;
}
-QJsonDocument QOtaClientAsync::info(QOtaClientPrivate::QueryTarget target, bool *ok, const QString &rev)
+QJsonDocument QOtaClientAsync::infoFromRev(const QString &rev, bool *ok)
{
QString jsonData;
- switch (target) {
- case QOtaClientPrivate::QueryTarget::Booted: {
- QFile metadata(QStringLiteral("/usr/etc/qt-ota.json"));
- if (metadata.open(QFile::ReadOnly))
- jsonData = QString::fromLatin1(metadata.readAll());
- break;
- }
- case QOtaClientPrivate::QueryTarget::Remote:
- jsonData = ostree(QString(QStringLiteral("ostree cat %1 /usr/etc/qt-ota.json")).arg(rev), ok);
- break;
- case QOtaClientPrivate::QueryTarget::Rollback:
- jsonData = ostree(QString(QStringLiteral("ostree cat %1 /usr/etc/qt-ota.json")).arg(rev), ok);
- break;
- default:
- Q_UNREACHABLE();
- }
+ jsonData = ostree(QString(QStringLiteral("ostree cat %1 /usr/etc/qt-ota.json")).arg(rev), ok);
if (jsonData.isEmpty())
return QJsonDocument();
@@ -160,7 +145,7 @@ void QOtaClientAsync::_initialize()
// prepopulate with what we think is on the remote server (head of the local repo)
QString remoteRev = ostree(QStringLiteral("ostree rev-parse linux/qt"), &ok);
QJsonDocument remoteInfo;
- if (ok) remoteInfo = info(QOtaClientPrivate::QueryTarget::Remote, &ok, remoteRev);
+ if (ok) remoteInfo = infoFromRev(remoteRev, &ok);
if (!ok) {
emit initializeFinished(false);
return;
@@ -169,7 +154,7 @@ void QOtaClientAsync::_initialize()
OstreeDeployment *bootedDeployment = (OstreeDeployment*)ostree_sysroot_get_booted_deployment (m_sysroot);
QString bootedRev = QLatin1String(ostree_deployment_get_csum (bootedDeployment));
- QJsonDocument bootedInfo = info(QOtaClientPrivate::QueryTarget::Booted, &ok);
+ QJsonDocument bootedInfo = infoFromRev(bootedRev, &ok);
emit initializeFinished(ok, bootedRev, bootedInfo);
}
@@ -181,7 +166,7 @@ void QOtaClientAsync::_fetchRemoteInfo()
ostree(QStringLiteral("ostree pull --commit-metadata-only --disable-static-deltas qt-os linux/qt"), &ok);
if (ok) ostree(QStringLiteral("ostree pull --subpath=/usr/etc/qt-ota.json qt-os linux/qt"), &ok);
if (ok) remoteRev = ostree(QStringLiteral("ostree rev-parse linux/qt"), &ok);
- if (ok) remoteInfo = info(QOtaClientPrivate::QueryTarget::Remote, &ok, remoteRev);
+ if (ok) remoteInfo = infoFromRev(remoteRev, &ok);
if (ok) emit remoteInfoChanged(remoteRev, remoteInfo);
emit fetchRemoteInfoFinished(ok);
}
@@ -254,7 +239,7 @@ void QOtaClientAsync::handleRevisionChanges()
OstreeDeployment *rollbackDeployment = (OstreeDeployment*)deployments->pdata[index];
QString rollbackRev(QLatin1String(ostree_deployment_get_csum (rollbackDeployment)));
bool ok = true;
- QJsonDocument rollbackInfo = info(QOtaClientPrivate::QueryTarget::Rollback, &ok, rollbackRev);
+ QJsonDocument rollbackInfo = infoFromRev(rollbackRev, &ok);
emit rollbackInfoChanged(rollbackRev, rollbackInfo, deployments->len);
}
}
diff --git a/src/lib/qotaclientasync_p.h b/src/lib/qotaclientasync_p.h
index bf35c0f..db7a02c 100644
--- a/src/lib/qotaclientasync_p.h
+++ b/src/lib/qotaclientasync_p.h
@@ -72,7 +72,7 @@ signals:
void defaultRevisionChanged(const QString &defaultRevision);
protected:
- QJsonDocument info(QOtaClientPrivate::QueryTarget target, bool *ok, const QString &rev = QString());
+ QJsonDocument infoFromRev(const QString &rev, bool *ok);
int rollbackIndex();
void handleRevisionChanges();
bool emitGError(GError *error);