diff --git a/debian/control b/debian/control
index c5875e0a..294a664c 100644
--- a/debian/control
+++ b/debian/control
@@ -950,22 +950,6 @@ Description: nymea.io plugin for Sonos smart speakers
This package will install the nymea.io plugin for Sonos smart speakers
-Package: nymea-plugin-snapd
-Architecture: any
-Depends: ${shlibs:Depends},
- ${misc:Depends},
- nymea-plugins-translations,
-Replaces: guh-plugin-snapd
-Description: nymea.io plugin for snapd
- The nymea daemon is a plugin based IoT (Internet of Things) server. The
- server works like a translator for devices, things and services and
- allows them to interact.
- With the powerful rule engine you are able to connect any device available
- in the system and create individual scenes and behaviors for your environment.
- .
- This package will install the nymea.io plugin for snapd
-
-
Package: nymea-plugin-sunposition
Architecture: any
Depends: ${misc:Depends},
@@ -1274,7 +1258,6 @@ Section: libs
Architecture: all
Depends: nymea-plugins,
nymea-plugin-simulation,
- nymea-plugin-snapd,
nymea-plugins-maker,
nymea-plugins-merkurboard,
Replaces: guh-plugins-all
diff --git a/debian/nymea-plugin-snapd.install.in b/debian/nymea-plugin-snapd.install.in
deleted file mode 100644
index 84739554..00000000
--- a/debian/nymea-plugin-snapd.install.in
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationpluginsnapd.so
diff --git a/nymea-plugins.pro b/nymea-plugins.pro
index 78d4ee71..f326f4a8 100644
--- a/nymea-plugins.pro
+++ b/nymea-plugins.pro
@@ -51,7 +51,6 @@ PLUGIN_DIRS = \
senic \
serialportcommander \
simulation \
- snapd \
somfytahoma \
sonos \
sunposition \
diff --git a/snapd/README.md b/snapd/README.md
deleted file mode 100644
index c471f907..00000000
--- a/snapd/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Snapd
-
-This plugin allows to interact with the snap daemon in order to trigger updates, change the channel of snaps check if there are snaps which could be refreshed.
-The plugin allows also to change the refresh schedule of snapd.
diff --git a/snapd/integrationpluginsnapd.cpp b/snapd/integrationpluginsnapd.cpp
deleted file mode 100644
index 3c13902c..00000000
--- a/snapd/integrationpluginsnapd.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include "integrationpluginsnapd.h"
-#include "integrations/thing.h"
-#include "plugininfo.h"
-#include "network/networkaccessmanager.h"
-
-IntegrationPluginSnapd::IntegrationPluginSnapd()
-{
-
-}
-
-IntegrationPluginSnapd::~IntegrationPluginSnapd()
-{
- hardwareManager()->pluginTimerManager()->unregisterTimer(m_refreshTimer);
- hardwareManager()->pluginTimerManager()->unregisterTimer(m_updateTimer);
-}
-
-void IntegrationPluginSnapd::init()
-{
- // Initialize plugin configurations
- m_advancedMode = configValue(snapdPluginAdvancedModeParamTypeId).toBool();
- m_refreshTime = configValue(snapdPluginRefreshScheduleParamTypeId).toInt();
- connect(this, &IntegrationPluginSnapd::configValueChanged, this, &IntegrationPluginSnapd::onPluginConfigurationChanged);
-
- // Refresh timer for snapd checks
- m_refreshTimer = hardwareManager()->pluginTimerManager()->registerTimer(2);
- connect(m_refreshTimer, &PluginTimer::timeout, this, &IntegrationPluginSnapd::onRefreshTimer);
-
- // Check all 4 hours if there is an update available
- m_updateTimer = hardwareManager()->pluginTimerManager()->registerTimer(14400);
- connect(m_updateTimer, &PluginTimer::timeout, this, &IntegrationPluginSnapd::onUpdateTimer);
-}
-
-void IntegrationPluginSnapd::startMonitoringAutoThings()
-{
- // Check if we already have a controller and if snapd is available
- if (m_snapdControl && !m_snapdControl->available()) {
- return;
- }
-
- // Check if we already have a thing for the snapd control
- bool deviceAlreadyExists = false;
- foreach (Thing *thing, myThings()) {
- if (thing->thingClassId() == snapdControlThingClassId) {
- deviceAlreadyExists = true;
- }
- }
-
- // Add thing if there isn't already one
- if (!deviceAlreadyExists) {
- ThingDescriptor descriptor(snapdControlThingClassId, "Update manager");
- emit autoThingsAppeared({descriptor});
- }
-}
-
-void IntegrationPluginSnapd::postSetupThing(Thing *thing)
-{
- if (m_snapdControl && m_snapdControl->thing() == thing) {
- m_snapdControl->update();
- }
-}
-
-void IntegrationPluginSnapd::thingRemoved(Thing *thing)
-{
- if (thing->thingClassId() == snapdControlThingClassId) {
- qCWarning(dcSnapd()) << "User deleted snapd control.";
-
- // Clean up old thing
- if (m_snapdControl) {
- delete m_snapdControl;
- m_snapdControl = nullptr;
- }
-
- // Respawn thing immediately
- startMonitoringAutoThings();
-
- } else if (thing->thingClassId() == snapThingClassId) {
- if (m_snapDevices.values().contains(thing)) {
- QString snapId = m_snapDevices.key(thing);
- m_snapDevices.remove(snapId);
- }
- }
-}
-
-void IntegrationPluginSnapd::setupThing(ThingSetupInfo *info)
-{
- Thing *thing = info->thing();
- qCDebug(dcSnapd()) << "Setup" << thing->name() << thing->params();
-
- if (thing->thingClassId() == snapdControlThingClassId) {
- if (m_snapdControl) {
- delete m_snapdControl;
- m_snapdControl = nullptr;
- }
-
- m_snapdControl = new SnapdControl(thing, this);
- m_snapdControl->setPreferredRefreshTime(configValue(snapdPluginRefreshScheduleParamTypeId).toInt());
- connect(m_snapdControl, &SnapdControl::snapListUpdated, this, &IntegrationPluginSnapd::onSnapListUpdated);
-
- } else if (thing->thingClassId() == snapThingClassId) {
- thing->setName(QString("%1").arg(thing->paramValue(snapThingNameParamTypeId).toString()));
- m_snapDevices.insert(thing->paramValue(snapThingIdParamTypeId).toString(), thing);
- }
-
- info->finish(Thing::ThingErrorNoError);
-}
-
-void IntegrationPluginSnapd::executeAction(ThingActionInfo *info)
-{
- Thing *thing = info->thing();
- Action action = info->action();
-
- if (thing->thingClassId() == snapdControlThingClassId) {
-
- if (!m_snapdControl) {
- qCDebug(dcSnapd()) << "There is currently no snapd controller.";
- return info->finish(Thing::ThingErrorHardwareFailure);
- }
-
- if (!m_snapdControl->connected()) {
- qCDebug(dcSnapd()) << "Snapd controller not connected to to backend.";
- return info->finish(Thing::ThingErrorHardwareFailure);
- }
-
- if (action.actionTypeId() == snapdControlStartUpdateActionTypeId) {
- m_snapdControl->snapRefresh();
- return info->finish(Thing::ThingErrorNoError);
- } else if (action.actionTypeId() == snapdControlCheckUpdatesActionTypeId) {
- m_snapdControl->checkForUpdates();
- return info->finish(Thing::ThingErrorNoError);
- }
-
- return info->finish(Thing::ThingErrorActionTypeNotFound);
-
- } else if (thing->thingClassId() == snapThingClassId) {
-
- if (!m_snapdControl) {
- qCDebug(dcSnapd()) << "There is currently no snapd controller.";
- return info->finish(Thing::ThingErrorHardwareFailure);
- }
-
- if (!m_snapdControl->connected()) {
- qCDebug(dcSnapd()) << "Snapd controller not connected to the backend.";
- return info->finish(Thing::ThingErrorHardwareFailure);
- }
-
- if (action.actionTypeId() == snapChannelActionTypeId) {
- QString snapName = thing->paramValue(snapThingNameParamTypeId).toString();
- m_snapdControl->changeSnapChannel(snapName, action.param(snapChannelActionChannelParamTypeId).value().toString());
- return info->finish(Thing::ThingErrorNoError);
- } else if (action.actionTypeId() == snapRevertActionTypeId) {
- QString snapName = thing->paramValue(snapThingNameParamTypeId).toString();
- m_snapdControl->snapRevert(snapName);
- return info->finish(Thing::ThingErrorNoError);
- }
-
- return info->finish(Thing::ThingErrorActionTypeNotFound);
- }
-
- return info->finish(Thing::ThingErrorThingClassNotFound);
-}
-
-void IntegrationPluginSnapd::onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value)
-{
- qCDebug(dcSnapd()) << "Plugin configuration changed";
-
- // Check advanced mode
- if (paramTypeId == snapdPluginAdvancedModeParamTypeId) {
- qCDebug(dcSnapd()) << "Advanced mode" << (value.toBool() ? "enabled." : "disabled.");
- m_advancedMode = value.toBool();
-
- // If advanced mode disabled, clean up all snap devices
- if (!m_advancedMode) {
- foreach (const QString deviceSnapId, m_snapDevices.keys()) {
- Thing *thing = m_snapDevices.take(deviceSnapId);
- qCDebug(dcSnapd()) << "Remove thing for snap" << thing->paramValue(snapThingNameParamTypeId).toString();
- emit autoThingDisappeared(thing->id());
- }
- } else {
- if (!m_snapdControl)
- return;
-
- m_snapdControl->update();
- }
- }
-
- // Check refresh schedule
- if (paramTypeId == snapdPluginRefreshScheduleParamTypeId) {
- if (!m_snapdControl)
- return;
-
- m_refreshTime = value.toInt();
- qCDebug(dcSnapd()) << "Refresh schedule start time" << QTime(m_refreshTime, 0, 0).toString("hh:mm");
- m_snapdControl->setPreferredRefreshTime(m_refreshTime);
- }
-}
-
-void IntegrationPluginSnapd::onRefreshTimer()
-{
- if (!m_snapdControl) {
- startMonitoringAutoThings();
- return;
- }
-
- m_snapdControl->update();
-}
-
-void IntegrationPluginSnapd::onUpdateTimer()
-{
- if (!m_snapdControl)
- return;
-
- m_snapdControl->checkForUpdates();
-}
-
-void IntegrationPluginSnapd::onSnapListUpdated(const QVariantList &snapList)
-{
- // Check for new snap devices only in advanced mode
- if (!m_advancedMode)
- return;
-
- // Collect list of snap id's from snapList for remove checking
- QStringList snapIdList;
-
- // Check if we have to create a new thing
- foreach (const QVariant &snapVariant, snapList) {
- QVariantMap snapMap = snapVariant.toMap();
- snapIdList.append(snapMap.value("id").toString());
- // If there is no thing for this snap yet
- if (!m_snapDevices.contains(snapMap.value("id").toString())) {
- ThingDescriptor descriptor(snapThingClassId, QString("Snap %1").arg(snapMap.value("name").toString()));
- ParamList params;
- params.append(Param(snapThingNameParamTypeId, snapMap.value("name")));
- params.append(Param(snapThingIdParamTypeId, snapMap.value("id")));
- params.append(Param(snapThingSummaryParamTypeId, snapMap.value("summary")));
- params.append(Param(snapThingDescriptionParamTypeId, snapMap.value("description")));
- params.append(Param(snapThingDeveloperParamTypeId, snapMap.value("developer")));
- descriptor.setParams(params);
-
- emit autoThingsAppeared({descriptor});
- } else {
- // Update the states
- Thing *thing = m_snapDevices.value(snapMap.value("id").toString(), nullptr);
- if (!thing) {
- qCWarning(dcSnapd()) << "Holding invalid snap thing. This should never happen. Please report a bug if you see this message.";
- continue;
- }
-
- thing->setStateValue(snapChannelStateTypeId, snapMap.value("channel").toString());
- thing->setStateValue(snapVersionStateTypeId, snapMap.value("version").toString());
- thing->setStateValue(snapRevisionStateTypeId, snapMap.value("revision").toString());
- }
- }
-
- // Check if we have to remove a thing
- foreach (const QString deviceSnapId, m_snapDevices.keys()) {
- if (!snapIdList.contains(deviceSnapId)) {
- Thing *thing = m_snapDevices.take(deviceSnapId);
- qCDebug(dcSnapd()) << "The snap" << thing->paramValue(snapThingNameParamTypeId).toString() << "is not installed any more.";
- emit autoThingDisappeared(thing->id());
- }
- }
-}
diff --git a/snapd/integrationpluginsnapd.h b/snapd/integrationpluginsnapd.h
deleted file mode 100644
index d0b85975..00000000
--- a/snapd/integrationpluginsnapd.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef INTEGRATIONPLUGINSNAPD_H
-#define INTEGRATIONPLUGINSNAPD_H
-
-#include "integrations/integrationplugin.h"
-#include "plugintimer.h"
-
-#include
-#include
-#include
-#include
-
-#include "snapdcontrol.h"
-
-
-class IntegrationPluginSnapd: public IntegrationPlugin {
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationpluginsnapd.json")
- Q_INTERFACES(IntegrationPlugin)
-
-public:
- explicit IntegrationPluginSnapd();
- ~IntegrationPluginSnapd();
-
- void init() override;
- void startMonitoringAutoThings() override;
- void postSetupThing(Thing *thing) override;
- void thingRemoved(Thing *thing) override;
-
- void setupThing(ThingSetupInfo *info) override;
- void executeAction(ThingActionInfo *info) override;
-
-private:
- SnapdControl *m_snapdControl = nullptr;
- PluginTimer *m_refreshTimer = nullptr;
- PluginTimer *m_updateTimer = nullptr;
-
- bool m_advancedMode = false;
- int m_refreshTime = 2;
-
- // Snap list for faster access (snap id, thing)
- QHash m_snapDevices;
-
-private slots:
- void onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value);
- void onRefreshTimer();
- void onUpdateTimer();
- void onSnapListUpdated(const QVariantList &snapList);
-
-};
-
-#endif // INTEGRATIONPLUGINSNAPD_H
diff --git a/snapd/integrationpluginsnapd.json b/snapd/integrationpluginsnapd.json
deleted file mode 100644
index e9b2bef2..00000000
--- a/snapd/integrationpluginsnapd.json
+++ /dev/null
@@ -1,193 +0,0 @@
-{
- "name": "Snapd",
- "displayName": "Snapd",
- "id": "b82bce59-59bf-48b3-b781-54a6f45800f3",
- "paramTypes": [
- {
- "id": "017fe4c5-fc41-41fe-8e67-08fdaccb89ea",
- "name": "advancedMode",
- "displayName": "Advanced mode",
- "type": "bool",
- "defaultValue": false
- },
- {
- "id": "d2e697d1-9a68-4666-bf40-8d70fa694eec",
- "name": "refreshSchedule",
- "displayName": "Automatic daily refresh schedule",
- "type": "int",
- "unit": "Hours",
- "minValue": 0,
- "maxValue": 23,
- "defaultValue": 2
- }
- ],
- "vendors": [
- {
- "displayName": "Canonical",
- "name": "canonical",
- "id": "60582ddf-32ea-4fcd-a6f2-f3beaaf21517",
- "thingClasses": [
- {
- "id": "d90cda58-4d8c-4b7f-a982-38e56a95b72a",
- "name": "snapdControl",
- "displayName": "Update manager",
- "createMethods": [ "auto" ],
- "interfaces": [ "system" ],
- "paramTypes": [ ],
- "actionTypes": [
- {
- "id": "45626b75-f09d-4dd1-b6c4-ee33201b47b0",
- "name": "startUpdate",
- "displayName": "Start update",
- "paramTypes": [ ]
- },
- {
- "id": "4738f2c9-666e-45b9-91d3-7bcbf722b669",
- "name": "checkUpdates",
- "displayName": "Check for updates",
- "paramTypes": [ ]
- }
- ],
- "stateTypes": [
- {
- "id": "6b662b3e-fd12-4f24-be77-aec066f16d8c",
- "name": "snapdAvailable",
- "displayName": "Update manager available",
- "displayNameEvent": "Update manager available changed",
- "type": "bool",
- "defaultValue": false
- },
- {
- "id": "a6b1d24b-d523-4516-9bce-5b467e5e09b2",
- "name": "updateAvailable",
- "displayName": "System update available",
- "displayNameEvent": "System update available changed",
- "type": "bool",
- "cached": false,
- "defaultValue": false
- },
- {
- "id": "01ca7a22-5607-4c5e-a465-a2ae7e8b529c",
- "name": "updateRunning",
- "displayName": "System update running",
- "displayNameEvent": "System update running changed",
- "type": "bool",
- "defaultValue": false
- },
- {
- "id": "c671545a-6bde-4c08-8e37-0d256841a3a5",
- "name": "lastUpdateTime",
- "displayName": "Last automatic system update",
- "displayNameEvent": "Last automatic system update time changed",
- "unit": "UnixTime",
- "type": "int",
- "defaultValue": 0
- },
- {
- "id": "122c2423-a1d9-400f-80f8-b1f798975914",
- "name": "nextUpdateTime",
- "displayName": "Next automatic system update",
- "displayNameEvent": "Next automatic system update time changed",
- "unit": "UnixTime",
- "type": "int",
- "defaultValue": 0
- },
- {
- "id": "4987aca3-3916-4cb3-938f-df6c99d04dbf",
- "name": "status",
- "displayName": "Status",
- "displayNameEvent": "Status changed",
- "type": "QString",
- "defaultValue": "-"
- }
- ]
- },
- {
- "id": "ff0840d7-fcfc-4403-9d9f-301610d5a437",
- "name": "snap",
- "displayName": "Snap",
- "createMethods": [ "auto" ],
- "interfaces": ["system"],
- "paramTypes": [
- {
- "id": "4f38614d-8be0-48dc-a24d-cee9ff1f2a89",
- "name": "name",
- "displayName": "Name",
- "type": "QString",
- "defaultValue": "-"
- },
- {
- "id": "9afb98fb-f717-4f4c-8009-1a6514054c5f",
- "name": "id",
- "displayName": "ID",
- "type": "QString",
- "defaultValue": "-"
- },
- {
- "id": "12b9a65f-970b-49b5-b1d0-1625fc6d8758",
- "name": "summary",
- "displayName": "Summary",
- "type": "QString",
- "defaultValue": "-"
- },
- {
- "id": "fe24c61b-e154-4259-b7ca-6f0602e9d1c3",
- "name": "description",
- "displayName": "Description",
- "type": "QString",
- "defaultValue": "-"
- },
- {
- "id": "76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5",
- "name": "developer",
- "displayName": "Developer",
- "type": "QString",
- "defaultValue": "-"
- }
- ],
- "actionTypes": [
- {
- "id": "e061dee6-62fc-45cc-9c9f-403c2be52939",
- "name": "revert",
- "displayName": "Rollback to previous version"
- }
- ],
- "stateTypes": [
- {
- "id": "7be2b61e-3f59-4b92-b2bb-50d027bb92ff",
- "name": "channel",
- "displayName": "Channel",
- "displayNameEvent": "Channel changed",
- "displayNameAction": "Set channel",
- "type": "QString",
- "defaultValue": "stable",
- "writable": true,
- "possibleValues": [
- "stable",
- "candidate",
- "beta",
- "edge"
- ]
- },
- {
- "id": "532a95f3-db29-427e-bb32-d5a22029e586",
- "name": "version",
- "displayName": "Version",
- "displayNameEvent": "Version changed",
- "type": "QString",
- "defaultValue": "-"
- },
- {
- "id": "f26a6404-e011-11e7-9224-2350048461eb",
- "name": "revision",
- "displayName": "Revision",
- "displayNameEvent": "Revision changed",
- "type": "QString",
- "defaultValue": "-"
- }
- ]
- }
- ]
- }
- ]
-}
diff --git a/snapd/meta.json b/snapd/meta.json
deleted file mode 100644
index 2ecfbde7..00000000
--- a/snapd/meta.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "title": "Snapd",
- "tagline": "Control the Snap daemon.",
- "icon": "snapd.svg",
- "stability": "consumer",
- "offline": true,
- "technologies": [
- "cloud"
- ],
- "categories": [
- "tool"
- ]
-}
diff --git a/snapd/snapd.pro b/snapd/snapd.pro
deleted file mode 100644
index c437f433..00000000
--- a/snapd/snapd.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-include(../plugins.pri)
-
-TARGET = $$qtLibraryTarget(nymea_integrationpluginsnapd)
-
-QT += network
-
-SOURCES += \
- integrationpluginsnapd.cpp \
- snapdcontrol.cpp \
- snapdconnection.cpp \
- snapdreply.cpp
-
-HEADERS += \
- integrationpluginsnapd.h \
- snapdcontrol.h \
- snapdconnection.h \
- snapdreply.h
diff --git a/snapd/snapd.svg b/snapd/snapd.svg
deleted file mode 100644
index b3d11790..00000000
--- a/snapd/snapd.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/snapd/snapdconnection.cpp b/snapd/snapdconnection.cpp
deleted file mode 100644
index 40664f52..00000000
--- a/snapd/snapdconnection.cpp
+++ /dev/null
@@ -1,386 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include "snapdconnection.h"
-#include "extern-plugininfo.h"
-
-#include
-#include
-#include
-
-
-SnapdConnection::SnapdConnection(QObject *parent) :
- QLocalSocket(parent)
-{
- connect(this, &QLocalSocket::connected, this, &SnapdConnection::onConnected);
- connect(this, &QLocalSocket::disconnected, this, &SnapdConnection::onDisconnected);
- connect(this, &QLocalSocket::readyRead, this, &SnapdConnection::onReadyRead);
- connect(this, &QLocalSocket::stateChanged, this, &SnapdConnection::onStateChanged);
- connect(this, SIGNAL(error(QLocalSocket::LocalSocketError)), this, SLOT(onError(QLocalSocket::LocalSocketError)));
-}
-
-SnapdConnection::~SnapdConnection()
-{
- close();
-}
-
-SnapdReply *SnapdConnection::get(const QString &path, QObject *parent)
-{
- SnapdReply *reply = new SnapdReply(parent);
- reply->setRequestPath(path);
- reply->setRequestMethod("GET");
- reply->setRequestRawMessage(createRequestHeader("GET", path));
-
- // Enqueue the new reply
- m_replyQueue.enqueue(reply);
- sendNextRequest();
-
- // Note: the caller owns the object now
- return reply;
-}
-
-SnapdReply *SnapdConnection::post(const QString &path, const QByteArray &payload, QObject *parent)
-{
- SnapdReply *reply = new SnapdReply(parent);
- reply->setRequestPath(path);
- reply->setRequestMethod("POST");
- QByteArray header = createRequestHeader("POST", path, payload);
- reply->setRequestRawMessage(header.append(payload));
-
- // Enqueue the new reply
- m_replyQueue.enqueue(reply);
- sendNextRequest();
-
- // Note: the caller owns the object now
- return reply;
-}
-
-SnapdReply *SnapdConnection::put(const QString &path, const QByteArray &payload, QObject *parent)
-{
- SnapdReply *reply = new SnapdReply(parent);
- reply->setRequestPath(path);
- reply->setRequestMethod("PUT");
- QByteArray header = createRequestHeader("PUT", path, payload);
- reply->setRequestRawMessage(header.append(payload));
-
- // Enqueue the new reply
- m_replyQueue.enqueue(reply);
- sendNextRequest();
-
- // Note: the caller owns the object now
- return reply;
-}
-
-bool SnapdConnection::isConnected() const
-{
- return m_connected;
-}
-
-void SnapdConnection::setConnected(const bool &connected)
-{
- if (m_connected == connected)
- return;
-
- m_connected = connected;
- emit connectedChanged(m_connected);
-
- // Clean up replies of disconnected
- if (!m_connected) {
- // Clean up current reply
- if (m_currentReply) {
- m_currentReply->setFinished(false);
- m_currentReply = nullptr;
- }
-
- // Clean up queue
- while (!m_replyQueue.isEmpty()) {
- QPointer reply = m_replyQueue.dequeue();
- if (!reply.isNull()) {
- reply->deleteLater();
- }
- }
- } else {
- // Start with a clean parsing
- m_payload.clear();
- m_header.clear();
- m_chuncked = false;
- }
-}
-
-QByteArray SnapdConnection::createRequestHeader(const QString &method, const QString &path, const QByteArray &payload)
-{
- QByteArray request;
- request.append(QString("%1 %2 HTTP/1.1\r\n").arg(method).arg(path).toUtf8());
- request.append("Host: http\r\n");
- request.append("Accept: *\r\n");
- if (!payload.isEmpty()) {
- request.append("Content-Type: application/json\r\n");
- request.append(QString("Content-Length: %1\r\n").arg(payload.count()).toUtf8());
- }
-
- request.append("\r\n");
- return request;
-}
-
-QByteArray SnapdConnection::getChunckedPayload(const QByteArray &payload)
-{
- // Read line by line
- QStringList payloadLines = QString::fromUtf8(payload).split(QRegExp("\r\n"));
- if (payloadLines.count() < 4) {
- qCWarning(dcSnapd()) << "Chuncked payload invalid linecount" << payloadLines.count();
- return QByteArray();
- }
-
- int payloadSize = payloadLines.at(2).toInt(0, 16);
-
- if (m_debug)
- qCDebug(dcSnapd()) << "Payload size" << payloadSize;
-
- if (payloadLines.at(3).toUtf8().size() != payloadSize) {
- qCWarning(dcSnapd()) << "Invalid payload size" << payloadLines.at(3).toUtf8().size() << "!=" << payloadSize;
- return QByteArray();
- }
-
- // Return just the payload
- return payloadLines.at(3).toUtf8();
-}
-
-void SnapdConnection::processData()
-{
- if (!m_currentReply) {
- qCWarning(dcSnapd()) << "Data received without current reply" << m_payload;
- return;
- }
-
- if (m_header.isEmpty()) {
- qCWarning(dcSnapd()) << "Could not process data. There is no header.";
- m_currentReply->setFinished();
- return;
- }
-
- // Get the raw payload
- QByteArray payloadData;
- if (m_chuncked) {
- payloadData = getChunckedPayload(m_payload);
- } else {
- payloadData = m_payload;
- }
-
- // Check if there are data to process
- if (m_payload.isEmpty()) {
- qCWarning(dcSnapd()) << "Could not process data. There is no payload to process.";
- return;
- }
-
- // Parse header
- QHash parsedHeader;
- QStringList headerLines = QString::fromUtf8(m_header).split(QRegExp("\r\n"));
-
- // Read status line
- QString statusLine = headerLines.takeFirst();
- QStringList statusLineTokens = statusLine.split(QRegExp("[ \r\n][ \r\n]*"));
- if (statusLineTokens.count() < 3) {
- qCWarning(dcSnapd()) << "Could not parse HTTP status line:" << statusLine;
- return;
- }
-
- bool statusCodeOk = false;
- int statusCode = statusLineTokens.at(1).simplified().toInt(&statusCodeOk);
- if (!statusCodeOk) {
- qCWarning(dcSnapd()) << "Could not parse HTTP status code:" << statusLineTokens.at(1);
- return;
- }
-
- QString statusMessage;
- for (int i = 2; i < statusLineTokens.count(); i++) {
- statusMessage.append(statusLineTokens.at(i).simplified());
- if (i < statusLineTokens.count() -1) {
- statusMessage.append(" ");
- }
- }
-
- // Verify header formating
- foreach (const QString &line, headerLines) {
- if (!line.contains(":")) {
- qCWarning(dcSnapd()) << "Invalid HTTP header. Missing \":\" in line" << line;
- return;
- }
-
- int index = line.indexOf(":");
- QString key = line.left(index).toUtf8().simplified();
- QString value = line.right(line.count() - index - 1).toUtf8().simplified();
- //qCDebug(dcSnapd()) << " Key:" << key << "Value:" << value;
- parsedHeader.insert(key, value);
- }
-
- // Parse payload
- QJsonParseError error;
- QJsonDocument jsonDoc = QJsonDocument::fromJson(payloadData, &error);
- if (error.error != QJsonParseError::NoError) {
- qCWarning(dcSnapd()) << "Got invalid JSON data from snapd:" << error.offset << error.errorString();
- qCWarning(dcSnapd()) << qUtf8Printable(payloadData);
- return;
- }
-
- if (m_debug)
- qCDebug(dcSnapd()) << "<--" << m_currentReply->requestPath() << statusCode << statusMessage;
-
- // Fill reply
- m_currentReply->setStatusCode(statusCode);
- m_currentReply->setStatusMessage(statusMessage);
- m_currentReply->setHeader(parsedHeader);
- m_currentReply->setDataMap(jsonDoc.toVariant().toMap());
- m_currentReply->setFinished();
-
- // Current data stream finished, reset for new messages
- m_payload.clear();
- m_header.clear();
- m_chuncked = false;
-
- // Ready for next reply
- m_currentReply = nullptr;
- sendNextRequest();
-}
-
-void SnapdConnection::sendNextRequest()
-{
- // Check if nothing else to do
- if (m_replyQueue.isEmpty())
- return;
-
- // Check a reply is currently pending
- if (m_currentReply)
- return;
-
- // Dequeue and send next reply
- SnapdReply *reply = m_replyQueue.dequeue();
- m_currentReply = reply;
-
- if (m_debug)
- qCDebug(dcSnapd()) << "-->" << reply->requestMethod() << reply->requestPath();
-
- // Send current reply request. If write failes, the reply is finished invalid and the owner has to delete it
- qint64 bytesWritten = write(reply->requestRawMessage());
- if (bytesWritten < 0) {
- qCWarning(dcSnapd()) << "Could not write request data" << reply->requestMethod() << reply->requestMethod();
- m_currentReply->setFinished(false);
- m_currentReply = nullptr;
- sendNextRequest();
- }
-}
-
-void SnapdConnection::onConnected()
-{
- setConnected(true);
-}
-
-void SnapdConnection::onDisconnected()
-{
- setConnected(false);
-}
-
-void SnapdConnection::onError(const QLocalSocket::LocalSocketError &socketError)
-{
- qCWarning(dcSnapd()) << "Socket error" << socketError << errorString();
-}
-
-void SnapdConnection::onStateChanged(const QLocalSocket::LocalSocketState &state)
-{
- switch (state) {
- case QLocalSocket::UnconnectedState:
- qCDebug(dcSnapd()) << "Disconnected from snapd.";
- break;
- case QLocalSocket::ConnectingState:
- qCDebug(dcSnapd()) << "Connecting to snapd...";
- break;
- case QLocalSocket::ConnectedState:
- qCDebug(dcSnapd()) << "Connected to snapd.";
- break;
- case QLocalSocket::ClosingState:
- qCDebug(dcSnapd()) << "Closing connection to snapd.";
- break;
- default:
- break;
- }
-}
-
-void SnapdConnection::onReadyRead()
-{
- QByteArray data = readAll();
-
- if (m_debug)
- qCDebug(dcSnapd()) << "Data received:" << data;
-
- // If we are not appending to a reply
- if (!m_chuncked) {
-
- // Parse header
- int headerIndex = data.indexOf("\r\n\r\n");
- if (headerIndex < 0) {
- qCWarning(dcSnapd()) << "Invalid response format. Could not find header/payload mark.";
- return;
- }
-
- m_header = data.left(headerIndex);
-
- if (m_debug)
- qCDebug(dcSnapd()) << "Header:" << m_header;
-
- QByteArray payload = data.right(data.length() - (headerIndex));
-
- if (m_debug)
- qCDebug(dcSnapd()) << "Payload" << payload;
-
- // Check if this message is chuncked
- if (m_header.contains("chunked")) {
-
- if (m_debug)
- qCDebug(dcSnapd()) << "Chuncked message receiving";
-
- m_chuncked = true;
- m_payload.append(payload);
-
- if (m_payload.endsWith("\r\n0\r\n\r\n")) {
- // Chuncked message finished
- processData();
- }
- } else {
- // Not chucked
- m_payload = payload;
- processData();
- }
- } else {
- m_payload.append(data);
- if (m_payload.endsWith("\r\n0\r\n\r\n")) {
- // Chuncked message finished
- processData();
- }
- }
-}
diff --git a/snapd/snapdconnection.h b/snapd/snapdconnection.h
deleted file mode 100644
index f27d6318..00000000
--- a/snapd/snapdconnection.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef SNAPDCONNECTION_H
-#define SNAPDCONNECTION_H
-
-#include
-#include
-#include
-
-#include "snapdreply.h"
-
-class SnapdConnection : public QLocalSocket
-{
- Q_OBJECT
-public:
- explicit SnapdConnection(QObject *parent = nullptr);
- ~SnapdConnection();
-
- SnapdReply *get(const QString &path, QObject *parent);
- SnapdReply *post(const QString &path, const QByteArray &payload, QObject *parent);
- SnapdReply *put(const QString &path, const QByteArray &payload, QObject *parent);
-
- bool isConnected() const;
-
-private:
- bool m_chuncked = false;
-
- QByteArray m_header;
- QByteArray m_payload;
-
- bool m_connected = false;
- bool m_debug = false;
-
- SnapdReply *m_currentReply = nullptr;
- QQueue m_replyQueue;
-
- void setConnected(const bool &connected);
-
- // Helper methods
- QByteArray createRequestHeader(const QString &method, const QString &path, const QByteArray &payload = QByteArray());
- QByteArray getChunckedPayload(const QByteArray &payload);
-
- void processData();
- void sendNextRequest();
-
-signals:
- void connectedChanged(const bool &connected);
-
-private slots:
- void onConnected();
- void onDisconnected();
- void onError(const QLocalSocket::LocalSocketError &socketError);
- void onStateChanged(const QLocalSocket::LocalSocketState &state);
- void onReadyRead();
-
-};
-
-#endif // SNAPDCONNECTION_H
diff --git a/snapd/snapdcontrol.cpp b/snapd/snapdcontrol.cpp
deleted file mode 100644
index d43e8678..00000000
--- a/snapd/snapdcontrol.cpp
+++ /dev/null
@@ -1,496 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include "snapdcontrol.h"
-#include "extern-plugininfo.h"
-
-#include
-#include
-#include
-#include
-
-SnapdControl::SnapdControl(Thing *thing, QObject *parent) :
- QObject(parent),
- m_device(thing),
- m_snapdSocketPath("/run/snapd.socket")
-{
- // If a change is one of following kind, the plugin will recognize it as update running
- m_updateChangeKinds.append("install-snap");
- m_updateChangeKinds.append("remove-snap");
- m_updateChangeKinds.append("refresh-snap");
- m_updateChangeKinds.append("revert-snap");
-
- m_snapConnection = new SnapdConnection(this);
- connect(m_snapConnection, &SnapdConnection::connectedChanged, this, &SnapdControl::onConnectedChanged);
-}
-
-Thing *SnapdControl::thing()
-{
- return m_device;
-}
-
-bool SnapdControl::available() const
-{
- QFileInfo fileInfo(m_snapdSocketPath);
- if (!fileInfo.exists()) {
- qCDebug(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "does not exist";
- return false;
- }
-
- if (!fileInfo.isReadable()) {
- qCDebug(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "is not readable";
- return false;
- }
-
- if (!fileInfo.isWritable()) {
- qCDebug(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "is not writable";
- return false;
- }
-
- return true;
-}
-
-bool SnapdControl::connected() const
-{
- return m_snapConnection->isConnected();
-}
-
-bool SnapdControl::enabled() const
-{
- return m_enabled;
-}
-
-bool SnapdControl::timerBasedSchedule() const
-{
- return m_timerBasedSchedule;
-}
-
-void SnapdControl::loadSystemInfo()
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- SnapdReply *reply = m_snapConnection->get("/v2/system-info", this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onLoadSystemInfoFinished);
-}
-
-void SnapdControl::loadSnapList()
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- SnapdReply *reply = m_snapConnection->get("/v2/snaps", this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onLoadSnapListFinished);
-}
-
-void SnapdControl::loadRunningChanges()
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- SnapdReply *reply = m_snapConnection->get("/v2/changes", this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onLoadRunningChangesFinished);
-}
-
-void SnapdControl::configureRefreshSchedule()
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- QVariantMap configuration; QVariantMap configMap;
- configMap.insert("timer", m_preferredRefreshSchedule);
- configMap.insert("schedule", m_preferredRefreshSchedule);
- configuration.insert("refresh", configMap);
-
- qCDebug(dcSnapd()) << "Configure refresh schedule from" << m_currentRefreshSchedule << "-->" << m_preferredRefreshSchedule;
-
- SnapdReply *reply = m_snapConnection->put(QString("/v2/snaps/core/conf"), QJsonDocument::fromVariant(configuration).toJson(QJsonDocument::Compact), this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onConfigureRefreshScheduleFinished);
-}
-
-bool SnapdControl::validAsyncResponse(const QVariantMap &responseMap)
-{
- if (!responseMap.contains("type"))
- return false;
-
- if (responseMap.value("type") == "error")
- return false;
-
- return true;
-}
-
-void SnapdControl::onConnectedChanged(const bool &connected)
-{
- if (connected) {
- thing()->setStateValue(snapdControlSnapdAvailableStateTypeId, true);
- update();
- } else {
- thing()->setStateValue(snapdControlSnapdAvailableStateTypeId, false);
- }
-}
-
-void SnapdControl::onLoadSystemInfoFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Load system info request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- QVariantMap result = reply->dataMap().value("result").toMap();
- QDateTime lastRefreshTime = QDateTime::fromString(result.value("refresh").toMap().value("last").toString(), Qt::ISODate);
- QDateTime nextRefreshTime = QDateTime::fromString(result.value("refresh").toMap().value("next").toString(), Qt::ISODate);
-
- // Set update time information
- thing()->setStateValue(snapdControlLastUpdateTimeStateTypeId, lastRefreshTime.toTime_t());
- thing()->setStateValue(snapdControlNextUpdateTimeStateTypeId, nextRefreshTime.toTime_t());
-
- // Check if we are working on refresh timer or refresh schedule
- if (result.value("refresh").toMap().contains("schedule")) {
- // Schedule based core snap
- m_timerBasedSchedule = false;
- m_currentRefreshSchedule = result.value("refresh").toMap().value("schedule").toString();
- } else if (result.value("refresh").toMap().contains("timer")) {
- // Timer based core snap: snapd >= 2.31
- m_timerBasedSchedule = true;
- m_currentRefreshSchedule = result.value("refresh").toMap().value("timer").toString();
- }
-
- reply->deleteLater();
-
- // Check if the refresh schedule should be updated
- if (m_currentRefreshSchedule != m_preferredRefreshSchedule) {
- configureRefreshSchedule();
- }
-}
-
-void SnapdControl::onLoadSnapListFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Load system info request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- emit snapListUpdated(reply->dataMap().value("result").toList());
- reply->deleteLater();
-}
-
-void SnapdControl::onLoadRunningChangesFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Load running changes request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- // Load changes list
- QVariantList changes = reply->dataMap().value("result").toList();
- reply->deleteLater();
-
- // If there are no running changes, update is not running
- if (changes.isEmpty()) {
- // Update not running any more
- thing()->setStateValue(snapdControlUpdateRunningStateTypeId, false);
- thing()->setStateValue(snapdControlStatusStateTypeId, "-");
- return;
- }
-
- bool updateRunning = false;
- QString updateStatus = "-";
-
- // Verifiy if a change is running and which one is currently doing something
- foreach (const QVariant &changeVariant, changes) {
- QVariantMap changeMap = changeVariant.toMap();
-
- int changeId = changeMap.value("id").toInt();
- bool changeReady = changeMap.value("ready").toBool();
- QString changeKind = changeMap.value("kind").toString();
- QString changeStatus = changeMap.value("status").toString();
- QString changeSummary = changeMap.value("summary").toString();
-
- // If there is a change kind "Doing" or "Do"
- if ( (changeStatus == "Doing" || changeStatus == "Do") && m_updateChangeKinds.contains(changeKind)) {
- // Set the status of the current running change
- updateRunning = true;
- if (changeStatus == "Doing") {
- updateStatus = changeSummary;
- qCDebug(dcSnapd()).noquote() << "Current change:" << changeId << (changeReady ? "ready" : "not ready") << changeStatus << changeKind << changeSummary;
-
- // TODO: calculate the overall percentage of the update process (Do + Doing / Done)
- }
- }
- }
-
- thing()->setStateValue(snapdControlUpdateRunningStateTypeId, updateRunning);
- thing()->setStateValue(snapdControlStatusStateTypeId, updateStatus);
-
- // If currently an update is running, lets force update available to false if set to true
- // keep this below the setStateValue for updateRunning or we might have intermediate states indicating
- // no update running and none available
- if (updateRunning && thing()->stateValue(snapdControlUpdateAvailableStateTypeId).toBool()) {
- thing()->setStateValue(snapdControlUpdateAvailableStateTypeId, false);
- }
-
-}
-
-void SnapdControl::onConfigureRefreshScheduleFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Set refresh schedule request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- if (!validAsyncResponse(reply->dataMap())) {
- qCWarning(dcSnapd()) << "Async refresh configuration request finished with error" << reply->dataMap().value("status").toString() << reply->dataMap().value("status-code").toInt();
- reply->deleteLater();
- return;
- }
-
- qCDebug(dcSnapd()) << "Configure refresh schedule finished successfully";
- reply->deleteLater();
-}
-
-void SnapdControl::onSnapRefreshFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Snap refresh request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- if (!validAsyncResponse(reply->dataMap())) {
- qCWarning(dcSnapd()) << "Async refresh request finished with error" << reply->dataMap().value("status").toString() << reply->dataMap().value("status-code").toInt();
- } else {
- loadRunningChanges();
- }
-
- reply->deleteLater();
-}
-
-void SnapdControl::onSnapRevertFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Snap revert request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- if (!validAsyncResponse(reply->dataMap())) {
- qCWarning(dcSnapd()) << "Async change request finished with error" << reply->dataMap().value("status").toString() << reply->dataMap().value("status-code").toInt();;
- } else {
- loadRunningChanges();
- }
-
- reply->deleteLater();
-}
-
-void SnapdControl::onCheckForUpdatesFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Check for snap updates request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- qCDebug(dcSnapd()) << "Check for available snap updates finished.";
- if (reply->dataMap().value("result").toList().isEmpty()) {
- qCDebug(dcSnapd()) << "There are no snap updates available.";
- thing()->setStateValue(snapdControlUpdateAvailableStateTypeId, false);
- } else {
- // Print available snap updates
- qCDebug(dcSnapd()) << "Following snaps can be updated:";
- foreach (const QVariant &resultVariant, reply->dataMap().value("result").toList()) {
- QVariantMap resultMap = resultVariant.toMap();
- qCDebug(dcSnapd()) << " -->" << resultMap.value("name").toString() << resultMap.value("version").toString();
- }
-
- thing()->setStateValue(snapdControlUpdateAvailableStateTypeId, true);
- }
-
- reply->deleteLater();
-}
-
-void SnapdControl::onChangeSnapChannelFinished()
-{
- SnapdReply *reply = static_cast(sender());
- if (!reply->isValid()) {
- qCDebug(dcSnapd()) << "Change snap channel request finished with error" << reply->requestPath();
- reply->deleteLater();
- return;
- }
-
- if (!validAsyncResponse(reply->dataMap())) {
- qCWarning(dcSnapd()) << "Async change request finished with error" << reply->dataMap().value("status").toString() << reply->dataMap().value("status-code").toInt();
- } else {
- loadRunningChanges();
- }
-
- reply->deleteLater();
-}
-
-void SnapdControl::enable()
-{
- m_enabled = true;
- update();
-}
-
-void SnapdControl::disable()
-{
- m_enabled = false;
-
- if (m_snapConnection) {
- m_snapConnection->close();
- }
-}
-
-void SnapdControl::update()
-{
- if (!m_snapConnection)
- return;
-
- if (!available())
- return;
-
- if (!enabled())
- return;
-
- // Try to reconnect if unconnected
- if (m_snapConnection->state() == QLocalSocket::UnconnectedState) {
- m_snapConnection->connectToServer(m_snapdSocketPath, QLocalSocket::ReadWrite);
- return;
- }
-
- // Note: this makes sure the state is really connected (including connection initialisation stuff)
- if (!m_snapConnection->isConnected())
- return;
-
- // Update information
- if (thing()->stateValue(snapdControlUpdateRunningStateTypeId).toBool()) {
- // Note: if an update is running, just load the changes to save system resources
- loadRunningChanges();
- } else {
- // Normal update
- loadSystemInfo();
- loadSnapList();
- loadRunningChanges();
- }
-}
-
-void SnapdControl::snapRefresh()
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- QVariantMap request;
- request.insert("action", "refresh");
-
- qCDebug(dcSnapd()) << "Refresh all snaps";
- SnapdReply *reply = m_snapConnection->post("/v2/snaps", QJsonDocument::fromVariant(request).toJson(QJsonDocument::Compact), this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onSnapRefreshFinished);
-}
-
-void SnapdControl::changeSnapChannel(const QString &snapName, const QString &channel)
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- QVariantMap request;
- request.insert("action", "refresh");
- request.insert("channel", channel);
-
- qCDebug(dcSnapd()) << "Refresh snap" << snapName << "to channel" << channel;
- SnapdReply *reply = m_snapConnection->post(QString("/v2/snaps/%1").arg(snapName), QJsonDocument::fromVariant(request).toJson(QJsonDocument::Compact), this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onChangeSnapChannelFinished);
-}
-
-void SnapdControl::checkForUpdates()
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- qCDebug(dcSnapd()) << "Checking for available snap updates";
- SnapdReply *reply = m_snapConnection->get("/v2/find?select=refresh", this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onCheckForUpdatesFinished);
-}
-
-void SnapdControl::setPreferredRefreshTime(int startTime)
-{
- // Schedule the refresh between startTime and startTime + 59 minutes
- QTime start(startTime, 0, 0);
- QTime end = start.addSecs(3540);
- m_preferredRefreshSchedule = QString("%1-%2").arg(start.toString("h:mm")).arg(end.toString("h:mm"));
- qCDebug(dcSnapd()) << "Set preferred refresh schedule to " << m_preferredRefreshSchedule;
-}
-
-void SnapdControl::snapRevert(const QString &snapName)
-{
- if (!m_snapConnection)
- return;
-
- if (!m_snapConnection->isConnected())
- return;
-
- QVariantMap request;
- request.insert("action", "revert");
-
- qCDebug(dcSnapd()) << "Revert snap" << snapName;
- SnapdReply *reply = m_snapConnection->post(QString("/v2/snaps/%1").arg(snapName), QJsonDocument::fromVariant(request).toJson(QJsonDocument::Compact), this);
- connect(reply, &SnapdReply::finished, this, &SnapdControl::onSnapRevertFinished);
-}
diff --git a/snapd/snapdcontrol.h b/snapd/snapdcontrol.h
deleted file mode 100644
index 5b24fd34..00000000
--- a/snapd/snapdcontrol.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef SNAPDCONTROL_H
-#define SNAPDCONTROL_H
-
-#include
-#include
-
-#include "integrations/thing.h"
-#include "snapdconnection.h"
-
-class SnapdControl : public QObject
-{
- Q_OBJECT
-public:
- explicit SnapdControl(Thing *thing, QObject *parent = nullptr);
-
- Thing *thing();
-
- bool available() const;
- bool connected() const;
- bool enabled() const;
- bool timerBasedSchedule() const;
-
-private:
- Thing *m_device = nullptr;
- SnapdConnection *m_snapConnection = nullptr;
-
- QString m_snapdSocketPath;
- bool m_enabled = true;
-
- QStringList m_updateChangeKinds;
-
- bool m_timerBasedSchedule = false;
- QString m_currentRefreshSchedule;
- QString m_preferredRefreshSchedule;
-
- // Update calls
- void loadSystemInfo();
- void loadSnapList();
- void loadRunningChanges();
-
- void configureRefreshSchedule();
-
- bool validAsyncResponse(const QVariantMap &responseMap);
-
-private slots:
- void onConnectedChanged(const bool &connected);
-
- // Response handler for different requests
- void onLoadSystemInfoFinished();
- void onLoadSnapListFinished();
- void onLoadRunningChangesFinished();
- void onConfigureRefreshScheduleFinished();
-
- void onSnapRefreshFinished();
- void onSnapRevertFinished();
- void onCheckForUpdatesFinished();
- void onChangeSnapChannelFinished();
-
-signals:
- void snapListUpdated(const QVariantList &snapList);
-
-public slots:
- void enable();
- void disable();
-
- // Snapd request calls
- void update();
- void snapRefresh();
- void checkForUpdates();
-
- void setPreferredRefreshTime(int startTime);
-
- void snapRevert(const QString &snapName);
- void changeSnapChannel(const QString &snapName, const QString &channel);
-};
-
-#endif // SNAPDCONTROL_H
diff --git a/snapd/snapdreply.cpp b/snapd/snapdreply.cpp
deleted file mode 100644
index b8464282..00000000
--- a/snapd/snapdreply.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#include "snapdreply.h"
-
-QString SnapdReply::requestPath() const
-{
- return m_requestPath;
-}
-
-QString SnapdReply::requestMethod() const
-{
- return m_requestMethod;
-}
-
-QByteArray SnapdReply::requestRawMessage() const
-{
- return m_requestRawMessage;
-}
-
-int SnapdReply::statusCode() const
-{
- return m_statusCode;
-}
-
-QString SnapdReply::statusMessage() const
-{
- return m_statusMessage;
-}
-
-QHash SnapdReply::header() const
-{
- return m_header;
-}
-
-QVariantMap SnapdReply::dataMap() const
-{
- return m_dataMap;
-}
-
-bool SnapdReply::isFinished() const
-{
- return m_isFinished;
-}
-
-bool SnapdReply::isValid() const
-{
- return m_valid;
-}
-
-SnapdReply::SnapdReply(QObject *parent) :
- QObject(parent)
-{
-
-}
-
-void SnapdReply::setRequestPath(const QString &requestPath)
-{
- m_requestPath = requestPath;
-}
-
-void SnapdReply::setRequestMethod(const QString &requestMethod)
-{
- m_requestMethod = requestMethod;
-}
-
-void SnapdReply::setRequestRawMessage(const QByteArray &rawMessage)
-{
- m_requestRawMessage = rawMessage;
-}
-
-void SnapdReply::setStatusCode(const int &statusCode)
-{
- m_statusCode = statusCode;
-}
-
-void SnapdReply::setStatusMessage(const QString &statusMessage)
-{
- m_statusMessage = statusMessage;
-}
-
-void SnapdReply::setHeader(const QHash header)
-{
- m_header = header;
-}
-
-void SnapdReply::setDataMap(const QVariantMap &dataMap)
-{
- m_dataMap = dataMap;
-}
-
-void SnapdReply::setFinished(const bool &valid)
-{
- m_isFinished = true;
- m_valid = valid;
-
- emit finished();
-}
diff --git a/snapd/snapdreply.h b/snapd/snapdreply.h
deleted file mode 100644
index 23e5c067..00000000
--- a/snapd/snapdreply.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-* Copyright 2013 - 2020, nymea GmbH
-* Contact: contact@nymea.io
-*
-* This file is part of nymea.
-* This project including source code and documentation is protected by
-* copyright law, and remains the property of nymea GmbH. All rights, including
-* reproduction, publication, editing and translation, are reserved. The use of
-* this project is subject to the terms of a license agreement to be concluded
-* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
-* under https://nymea.io/license
-*
-* GNU Lesser General Public License Usage
-* Alternatively, this project may be redistributed and/or modified under the
-* terms of the GNU Lesser General Public License as published by the Free
-* Software Foundation; version 3. This project is distributed in the hope that
-* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this project. If not, see .
-*
-* For any further details and any questions please contact us under
-* contact@nymea.io or see our FAQ/Licensing Information on
-* https://nymea.io/license/faq
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef SNAPDREPLY_H
-#define SNAPDREPLY_H
-
-#include
-#include
-#include
-
-class SnapdReply : public QObject
-{
- Q_OBJECT
-
- friend class SnapdConnection;
-
-public:
- // Request
- QString requestPath() const;
- QString requestMethod() const;
- QByteArray requestRawMessage() const;
-
- // Response
- int statusCode() const;
- QString statusMessage() const;
- QHash header() const;
- QVariantMap dataMap() const;
-
- bool isFinished() const;
- bool isValid() const;
-
-private:
- explicit SnapdReply(QObject *parent = nullptr);
-
- QString m_requestPath;
- QString m_requestMethod;
- QByteArray m_requestRawMessage;
-
- int m_statusCode;
- QString m_statusMessage;
- QHash m_header;
- QVariantMap m_dataMap;
-
- bool m_isFinished = false;
- bool m_valid = false;
-
- // Methods for SnapdConnection
- void setRequestPath(const QString &requestPath);
- void setRequestMethod(const QString &requestMethod);
- void setRequestRawMessage(const QByteArray &rawMessage);
-
- void setStatusCode(const int &statusCode);
- void setStatusMessage(const QString &statusMessage);
- void setHeader(const QHash header);
- void setDataMap(const QVariantMap &dataMap);
- void setFinished(const bool &valid = true);
-
-signals:
- void finished();
-
-};
-
-#endif // SNAPDREPLY_H
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-cs.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-cs.ts
deleted file mode 100644
index 1f7ae378..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-cs.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Rozšířený režim
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Automaticky denně obnovit seznam
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canonical
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Aktualizace systému k dispozici změněno
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Poslední aktualizace automatického systému čas změněn
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Poslední aktualizace automatického systému
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Další aktualizace automatického systému čas změněn
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Další aktualizace automatického systému
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- ID
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Shrnutí
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Popis
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Vývojář
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanál
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Nastavit kanál
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Verze změněna
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Verze
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revize změněna
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revize
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Rolovat zpět k předchozí verzi
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Spustit aktualizaci
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Manager aktualizace
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Manager aktualizace k dispozici změněno
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Manager aktualizace k dispozici
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Aktualizace systému k dispozici
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Aktualizace systému běží
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Aktualizace systému běží změněno
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status změněn
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Název
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanál změněn
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Zkontrolovat aktualizace
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-da.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-da.ts
deleted file mode 100644
index a9920a75..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-da.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Avanceret modus
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Tidsplan for automatisk daglig opdatering
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Fast
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Systemopdatering tilgængelig ændret
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Tidspunkt for sidste automatiske systemopdatering ændret
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Sidste automatiske systemopdatering
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Tidspunkt for næste automatiske systemopdatering ændret
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Næste automatiske systemopdatering
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- id
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Sammenfatning
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Beskrivelse
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Udvikler
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanal
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Indstil kanal
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Version ændret
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Version
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revision ændret
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revision
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Gå tilbage til tidligere version
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Start opdatering
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Opdateringsstyring
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Opdateringsstyring tilgængelig ændret
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Opdateringsstyring tilgængelig
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Systemopdatering tilgængelig
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Systemopdatering løber
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Systemopdatering løber ændret
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status ændret
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Navn
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanal ændret
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Tjek for opdateringer
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de.ts
deleted file mode 100644
index b24d378b..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
- Snapd
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Erweiterter Modus
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Automatischer täglicher Aktualisierungszeitplan
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canonical
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Systemupdate Verfügbarkeit geändert
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Letztes automatisches Systemupdate geändert
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Letzte automatische Systemaktualisierung
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Nächstes automatisches Systemupdate geändert
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Nächstes automatisches Systemupdate
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- ID
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Zusammenfassung
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Beschreibung
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Entwickler
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanal
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Setze Kanal
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Version geändert
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Version
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revision geändert
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revision
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Zurücksetzen auf vorhergehende Version
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Starte Systemupdate
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Update Manager
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Update Manager Verfügbarkeit geändert
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Update-Manager verfügbar
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Systemupdate verfügbar
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Systemaktualisierung läuft
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Systemupdate aktiv geändert
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status geändert
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Name
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanal geändert
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Nach Aktualisierungen suchen
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts
deleted file mode 100644
index 3263943b..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
-
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
-
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
-
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
-
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
-
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
-
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
-
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
-
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
-
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
-
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
-
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
-
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
-
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
-
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
-
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
-
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
-
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
-
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
-
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
-
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
-
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
-
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
-
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
-
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
-
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
-
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
-
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
-
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
-
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
-
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
-
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
-
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-es.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-es.ts
deleted file mode 100644
index e01b202a..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-es.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Modo avanzado
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Programación de actualización diaria automática
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canónica
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Actualización disponible del sistema modificada
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Última hora de actualización automática del sistema modificada
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Última actualización automática del sistema
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Próxima hora de actualización automática del sistema modificada
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Próxima actualización automática del sistema
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Estado
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- Identificación
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Resumen
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Descripción
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Desarrollador
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canal
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Fijar canal
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versión modificada
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versión
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisión modificada
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisión
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Retroceso a la versión anterior
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Iniciar actualización
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Actualizar gestor
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Actualización de gestor disponible modificada
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Actualización de gestor disponible
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Actualización de sistema disponible
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Actualización de sistema en funcionamiento
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Actualización de sistema en funcionamiento modificada
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Estado modificado
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Nombre
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canal modificado
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Buscar actualizaciones
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-fr.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-fr.ts
deleted file mode 100644
index 3e460f05..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-fr.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Mode avancé
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Calendrier de rafraîchissement quotidien automatique
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canonique
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Disponibilité de mise à jour du système modifiée
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Dernière heure de mise à jour automatique du système modifiée
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Dernière mise à jour automatique du système
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Prochaine heure de mise à jour automatique du système modifiée
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Prochaine mise à jour automatique du système
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Statut
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- ID
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Récapitulatif
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Description
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Développeur
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canal
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Définir la chaîne
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Version modifiée
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Version
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Révision modifiée
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Révision
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Retour à la version précédente
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Démarrer la mise a jour
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Gestionnaire de mise à jour
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Disponibilité du gestionnaire de mise à jour modifiée
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Gestionnaire de mise à jour disponible
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Mise à jour du système disponible
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Mise à jour du système en cours
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Le cours de la mise à jour du système a changé
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Statut modifié
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Nom
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canal modifié
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Vérifier les mises à jour
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-it.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-it.ts
deleted file mode 100644
index 07db6a09..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-it.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Modalità avanzata
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Programma di aggiornamento giornaliero automatico
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canonico
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Aggiornamento del sistema disponibile modificato
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Ora dell'ultimo aggiornamento automatico del sistema cambiato
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Ultimo aggiornamento automatico del sistema
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Ora del prossimo aggiornamento automatico del sistema cambiato
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Prossimo aggiornamento automatico del sistema
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Stato
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- ID
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Sommario
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Descrizione
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Sviluppatore
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canale
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Imposta canale
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versione modificata
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versione
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisione modificata
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisione
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Ripristino della versione precedente
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Inizia aggiornamento
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Gestione aggiornamento
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Gestione aggiornamento disponibile cambiato
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Gestione aggiornamento disponibile
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Aggiornamento del sistema disponibile
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Esecuzione aggiornamento del sistema
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Esecuzione aggiornamento del sistema modificata
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Stato modificato
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Nome
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canale modificato
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Verifica aggiornamenti
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-nl.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-nl.ts
deleted file mode 100644
index 7a5b2d87..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-nl.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Geavanceerde modus
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Automatisch dagelijks vernieuwingsschema
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canonical
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Beschikbaarheid systeemupdate
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Laatste tijd automatische systeemupdate bijgewerkt
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Laatste automatische systeemupdate
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Volgende tijd automatische systeemupdate bijgewerkt
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Volgende automatische systeemupdate
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- ID
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Samenvatting
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Beschrijving
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Ontwikkelaar
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanaal
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanaal instellen
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versie gewijzigd
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versie
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisie gewijzigd
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisie
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Terugdraaien naar vorige versie
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Update beginnen
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Update-manager
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Update-manager beschikbaar gewijzigd
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Update-manager beschikbaar
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Systeemupdate beschikbaar
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Systeemupdate wordt uitgevoerd
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Systeemupdate wordt uitgevoerd gewijzigd
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Status gewijzigd
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Naam
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Kanaal gewijzigd
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Controleren op updates
-
-
-
diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-pt.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-pt.ts
deleted file mode 100644
index 764bd8ca..00000000
--- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-pt.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- Snapd
-
-
- Snapd
- The name of the plugin Snapd ({b82bce59-59bf-48b3-b781-54a6f45800f3})
-
-
-
-
- Advanced mode
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {017fe4c5-fc41-41fe-8e67-08fdaccb89ea})
- Modo avançado
-
-
-
- Automatic daily refresh schedule
- The name of the ParamType (ThingClass: snapd, Type: plugin, ID: {d2e697d1-9a68-4666-bf40-8d70fa694eec})
- Agenda de atualização automática diária
-
-
-
- Canonical
- The name of the vendor ({60582ddf-32ea-4fcd-a6f2-f3beaaf21517})
- Canónico
-
-
-
- System update available changed
- The name of the EventType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Alterada atualização do sistema disponível
-
-
-
- Last automatic system update time changed
- The name of the EventType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Alterado último tempo de atualização automática do sistema
-
-
-
-
- Last automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: lastUpdateTime, ID: {c671545a-6bde-4c08-8e37-0d256841a3a5})
-----------
-The name of the StateType ({c671545a-6bde-4c08-8e37-0d256841a3a5}) of ThingClass snapdControl
- Última atualização automática do sistema
-
-
-
- Next automatic system update time changed
- The name of the EventType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Alterada próxima atualização automática do sistema
-
-
-
-
- Next automatic system update
- The name of the ParamType (ThingClass: snapdControl, EventType: nextUpdateTime, ID: {122c2423-a1d9-400f-80f8-b1f798975914})
-----------
-The name of the StateType ({122c2423-a1d9-400f-80f8-b1f798975914}) of ThingClass snapdControl
- Próxima atualização automática do sistema
-
-
-
-
- Status
- The name of the ParamType (ThingClass: snapdControl, EventType: status, ID: {4987aca3-3916-4cb3-938f-df6c99d04dbf})
-----------
-The name of the StateType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Estado
-
-
-
- ID
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {9afb98fb-f717-4f4c-8009-1a6514054c5f})
- ID
-
-
-
- Summary
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {12b9a65f-970b-49b5-b1d0-1625fc6d8758})
- Resumo
-
-
-
- Description
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {fe24c61b-e154-4259-b7ca-6f0602e9d1c3})
- Descrição
-
-
-
- Developer
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5})
- Desenvolvedor
-
-
-
-
-
- Channel
- The name of the ParamType (ThingClass: snap, ActionType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the ParamType (ThingClass: snap, EventType: channel, ID: {7be2b61e-3f59-4b92-b2bb-50d027bb92ff})
-----------
-The name of the StateType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canal
-
-
-
- Set channel
- The name of the ActionType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Configurar canal
-
-
-
- Version changed
- The name of the EventType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versão alterada
-
-
-
-
- Version
- The name of the ParamType (ThingClass: snap, EventType: version, ID: {532a95f3-db29-427e-bb32-d5a22029e586})
-----------
-The name of the StateType ({532a95f3-db29-427e-bb32-d5a22029e586}) of ThingClass snap
- Versão
-
-
-
- Revision changed
- The name of the EventType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisão alterada
-
-
-
-
- Revision
- The name of the ParamType (ThingClass: snap, EventType: revision, ID: {f26a6404-e011-11e7-9224-2350048461eb})
-----------
-The name of the StateType ({f26a6404-e011-11e7-9224-2350048461eb}) of ThingClass snap
- Revisão
-
-
-
- Rollback to previous version
- The name of the ActionType ({e061dee6-62fc-45cc-9c9f-403c2be52939}) of ThingClass snap
- Retroceder para versão anterior
-
-
-
- Start update
- The name of the ActionType ({45626b75-f09d-4dd1-b6c4-ee33201b47b0}) of ThingClass snapdControl
- Iniciar atualização
-
-
-
- Update manager
- The name of the ThingClass ({d90cda58-4d8c-4b7f-a982-38e56a95b72a})
- Gestor de atualizações
-
-
-
- Update manager available changed
- The name of the EventType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Gestor de atualizações
-
-
-
-
- Update manager available
- The name of the ParamType (ThingClass: snapdControl, EventType: snapdAvailable, ID: {6b662b3e-fd12-4f24-be77-aec066f16d8c})
-----------
-The name of the StateType ({6b662b3e-fd12-4f24-be77-aec066f16d8c}) of ThingClass snapdControl
- Disponível gestor de atualizações
-
-
-
-
- System update available
- The name of the ParamType (ThingClass: snapdControl, EventType: updateAvailable, ID: {a6b1d24b-d523-4516-9bce-5b467e5e09b2})
-----------
-The name of the StateType ({a6b1d24b-d523-4516-9bce-5b467e5e09b2}) of ThingClass snapdControl
- Disponível atualização do sistema
-
-
-
-
- System update running
- The name of the ParamType (ThingClass: snapdControl, EventType: updateRunning, ID: {01ca7a22-5607-4c5e-a465-a2ae7e8b529c})
-----------
-The name of the StateType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Atualização do sistema em curso
-
-
-
- Snap
- The name of the ThingClass ({ff0840d7-fcfc-4403-9d9f-301610d5a437})
- Snap
-
-
-
- System update running changed
- The name of the EventType ({01ca7a22-5607-4c5e-a465-a2ae7e8b529c}) of ThingClass snapdControl
- Alterada atualização do sistema em curso
-
-
-
- Status changed
- The name of the EventType ({4987aca3-3916-4cb3-938f-df6c99d04dbf}) of ThingClass snapdControl
- Estado alterado
-
-
-
- Name
- The name of the ParamType (ThingClass: snap, Type: thing, ID: {4f38614d-8be0-48dc-a24d-cee9ff1f2a89})
- Nome
-
-
-
- Channel changed
- The name of the EventType ({7be2b61e-3f59-4b92-b2bb-50d027bb92ff}) of ThingClass snap
- Canal alterado
-
-
-
- Check for updates
- The name of the ActionType ({4738f2c9-666e-45b9-91d3-7bcbf722b669}) of ThingClass snapdControl
- Verificar atualizações
-
-
-