Merge branch 'reporting' into 'reporting'

Add app scree usage reporting related changes

See merge request entgra/carbon-device-mgt!454
feature/appm-store/pbac
Dharmakeerthi Lasantha 5 years ago
commit 131e8dfd1c

@ -53,6 +53,10 @@ public class Application implements Serializable {
private int memoryUsage; private int memoryUsage;
@ApiModelProperty(name = "isActive", value = "Is the application actively running", required = true) @ApiModelProperty(name = "isActive", value = "Is the application actively running", required = true)
private boolean isActive; private boolean isActive;
@ApiModelProperty(name = "hourlyUsage", value = "App hourly usage")
private long hourlyUsage;
@ApiModelProperty(name = "dailyUsage", value = "App daily usage")
private long dailyUsage;
public String getType() { public String getType() {
@ -179,4 +183,20 @@ public class Application implements Serializable {
public void setActive(boolean active) { public void setActive(boolean active) {
isActive = active; isActive = active;
} }
public long getHourlyUsage() {
return hourlyUsage;
}
public void setHourlyUsage(long hourlyUsage) {
this.hourlyUsage = hourlyUsage;
}
public long getDailyUsage() {
return dailyUsage;
}
public void setDailyUsage(long dailyUsage) {
this.dailyUsage = dailyUsage;
}
} }

@ -144,8 +144,9 @@ public final class DeviceManagementConstants {
private Report() { private Report() {
throw new AssertionError(); throw new AssertionError();
} }
public static final String REPORTING_EVENT_HOST = "iot.reporting.event.host";
public static final String REPORTING_CONTEXT = "/event"; public static final String REPORTING_CONTEXT = "/event";
public static final String DEVICE_INFO_ENDPOINT = REPORTING_CONTEXT + "/device-info"; public static final String DEVICE_INFO_ENDPOINT = REPORTING_CONTEXT + "/device-info";
public static final String REPORTING_EVENT_HOST = "iot.reporting.event.host"; public static final String APP_USAGE_ENDPOINT = REPORTING_CONTEXT + "/app-usage";
} }
} }

@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.device.details.DeviceDetailsWrapper;
import org.wso2.carbon.device.mgt.common.exceptions.DeviceManagementException; import org.wso2.carbon.device.mgt.common.exceptions.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.exceptions.InvalidDeviceException; import org.wso2.carbon.device.mgt.common.exceptions.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.exceptions.TransactionManagementException; import org.wso2.carbon.device.mgt.common.exceptions.TransactionManagementException;
@ -39,6 +40,7 @@ import org.wso2.carbon.device.mgt.core.dao.ApplicationDAO;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException; import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
import org.wso2.carbon.device.mgt.core.util.HttpReportingUtil;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
@ -277,6 +279,17 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
device.getEnrolmentInfo().getId(), tenantId); device.getEnrolmentInfo().getId(), tenantId);
} }
DeviceManagementDAOFactory.commitTransaction(); DeviceManagementDAOFactory.commitTransaction();
String reportingHost = HttpReportingUtil.getReportingHost();
if (!StringUtils.isBlank(reportingHost)) {
DeviceDetailsWrapper deviceDetailsWrapper = new DeviceDetailsWrapper();
deviceDetailsWrapper.setTenantId(tenantId);
deviceDetailsWrapper.setDevice(device);
deviceDetailsWrapper.setApplications(newApplications);
HttpReportingUtil.invokeApi(deviceDetailsWrapper.getJSONString(),
reportingHost + DeviceManagementConstants.Report.APP_USAGE_ENDPOINT);
}
} catch (DeviceManagementDAOException e) { } catch (DeviceManagementDAOException e) {
DeviceManagementDAOFactory.rollbackTransaction(); DeviceManagementDAOFactory.rollbackTransaction();
String msg = "Error occurred saving application list of the device " + device.getDeviceIdentifier(); String msg = "Error occurred saving application list of the device " + device.getDeviceIdentifier();

@ -18,6 +18,7 @@
package org.wso2.carbon.device.mgt.core.device.details.mgt.impl; package org.wso2.carbon.device.mgt.core.device.details.mgt.impl;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.CarbonContext;
@ -175,9 +176,8 @@ public class DeviceInformationManagerImpl implements DeviceInformationManager {
} }
private void publishEvents(Device device, DeviceInfo deviceInfo) { private void publishEvents(Device device, DeviceInfo deviceInfo) {
String reportingHost = System.getProperty(DeviceManagementConstants.Report String reportingHost = HttpReportingUtil.getReportingHost();
.REPORTING_EVENT_HOST); if (!StringUtils.isBlank(reportingHost) && isPublishingEnabledForTenant()) {
if (reportingHost != null && !reportingHost.isEmpty() && isPublishingEnabledForTenant()) {
try { try {
DeviceDetailsWrapper deviceDetailsWrapper = new DeviceDetailsWrapper(); DeviceDetailsWrapper deviceDetailsWrapper = new DeviceDetailsWrapper();
deviceDetailsWrapper.setDevice(device); deviceDetailsWrapper.setDevice(device);

@ -25,11 +25,16 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.protocol.HTTP; import org.apache.http.protocol.HTTP;
import org.wso2.carbon.device.mgt.common.exceptions.EventPublishingException; import org.wso2.carbon.device.mgt.common.exceptions.EventPublishingException;
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
import java.io.IOException; import java.io.IOException;
public class HttpReportingUtil { public class HttpReportingUtil {
public static String getReportingHost() {
return System.getProperty(DeviceManagementConstants.Report.REPORTING_EVENT_HOST);
}
public static int invokeApi(String payload, String endpoint) throws EventPublishingException { public static int invokeApi(String payload, String endpoint) throws EventPublishingException {
try (CloseableHttpClient client = HttpClients.createDefault()) { try (CloseableHttpClient client = HttpClients.createDefault()) {
HttpPost apiEndpoint = new HttpPost(endpoint); HttpPost apiEndpoint = new HttpPost(endpoint);

Loading…
Cancel
Save