in leda_python/leda.py [0:0]
def deviceUnregister(self, subDevice):
''' unregister device
:param subDevice: device obj
:return:
'''
if (False == isinstance(subDevice, LedaSubDevice)):
raise exception.LedaParamsException('type of subDevice is invalid')
with self.deviceServiceDictLock:
pk_dn = subDevice.product_key + subDevice.device_name
if (pk_dn not in self.device_service_dict):
raise exception.LedaRPCMethodException("device(%s) is not exited" % subDevice.device_name)
else:
del self.device_service_dict[pk_dn]
subDevice.offline()
cloudId = subDevice.get_cloud_id()
try:
reply_cb = self._unregister_device_cb
error_cb = self._unregister_device_errCb
self.unregisterDeviceSync.clear()
self.driverMbusHandle.unregisterDevice(cloudId, reply_cb, error_cb)
syncMsg = self.unregisterDeviceSync.wait(mbusConfig.MERHOD_SYNC_TIMEOUT)
if (None == syncMsg):
raise exception.LedaRPCMethodException("unregister device time out", exception.LEDA_ERROR_TIMEOUT)
elif (False == syncMsg["state"]):
raise exception.LedaRPCMethodException("unregister device failed", exception.LEDA_ERROR_FAILED)
except:
s = '%s:%s' % (funcname(), linenum())
_logger.exception("%s,Err", s)