mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'delete-device' into 'master'
Plugin level support for deleting device permanently See merge request entgra/carbon-device-mgt!148
This commit is contained in:
commit
b2e0c1fd97
@ -14,6 +14,23 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.common;
|
package org.wso2.carbon.device.mgt.common;
|
||||||
|
|
||||||
@ -79,6 +96,15 @@ public interface DeviceManager {
|
|||||||
*/
|
*/
|
||||||
boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
|
boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to delete a particular device from CDM.
|
||||||
|
*
|
||||||
|
* @param deviceId Fully qualified device identifier
|
||||||
|
* @return A boolean indicating the status of the operation.
|
||||||
|
* @throws DeviceManagementException If some unusual behaviour is observed while deleting a device
|
||||||
|
*/
|
||||||
|
boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method to retrieve the status of the registration process of a particular device.
|
* Method to retrieve the status of the registration process of a particular device.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -1409,91 +1409,97 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteDevice(DeviceIdentifier deviceIdentifier, int tenantId) throws DeviceManagementDAOException {
|
public void deleteDevice(DeviceIdentifier deviceIdentifier, int tenantId) throws DeviceManagementDAOException {
|
||||||
|
String deviceIdentifierId = deviceIdentifier.getId();
|
||||||
|
String deviceType = deviceIdentifier.getType();
|
||||||
Connection conn;
|
Connection conn;
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
int deviceId = getDeviceId(conn, deviceIdentifier, tenantId);
|
int deviceId = getDeviceId(conn, deviceIdentifier, tenantId);
|
||||||
if (deviceId == -1) {
|
if (deviceId == -1) {
|
||||||
String msg = "Device " + deviceIdentifier.getId() + " of type " + deviceIdentifier.getType() +
|
String msg = "Device " + deviceIdentifierId + " of type " + deviceType + " is not found";
|
||||||
" is not found";
|
|
||||||
log.error(msg);
|
log.error(msg);
|
||||||
throw new DeviceManagementDAOException(msg);
|
throw new DeviceManagementDAOException(msg);
|
||||||
} else {
|
} else {
|
||||||
int enrollmentId = getEnrollmentId(conn, deviceId, tenantId);
|
List<Integer> enrollmentIds = getEnrollmentIds(conn, deviceId, tenantId);
|
||||||
if (enrollmentId == -1) {
|
if (enrollmentIds == null || enrollmentIds.isEmpty()) {
|
||||||
String msg = "Enrollment not found for the device " + deviceIdentifier.getId() + " of type " +
|
String msg = "Enrollments not found for the device " + deviceIdentifierId + " of type "
|
||||||
deviceIdentifier.getType();
|
+ deviceType;
|
||||||
log.error(msg);
|
log.error(msg);
|
||||||
throw new DeviceManagementDAOException(msg);
|
throw new DeviceManagementDAOException(msg);
|
||||||
} else {
|
} else {
|
||||||
removeDeviceDetail(conn, deviceId);
|
removeDeviceDetail(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device detail data");
|
log.debug("Successfully removed device detail data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDeviceLocation(conn, deviceId);
|
removeDeviceLocation(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device location data");
|
log.debug("Successfully removed device location data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDeviceInfo(conn, deviceId);
|
removeDeviceInfo(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device info data");
|
log.debug("Successfully removed device info data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDeviceNotification(conn, deviceId);
|
removeDeviceNotification(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device notification data");
|
log.debug("Successfully removed device notification data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDeviceApplicationMapping(conn, deviceId);
|
removeDeviceApplicationMapping(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device application mapping data");
|
log.debug("Successfully removed device application mapping data of device "
|
||||||
|
+ deviceIdentifierId + " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDevicePolicyApplied(conn, deviceId);
|
removeDevicePolicyApplied(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device applied policy data");
|
log.debug("Successfully removed device applied policy data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDevicePolicy(conn, deviceId);
|
removeDevicePolicy(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device policy data");
|
log.debug("Successfully removed device policy data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Starting to remove " + enrollmentIds.size() + " enrollment data of device "
|
||||||
|
+ deviceIdentifierId + " of type " + deviceType);
|
||||||
|
}
|
||||||
|
for (Integer enrollmentId : enrollmentIds) {
|
||||||
removeEnrollmentDeviceDetail(conn, enrollmentId);
|
removeEnrollmentDeviceDetail(conn, enrollmentId);
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Successfully removed enrollment device detail data");
|
|
||||||
}
|
|
||||||
removeEnrollmentDeviceLocation(conn, enrollmentId);
|
removeEnrollmentDeviceLocation(conn, enrollmentId);
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Successfully removed enrollment device location data");
|
|
||||||
}
|
|
||||||
removeEnrollmentDeviceInfo(conn, enrollmentId);
|
removeEnrollmentDeviceInfo(conn, enrollmentId);
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Successfully removed enrollment device info data");
|
|
||||||
}
|
|
||||||
removeEnrollmentDeviceApplicationMapping(conn, enrollmentId);
|
removeEnrollmentDeviceApplicationMapping(conn, enrollmentId);
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Successfully removed enrollment device application mapping data");
|
|
||||||
}
|
|
||||||
removeDeviceOperationResponse(conn, enrollmentId);
|
removeDeviceOperationResponse(conn, enrollmentId);
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Successfully removed device operation response data");
|
|
||||||
}
|
|
||||||
removeEnrollmentOperationMapping(conn, enrollmentId);
|
removeEnrollmentOperationMapping(conn, enrollmentId);
|
||||||
|
}
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed enrollment operation mapping data");
|
log.debug("Successfully removed enrollment device details, enrollment device location, " +
|
||||||
|
"enrollment device info, enrollment device application mapping, " +
|
||||||
|
"enrollment device operation response, enrollment operation mapping data of device "
|
||||||
|
+ deviceIdentifierId + " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDeviceEnrollment(conn, deviceId);
|
removeDeviceEnrollment(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device enrollment data");
|
log.debug("Successfully removed device enrollment data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDeviceGroupMapping(conn, deviceId);
|
removeDeviceGroupMapping(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully removed device group mapping data");
|
log.debug("Successfully removed device group mapping data of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
removeDevice(conn, deviceId);
|
removeDevice(conn, deviceId);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Successfully permanently deleted the device");
|
log.debug("Successfully permanently deleted the device of device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while deleting the device", e);
|
throw new DeviceManagementDAOException("Error occurred while deleting the device " + deviceIdentifierId
|
||||||
|
+ " of type " + deviceType, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1519,30 +1525,29 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
return deviceId;
|
return deviceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getEnrollmentId(Connection conn, int deviceId, int tenantId) throws DeviceManagementDAOException {
|
private List<Integer> getEnrollmentIds(Connection conn, int deviceId, int tenantId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
int enrollmentId = -1;
|
List<Integer> enrollmentIds = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
String sql = "SELECT ID FROM DM_ENROLMENT WHERE DEVICE_ID = ? AND TENANT_ID = ?";
|
String sql = "SELECT ID FROM DM_ENROLMENT WHERE DEVICE_ID = ? AND TENANT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
stmt.setInt(2, tenantId);
|
stmt.setInt(2, tenantId);
|
||||||
rs = stmt.executeQuery();
|
rs = stmt.executeQuery();
|
||||||
if (rs.next()) {
|
while (rs.next()) {
|
||||||
enrollmentId = rs.getInt("ID");
|
enrollmentIds.add(rs.getInt("ID"));
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while retrieving enrollment id of the device", e);
|
throw new DeviceManagementDAOException("Error occurred while retrieving enrollment id of the device", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||||
}
|
}
|
||||||
return enrollmentId;
|
return enrollmentIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceDetail(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceDetail(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1551,13 +1556,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device detail", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device detail", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceLocation(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceLocation(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1566,13 +1570,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device location", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device location", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceInfo(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceInfo(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_INFO WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_INFO WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1581,13 +1584,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device info", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device info", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceNotification(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceNotification(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_NOTIFICATION WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_NOTIFICATION WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1596,13 +1598,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device notification", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device notification", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceApplicationMapping(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceApplicationMapping(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1611,13 +1612,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device application mapping", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device application mapping", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDevicePolicyApplied(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDevicePolicyApplied(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_POLICY_APPLIED WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_POLICY_APPLIED WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1626,13 +1626,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device policy applied", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device policy applied", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDevicePolicy(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDevicePolicy(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_POLICY WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_POLICY WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1641,13 +1640,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device policy", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device policy", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeEnrollmentDeviceDetail(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
private void removeEnrollmentDeviceDetail(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE ENROLMENT_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE ENROLMENT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1656,13 +1654,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing enrollment device detail", e);
|
throw new DeviceManagementDAOException("Error occurred while removing enrollment device detail", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeEnrollmentDeviceLocation(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
private void removeEnrollmentDeviceLocation(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE ENROLMENT_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE ENROLMENT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1671,13 +1668,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing enrollment device location", e);
|
throw new DeviceManagementDAOException("Error occurred while removing enrollment device location", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeEnrollmentDeviceInfo(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
private void removeEnrollmentDeviceInfo(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_INFO WHERE ENROLMENT_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_INFO WHERE ENROLMENT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1686,14 +1682,13 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing enrollment device info", e);
|
throw new DeviceManagementDAOException("Error occurred while removing enrollment device info", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeEnrollmentDeviceApplicationMapping(Connection conn, int enrollmentId)
|
private void removeEnrollmentDeviceApplicationMapping(Connection conn, int enrollmentId)
|
||||||
throws DeviceManagementDAOException {
|
throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE ENROLMENT_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE ENROLMENT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1703,13 +1698,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
throw new DeviceManagementDAOException("Error occurred while removing enrollment device application " +
|
throw new DeviceManagementDAOException("Error occurred while removing enrollment device application " +
|
||||||
"mapping", e);
|
"mapping", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceOperationResponse(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
private void removeDeviceOperationResponse(Connection conn, int enrollmentId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_OPERATION_RESPONSE WHERE ENROLMENT_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_OPERATION_RESPONSE WHERE ENROLMENT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1718,14 +1712,13 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device operation response", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device operation response", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeEnrollmentOperationMapping(Connection conn, int enrollmentId)
|
private void removeEnrollmentOperationMapping(Connection conn, int enrollmentId)
|
||||||
throws DeviceManagementDAOException {
|
throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_ENROLMENT_OP_MAPPING WHERE ENROLMENT_ID = ?";
|
String sql = "DELETE FROM DM_ENROLMENT_OP_MAPPING WHERE ENROLMENT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1734,13 +1727,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing enrollment operation mapping", e);
|
throw new DeviceManagementDAOException("Error occurred while removing enrollment operation mapping", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceEnrollment(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceEnrollment(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_ENROLMENT WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_ENROLMENT WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1749,13 +1741,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device enrollment", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device enrollment", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDeviceGroupMapping(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDeviceGroupMapping(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE_GROUP_MAP WHERE DEVICE_ID = ?";
|
String sql = "DELETE FROM DM_DEVICE_GROUP_MAP WHERE DEVICE_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1764,13 +1755,12 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device group mapping", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device group mapping", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeDevice(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
private void removeDevice(Connection conn, int deviceId) throws DeviceManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE FROM DM_DEVICE WHERE ID = ?";
|
String sql = "DELETE FROM DM_DEVICE WHERE ID = ?";
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
@ -1779,7 +1769,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while removing device", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,11 +14,11 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2019, Entgra (pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
|
||||||
*
|
*
|
||||||
* Entgra (pvt) Ltd. licenses this file to you under the Apache License,
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
@ -550,6 +550,14 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.beginTransaction();
|
DeviceManagementDAOFactory.beginTransaction();
|
||||||
deviceDAO.deleteDevice(deviceId, tenantId);
|
deviceDAO.deleteDevice(deviceId, tenantId);
|
||||||
|
try {
|
||||||
|
deviceManager.deleteDevice(deviceId, device);
|
||||||
|
} catch (DeviceManagementException e) {
|
||||||
|
String msg = "Error occurred while permanently deleting '" + deviceId.getType() +
|
||||||
|
"' device with the identifier '" + deviceId.getId() + "' in plugin.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
DeviceManagementDAOFactory.commitTransaction();
|
DeviceManagementDAOFactory.commitTransaction();
|
||||||
this.removeDeviceFromCache(deviceId);
|
this.removeDeviceFromCache(deviceId);
|
||||||
} catch (DeviceManagementDAOException e) {
|
} catch (DeviceManagementDAOException e) {
|
||||||
|
|||||||
@ -59,6 +59,11 @@ public class TestDeviceManager implements DeviceManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -15,6 +15,22 @@
|
|||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.extensions.device.type.template;
|
package org.wso2.carbon.device.mgt.extensions.device.type.template;
|
||||||
|
|
||||||
@ -568,4 +584,35 @@ public class DeviceTypeManager implements DeviceManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(DeviceIdentifier deviceIdentifier, Device device) throws DeviceManagementException {
|
||||||
|
if (propertiesExist) {
|
||||||
|
boolean status;
|
||||||
|
Device existingDevice = this.getDevice(deviceIdentifier);
|
||||||
|
if (existingDevice == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Deleting the details of " + deviceType + " device : " + device.getDeviceIdentifier());
|
||||||
|
}
|
||||||
|
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
|
||||||
|
status = deviceTypePluginDAOManager.getDeviceDAO().deleteDevice(existingDevice);
|
||||||
|
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().commitTransaction();
|
||||||
|
} catch (DeviceTypeMgtPluginException e) {
|
||||||
|
try {
|
||||||
|
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().rollbackTransaction();
|
||||||
|
} catch (DeviceTypeMgtPluginException e1) {
|
||||||
|
log.warn("Error occurred while roll back the delete device info transaction : '" +
|
||||||
|
device.toString() + "'", e1);
|
||||||
|
}
|
||||||
|
throw new DeviceManagementException(
|
||||||
|
"Error occurred while deleting the " + deviceType + " device: '" +
|
||||||
|
device.getDeviceIdentifier() + "'", e);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,23 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.device.mgt.extensions.device.type.template.dao;
|
package org.wso2.carbon.device.mgt.extensions.device.type.template.dao;
|
||||||
@ -45,6 +62,7 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
|
|||||||
private String createDBqueryForAddDevice;
|
private String createDBqueryForAddDevice;
|
||||||
private String updateDBQueryForUpdateDevice;
|
private String updateDBQueryForUpdateDevice;
|
||||||
private String selectDBQueryToGetAllDevice;
|
private String selectDBQueryToGetAllDevice;
|
||||||
|
private String deleteDBQueryForDeleteDevice;
|
||||||
|
|
||||||
public DeviceTypePluginDAOImpl(DeviceDAODefinition deviceDAODefinition,
|
public DeviceTypePluginDAOImpl(DeviceDAODefinition deviceDAODefinition,
|
||||||
DeviceTypeDAOHandler deviceTypeDAOHandler) {
|
DeviceTypeDAOHandler deviceTypeDAOHandler) {
|
||||||
@ -196,6 +214,33 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(Device device) throws DeviceTypeMgtPluginException {
|
||||||
|
boolean status = false;
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
conn = deviceTypeDAOHandler.getConnection();
|
||||||
|
stmt = conn.prepareStatement(deleteDBQueryForDeleteDevice);
|
||||||
|
stmt.setString(1, device.getDeviceIdentifier());
|
||||||
|
int rows = stmt.executeUpdate();
|
||||||
|
if (rows > 0) {
|
||||||
|
status = true;
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Device " + device.getDeviceIdentifier() + " data has been deleted.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while deleting the device '" + device.getDeviceIdentifier() + "' data in "
|
||||||
|
+ deviceDAODefinition.getDeviceTableName();
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceTypeMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DeviceTypeUtils.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
private String getDeviceTableColumnNames() {
|
private String getDeviceTableColumnNames() {
|
||||||
return StringUtils.join(deviceDAODefinition.getColumnNames(), ", ");
|
return StringUtils.join(deviceDAODefinition.getColumnNames(), ", ");
|
||||||
}
|
}
|
||||||
@ -239,5 +284,8 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
|
|||||||
selectDBQueryToGetAllDevice =
|
selectDBQueryToGetAllDevice =
|
||||||
"SELECT " + getDeviceTableColumnNames() + "," + deviceDAODefinition.getPrimaryKey() + " FROM "
|
"SELECT " + getDeviceTableColumnNames() + "," + deviceDAODefinition.getPrimaryKey() + " FROM "
|
||||||
+ deviceDAODefinition.getDeviceTableName();
|
+ deviceDAODefinition.getDeviceTableName();
|
||||||
|
|
||||||
|
deleteDBQueryForDeleteDevice = "DELETE FROM " + deviceDAODefinition.getDeviceTableName() + " WHERE "
|
||||||
|
+ deviceDAODefinition.getPrimaryKey() + " = ?";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,23 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.device.mgt.extensions.device.type.template.dao;
|
package org.wso2.carbon.device.mgt.extensions.device.type.template.dao;
|
||||||
@ -31,4 +48,6 @@ public interface PluginDAO {
|
|||||||
boolean updateDevice(Device device) throws DeviceTypeMgtPluginException;
|
boolean updateDevice(Device device) throws DeviceTypeMgtPluginException;
|
||||||
|
|
||||||
List<Device> getAllDevices() throws DeviceTypeMgtPluginException;
|
List<Device> getAllDevices() throws DeviceTypeMgtPluginException;
|
||||||
|
|
||||||
|
boolean deleteDevice(Device device) throws DeviceTypeMgtPluginException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,23 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.device.mgt.extensions.device.type.template.dao;
|
package org.wso2.carbon.device.mgt.extensions.device.type.template.dao;
|
||||||
@ -201,6 +218,27 @@ public class PropertyBasedPluginDAOImpl implements PluginDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(Device device) throws DeviceTypeMgtPluginException {
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
conn = deviceTypeDAOHandler.getConnection();
|
||||||
|
stmt = conn.prepareStatement("DELETE FROM DM_DEVICE_PROPERTIES WHERE DEVICE_IDENTIFICATION = ?");
|
||||||
|
stmt.setString(1, device.getDeviceIdentifier());
|
||||||
|
stmt.executeUpdate();
|
||||||
|
return true;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while deleting the device '" + device.getDeviceIdentifier() + "' data on"
|
||||||
|
+ deviceType;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceTypeMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DeviceTypeUtils.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private String getPropertyValue(List<Device.Property> properties, String propertyName) {
|
private String getPropertyValue(List<Device.Property> properties, String propertyName) {
|
||||||
for (Device.Property property : properties) {
|
for (Device.Property property : properties) {
|
||||||
if (property.getName() != null && property.getName().equals(propertyName)) {
|
if (property.getName() != null && property.getName().equals(propertyName)) {
|
||||||
|
|||||||
@ -14,6 +14,23 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.policy.mgt.core.mock;
|
package org.wso2.carbon.policy.mgt.core.mock;
|
||||||
|
|
||||||
@ -61,6 +78,11 @@ public class TypeXDeviceManager implements DeviceManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user