mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge pull request #735 from ayyoob/new-master
fixed device stats page loading issue
This commit is contained in:
commit
b277777728
@ -107,42 +107,4 @@ public interface DeviceTypePublisherAdminService {
|
|||||||
required = true)
|
required = true)
|
||||||
@PathParam("type") String type);
|
@PathParam("type") String type);
|
||||||
|
|
||||||
@GET
|
|
||||||
@Path("/deploy/{type}/status")
|
|
||||||
@ApiOperation(
|
|
||||||
httpMethod = "GET",
|
|
||||||
value = "Check the status of device type artifact\n",
|
|
||||||
notes = "This is an API that can be used to check the status of the artifact",
|
|
||||||
response = Response.class,
|
|
||||||
tags = "Devicetype Status Service",
|
|
||||||
extensions = {
|
|
||||||
@Extension(properties = {
|
|
||||||
@ExtensionProperty(name = Constants.SCOPE, value = "perm:devicetype:deployment")
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
@ApiResponses(value = {
|
|
||||||
@ApiResponse(
|
|
||||||
code = 201,
|
|
||||||
message = "OK. \n Successfully deployed the artifacts.",
|
|
||||||
response = Response.class),
|
|
||||||
@ApiResponse(
|
|
||||||
code = 400,
|
|
||||||
message = "Bad Request. \n Invalid request or validation error.",
|
|
||||||
response = ErrorResponse.class),
|
|
||||||
@ApiResponse(
|
|
||||||
code = 404,
|
|
||||||
message = "Not Found. \n The specified resource does not exist."),
|
|
||||||
@ApiResponse(
|
|
||||||
code = 415,
|
|
||||||
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
|
|
||||||
@ApiResponse(
|
|
||||||
code = 500,
|
|
||||||
message = "Internal Server Error. \n Server error occurred while checking the authorization" +
|
|
||||||
" for a specified set of devices.",
|
|
||||||
response = ErrorResponse.class)
|
|
||||||
})
|
|
||||||
|
|
||||||
Response getStatus(@PathParam("type") String deviceType);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -185,14 +185,6 @@ public class DeviceTypePublisherAdminServiceImpl implements DeviceTypePublisherA
|
|||||||
if (receiverFileList != null) {
|
if (receiverFileList != null) {
|
||||||
publishDynamicEventReceivers(type, tenantDomain, receiverFileList);
|
publishDynamicEventReceivers(type, tenantDomain, receiverFileList);
|
||||||
}
|
}
|
||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
|
||||||
Registry registry = DeviceMgtAPIUtils.getRegistryService().getConfigSystemRegistry(tenantId);
|
|
||||||
if (!registry.resourceExists(DEFAULT_RESOURCE_LOCATION + type + ".exist")) {
|
|
||||||
Resource resource = new ResourceImpl();
|
|
||||||
resource.setContent("</exist>");
|
|
||||||
resource.setMediaType(MEDIA_TYPE_XML);
|
|
||||||
registry.put(DEFAULT_RESOURCE_LOCATION + type + ".exist", resource);
|
|
||||||
}
|
|
||||||
return Response.status(Response.Status.CREATED).entity("\"OK. \\n Successfully uploaded the artifacts.\"")
|
return Response.status(Response.Status.CREATED).entity("\"OK. \\n Successfully uploaded the artifacts.\"")
|
||||||
.build();
|
.build();
|
||||||
} catch (AxisFault e) {
|
} catch (AxisFault e) {
|
||||||
@ -227,6 +219,7 @@ public class DeviceTypePublisherAdminServiceImpl implements DeviceTypePublisherA
|
|||||||
if (directory.isDirectory() && directory.exists()) {
|
if (directory.isDirectory() && directory.exists()) {
|
||||||
UploadedFileItem[] uploadedFileItems = loadCappFromFileSystem(type);
|
UploadedFileItem[] uploadedFileItems = loadCappFromFileSystem(type);
|
||||||
if (uploadedFileItems.length > 0) {
|
if (uploadedFileItems.length > 0) {
|
||||||
|
if (DEVICE_MANAGEMENT_TYPE.equals(type.toLowerCase())) {
|
||||||
carbonAppUploaderStub = new CarbonAppUploaderStub(Utils.replaceSystemProperty(
|
carbonAppUploaderStub = new CarbonAppUploaderStub(Utils.replaceSystemProperty(
|
||||||
IOT_MGT_URL));
|
IOT_MGT_URL));
|
||||||
Options appUploaderOptions = carbonAppUploaderStub._getServiceClient().getOptions();
|
Options appUploaderOptions = carbonAppUploaderStub._getServiceClient().getOptions();
|
||||||
@ -235,15 +228,16 @@ public class DeviceTypePublisherAdminServiceImpl implements DeviceTypePublisherA
|
|||||||
}
|
}
|
||||||
appUploaderOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
|
appUploaderOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
|
||||||
appUploaderOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER
|
appUploaderOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER
|
||||||
, new Protocol(DEFAULT_HTTP_PROTOCOL, (ProtocolSocketFactory) new SSLProtocolSocketFactory
|
, new Protocol(DEFAULT_HTTP_PROTOCOL,
|
||||||
(sslContext), Integer.parseInt(Utils.replaceSystemProperty(IOT_MGT_PORT))));
|
(ProtocolSocketFactory) new SSLProtocolSocketFactory
|
||||||
|
(sslContext), Integer.parseInt(Utils.replaceSystemProperty(
|
||||||
|
IOT_MGT_PORT))));
|
||||||
|
|
||||||
carbonAppUploaderStub._getServiceClient().setOptions(appUploaderOptions);
|
carbonAppUploaderStub._getServiceClient().setOptions(appUploaderOptions);
|
||||||
carbonAppUploaderStub.uploadApp(uploadedFileItems);
|
carbonAppUploaderStub.uploadApp(uploadedFileItems);
|
||||||
|
} else {
|
||||||
if (!DEVICE_MANAGEMENT_TYPE.equals(type.toLowerCase())) {
|
|
||||||
carbonAppUploaderStub = new CarbonAppUploaderStub(Utils.replaceSystemProperty(DAS_URL));
|
carbonAppUploaderStub = new CarbonAppUploaderStub(Utils.replaceSystemProperty(DAS_URL));
|
||||||
appUploaderOptions = carbonAppUploaderStub._getServiceClient().getOptions();
|
Options appUploaderOptions = carbonAppUploaderStub._getServiceClient().getOptions();
|
||||||
if (appUploaderOptions == null) {
|
if (appUploaderOptions == null) {
|
||||||
appUploaderOptions = new Options();
|
appUploaderOptions = new Options();
|
||||||
}
|
}
|
||||||
@ -266,27 +260,6 @@ public class DeviceTypePublisherAdminServiceImpl implements DeviceTypePublisherA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
|
||||||
@Path("/deploy/{type}/status")
|
|
||||||
@Override
|
|
||||||
public Response getStatus(@PathParam("type") String deviceType) {
|
|
||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
|
||||||
Registry registry;
|
|
||||||
try {
|
|
||||||
registry = DeviceMgtAPIUtils.getRegistryService().getConfigSystemRegistry(tenantId);
|
|
||||||
if (registry.resourceExists(DEFAULT_RESOURCE_LOCATION + deviceType + ".exist")) {
|
|
||||||
return Response.status(Response.Status.OK).entity("Exist").build();
|
|
||||||
} else {
|
|
||||||
return Response.status(Response.Status.NO_CONTENT).entity("Does not Exist").build();
|
|
||||||
}
|
|
||||||
} catch (RegistryException e) {
|
|
||||||
log.error("Registry failed to load." + e.getMessage(), e);
|
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
|
|
||||||
"\"Error, Artifact status check has failed\"").build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void publishDynamicEventReceivers(String deviceType, String tenantDomain, List<String> receiversList)
|
private void publishDynamicEventReceivers(String deviceType, String tenantDomain, List<String> receiversList)
|
||||||
throws IOException, UserStoreException, JWTClientException {
|
throws IOException, UserStoreException, JWTClientException {
|
||||||
|
|
||||||
|
|||||||
@ -612,6 +612,9 @@ var userModule = function () {
|
|||||||
if (publicMethods.isAuthorized("/permission/admin/device-mgt/devices/change-status")) {
|
if (publicMethods.isAuthorized("/permission/admin/device-mgt/devices/change-status")) {
|
||||||
permissions["CHANGE_DEVICE_STATUS"] = true;
|
permissions["CHANGE_DEVICE_STATUS"] = true;
|
||||||
}
|
}
|
||||||
|
if (publicMethods.isAuthorized("/permission/admin/device-mgt")) {
|
||||||
|
permissions["IS_ADMIN"] = true;
|
||||||
|
}
|
||||||
|
|
||||||
return permissions;
|
return permissions;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -456,15 +456,18 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
function statisticLoad(redirectUrl) {
|
function statisticLoad(redirectUrl) {
|
||||||
var contentType = "application/json";
|
var contentType = "application/json";
|
||||||
|
|
||||||
var uri = backendEndBasePath + "/admin/devicetype/deploy/device_management/status";
|
|
||||||
var defaultStatusClasses = "fw fw-stack-1x";
|
var defaultStatusClasses = "fw fw-stack-1x";
|
||||||
var content = $("#statistic-response-template").find(".content");
|
var content = $("#statistic-response-template").find(".content");
|
||||||
var title = content.find("#title");
|
var title = content.find("#title");
|
||||||
var statusIcon = content.find("#status-icon");
|
var statusIcon = content.find("#status-icon");
|
||||||
|
|
||||||
invokerUtil.get(uri, function (data, textStatus, jqXHR) {
|
$.ajax({
|
||||||
if (jqXHR.status == 204) {
|
url: redirectUrl,
|
||||||
|
type: "GET",
|
||||||
|
success: function () {
|
||||||
|
window.location.href = redirectUrl;
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
var urix = backendEndBasePath + "/admin/devicetype/deploy/device_management";
|
var urix = backendEndBasePath + "/admin/devicetype/deploy/device_management";
|
||||||
var device = {};
|
var device = {};
|
||||||
invokerUtil.post(urix, device, function (data) {
|
invokerUtil.post(urix, device, function (data) {
|
||||||
@ -472,25 +475,39 @@ function statisticLoad(redirectUrl) {
|
|||||||
statusIcon.attr("class", defaultStatusClasses + " fw-check");
|
statusIcon.attr("class", defaultStatusClasses + " fw-check");
|
||||||
$(modalPopupContent).html(content.html());
|
$(modalPopupContent).html(content.html());
|
||||||
showPopup();
|
showPopup();
|
||||||
setTimeout(function () {
|
poll(redirectUrl);
|
||||||
hidePopup();
|
|
||||||
// location.reload(true);
|
|
||||||
location.href = redirectUrl;
|
|
||||||
}, 20000);
|
|
||||||
|
|
||||||
}, function (jqXHR) {
|
}, function (jqXHR) {
|
||||||
title.html("Failed to deploy artifacts, Please contact administrator.");
|
title.html("Failed to deploy artifacts, Please contact administrator.");
|
||||||
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
||||||
$(modalPopupContent).html(content.html());
|
$(modalPopupContent).html(content.html());
|
||||||
showPopup();
|
showPopup();
|
||||||
}, contentType);
|
}, contentType);
|
||||||
} else {
|
|
||||||
location.href = redirectUrl;
|
|
||||||
}
|
}
|
||||||
}, function (jqXHR) {
|
});
|
||||||
title.html("Failed to connect with server, Please contact administrator.");
|
|
||||||
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
|
||||||
$(modalPopupContent).html(content.html());
|
|
||||||
showPopup();
|
|
||||||
}, contentType);
|
|
||||||
}
|
}
|
||||||
|
var pollingCount = 15;
|
||||||
|
function poll(portalUrl) {
|
||||||
|
var content = $("#statistic-response-template").find(".content");
|
||||||
|
var title = content.find("#title");
|
||||||
|
var defaultStatusClasses = "fw fw-stack-1x";
|
||||||
|
var statusIcon = content.find("#status-icon");
|
||||||
|
$.ajax({
|
||||||
|
url: portalUrl,
|
||||||
|
type: "GET",
|
||||||
|
success: function (data) {
|
||||||
|
window.location.href = portalUrl;
|
||||||
|
},
|
||||||
|
dataType: "json",
|
||||||
|
error: setTimeout(function () {
|
||||||
|
pollingCount = pollingCount - 1;
|
||||||
|
if (pollingCount > 0) {
|
||||||
|
poll(portalUrl);
|
||||||
|
} else {
|
||||||
|
window.location.href = portalUrl;
|
||||||
|
}
|
||||||
|
}, 5000),
|
||||||
|
timeout: 5000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user