mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
This commit is contained in:
commit
6edfad5fb7
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. 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.jaxrs.beans;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData;
|
||||
|
||||
@ApiModel(value = "DeviceCompliance", description = "Device's policy compliance status")
|
||||
public class DeviceCompliance {
|
||||
|
||||
private int deviceID;
|
||||
private ComplianceData complianceData;
|
||||
private Long code;
|
||||
|
||||
public ComplianceData getComplianceData() {
|
||||
return complianceData;
|
||||
}
|
||||
|
||||
public void setComplianceData(ComplianceData complianceData) {
|
||||
this.complianceData = complianceData;
|
||||
}
|
||||
|
||||
public Long getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Long code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public int getDeviceID() {
|
||||
return deviceID;
|
||||
}
|
||||
|
||||
public void setDeviceID(int deviceID) {
|
||||
this.deviceID = deviceID;
|
||||
}
|
||||
|
||||
}
|
||||
@ -29,6 +29,7 @@ import org.wso2.carbon.device.mgt.common.search.SearchContext;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData;
|
||||
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
@ -667,4 +668,45 @@ public interface DeviceManagementService {
|
||||
@HeaderParam("If-Modified-Since")
|
||||
String ifModifiedSince);
|
||||
|
||||
|
||||
|
||||
@GET
|
||||
@Path("{type}/{id}/compliance-data")
|
||||
@ApiOperation(
|
||||
produces = MediaType.APPLICATION_JSON,
|
||||
httpMethod = "GET",
|
||||
value = "Get the effective policy calculated for a device.",
|
||||
notes = "When a device registers with WSO2 EMM a policy is enforced on the device. Initially the "
|
||||
+ "EMM filters the policies based on the Platform (device type), filters based on the "
|
||||
+ "device ownership type , filters based on the user role or name and finally the policy"
|
||||
+ " is enforced on the device.",
|
||||
tags = "Device Management")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
code = 200,
|
||||
message = "OK",
|
||||
response = ComplianceData.class),
|
||||
@ApiResponse(
|
||||
code = 400,
|
||||
message = "Bad Request. \n Invalid request or validation error.",
|
||||
response = ErrorResponse.class),
|
||||
@ApiResponse(
|
||||
code = 500,
|
||||
message = "Error occurred while getting the compliance data.",
|
||||
response = ErrorResponse.class)
|
||||
}
|
||||
)
|
||||
Response getComplianceDataOfDevice(
|
||||
@ApiParam(
|
||||
name = "type",
|
||||
value = "The device type, such as ios, android or windows.",
|
||||
required = true)
|
||||
@PathParam("type")
|
||||
String type,
|
||||
@ApiParam(
|
||||
name = "id",
|
||||
value = "Device Identifier",
|
||||
required = true)
|
||||
@PathParam("id") String id);
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@ import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderServ
|
||||
import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
|
||||
import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceCompliance;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.OperationList;
|
||||
@ -38,6 +39,8 @@ import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
||||
import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData;
|
||||
import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
|
||||
import javax.ws.rs.*;
|
||||
@ -301,4 +304,48 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("{type}/{id}/compliance-data")
|
||||
public Response getComplianceDataOfDevice(@PathParam("type") String type,
|
||||
@PathParam("id") String id) {
|
||||
|
||||
RequestValidationUtil.validateDeviceIdentifier(type, id);
|
||||
PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
|
||||
Policy policy;
|
||||
ComplianceData complianceData = null;
|
||||
DeviceCompliance deviceCompliance = new DeviceCompliance();
|
||||
|
||||
try {
|
||||
policy = policyManagementService.getAppliedPolicyToDevice(new DeviceIdentifier(id, type));
|
||||
} catch (PolicyManagementException e) {
|
||||
String msg = "Error occurred while retrieving the current policy associated with the '" + type +
|
||||
"' device, which carries the id '" + id + "'";
|
||||
log.error(msg, e);
|
||||
return Response.serverError().entity(
|
||||
new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
|
||||
}
|
||||
|
||||
if (policy == null) {
|
||||
deviceCompliance.setDeviceID(Integer.valueOf(id));
|
||||
deviceCompliance.setComplianceData(null);
|
||||
//deviceCompliance.setCode(0001l); //code 0001 means no compliance data related to the device
|
||||
return Response.status(Response.Status.OK).entity(deviceCompliance).build();
|
||||
} else {
|
||||
try {
|
||||
policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
|
||||
complianceData = policyManagementService.getDeviceCompliance(
|
||||
new DeviceIdentifier(id, type));
|
||||
deviceCompliance.setDeviceID(Integer.valueOf(id));
|
||||
deviceCompliance.setComplianceData(complianceData);
|
||||
//deviceCompliance.setCode(0002l); //code 0002 means there are compliance data related to the device
|
||||
return Response.status(Response.Status.OK).entity(deviceCompliance).build();
|
||||
} catch (PolicyComplianceException e) {
|
||||
String error = "Error occurred while getting the compliance data.";
|
||||
log.error(error, e);
|
||||
return Response.serverError().entity(
|
||||
new ErrorResponse.ErrorResponseBuilder().setMessage(error).build()).build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user