Index: sources/device/DeviceController.cpp =================================================================== diff -u -r49b21798fb65ce44a04ae4e771ef7c3c1c119fa6 -r2a0e56982ad45cdd98a6d0425c53e52610c29961 --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 49b21798fb65ce44a04ae4e771ef7c3c1c119fa6) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 2a0e56982ad45cdd98a6d0425c53e52610c29961) @@ -802,7 +802,8 @@ // ----- run the process int timeout_ms = 10000; - TimedProcess *timedProcess = new TimedProcess(&_processDecommission, script, timeout_ms); + TimedProcess *timedProcess = new TimedProcess(&_processDecommission, script, timeout_ms, { CloudSyncPath }); + _processDecommission.setEnvironment(QProcess::systemEnvironment() << QString("PASSWORD=%1").arg(_deviceDecommissionRequest._data.mPassword)); timedProcess->start(); MDeviceDecommissionResponse model; Index: sources/device/DeviceModels.h =================================================================== diff -u -r49b21798fb65ce44a04ae4e771ef7c3c1c119fa6 -r2a0e56982ad45cdd98a6d0425c53e52610c29961 --- sources/device/DeviceModels.h (.../DeviceModels.h) (revision 49b21798fb65ce44a04ae4e771ef7c3c1c119fa6) +++ sources/device/DeviceModels.h (.../DeviceModels.h) (revision 2a0e56982ad45cdd98a6d0425c53e52610c29961) @@ -284,6 +284,7 @@ class MDeviceDecommissionRequest : public MDeviceRequestBase { public: struct Data { + QString mPassword = ""; } _data; QString toString() { Index: sources/device/DeviceView.cpp =================================================================== diff -u -r1f031754af6e570cf1e4f74d1620bdac2b31842c -r2a0e56982ad45cdd98a6d0425c53e52610c29961 --- sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision 1f031754af6e570cf1e4f74d1620bdac2b31842c) +++ sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision 2a0e56982ad45cdd98a6d0425c53e52610c29961) @@ -150,6 +150,13 @@ // Nothing for now. } +void VDevice::factoryResetRequest(const QString &vCommand) { + Q_UNUSED(vCommand) + // DEBUG : qDebug() << "HERE Request" << vCommand; + DeviceFactoryResetRequestData data; + emit didAttributeRequest(data); +} + void VDevice::onAttributeResponse(const DeviceFactoryResetResponseData &vData) { // QDEBUG : qDebug() << "HERE Response " << Q_FUNC_INFO << " accepted: " << vData.mAccepted; // this has to be called to let Gui to set to old value that device controller provided. @@ -165,18 +172,26 @@ response(true); } -void VDevice::factoryResetRequest(const QString &vCommand) { - Q_UNUSED(vCommand) - // DEBUG : qDebug() << "HERE Request" << vCommand; - DeviceFactoryResetRequestData data; - emit didAttributeRequest(data); -} - // ================================================= Decommission void VDevice::doInitDecommission() { // Nothing for now. } +void VDevice::decommissionRequest(const QString &vCommand) { + Q_UNUSED(vCommand) + // DEBUG : qDebug() << "HERE Request" << vCommand; + DeviceDecommissionRequestData data; + bool ok = false; + data.mPassword = encryption::defaultServicePassword( ok ); + if ( ! ok ) { // not enough infromation to create a secure passowrd + status(tr("Not enough secure information provided")); + } + else { + emit didAttributeRequest(data); + } + emit didAttributeRequest(data); +} + void VDevice::onAttributeResponse(const DeviceDecommissionResponseData &vData) { //QDEBUG : qDebug() << "HERE Response " << Q_FUNC_INFO << " accepted: "<< vData.mAccepted << vData.mReason; // this has to be called to let Gui to set to old value that device controller provided. @@ -191,11 +206,3 @@ // has to be the last one response(true); } - -void VDevice::decommissionRequest(const QString &vCommand) { - Q_UNUSED(vCommand) - // DEBUG : qDebug() << "HERE Request" << vCommand; - DeviceDecommissionRequestData data; - emit didAttributeRequest(data); -} - Index: sources/storage/StorageGlobals.cpp =================================================================== diff -u -r49b21798fb65ce44a04ae4e771ef7c3c1c119fa6 -r2a0e56982ad45cdd98a6d0425c53e52610c29961 --- sources/storage/StorageGlobals.cpp (.../StorageGlobals.cpp) (revision 49b21798fb65ce44a04ae4e771ef7c3c1c119fa6) +++ sources/storage/StorageGlobals.cpp (.../StorageGlobals.cpp) (revision 2a0e56982ad45cdd98a6d0425c53e52610c29961) @@ -169,4 +169,6 @@ // Device Decommissioning const char *Device_Decommission = "decommission.sh"; + const char *CloudSyncPath = "/var/configurations/CloudSync/credentials/"; + } Index: sources/storage/StorageGlobals.h =================================================================== diff -u -r49b21798fb65ce44a04ae4e771ef7c3c1c119fa6 -r2a0e56982ad45cdd98a6d0425c53e52610c29961 --- sources/storage/StorageGlobals.h (.../StorageGlobals.h) (revision 49b21798fb65ce44a04ae4e771ef7c3c1c119fa6) +++ sources/storage/StorageGlobals.h (.../StorageGlobals.h) (revision 2a0e56982ad45cdd98a6d0425c53e52610c29961) @@ -123,4 +123,6 @@ // Device Decommissioning extern const char *Device_Decommission; + extern const char *CloudSyncPath; + }