Search in sources :

Example 1 with UpgradeStatusModel

use of com.serotonin.m2m2.web.mvc.rest.v1.model.modules.UpgradeStatusModel in project ma-modules-public by infiniteautomation.

the class ModulesRestController method getUpgradeStatus.

@ApiOperation(value = "Get Current Upgrade Task Status", notes = "")
@RequestMapping(method = RequestMethod.GET, value = "/upgrade-status", produces = { "application/json" })
public ResponseEntity<UpgradeStatusModel> getUpgradeStatus(HttpServletRequest request) {
    RestProcessResult<UpgradeStatusModel> result = new RestProcessResult<UpgradeStatusModel>(HttpStatus.OK);
    User user = this.checkUser(request, result);
    if (result.isOk()) {
        if (Permissions.hasAdmin(user)) {
            ProcessResult status = ModulesDwr.monitorDownloads();
            UpgradeStatusModel model = new UpgradeStatusModel();
            if (status.getHasMessages()) {
                // Not running
                model.setRunning(false);
            } else {
                List<ModuleModel> modules = new ArrayList<ModuleModel>();
                @SuppressWarnings("unchecked") List<StringStringPair> results = (List<StringStringPair>) status.getData().get("results");
                for (StringStringPair r : results) modules.add(new ModuleModel(r.getKey(), r.getValue()));
                model.setResults(modules);
                model.setFinished((boolean) status.getData().get("finished"));
                model.setCancelled((boolean) status.getData().get("cancelled"));
                model.setWillRestart((boolean) status.getData().get("restart"));
                Object error = status.getData().get("error");
                if (error != null)
                    model.setError((String) error);
                model.setStage((String) status.getData().get("stage"));
            }
            return result.createResponseEntity(model);
        } else {
            result.addRestMessage(this.getUnauthorizedMessage());
        }
    }
    return result.createResponseEntity();
}
Also used : StringStringPair(com.serotonin.db.pair.StringStringPair) User(com.serotonin.m2m2.vo.User) RestProcessResult(com.serotonin.m2m2.web.mvc.rest.v1.message.RestProcessResult) ProcessResult(com.serotonin.m2m2.i18n.ProcessResult) ArrayList(java.util.ArrayList) JsonString(com.serotonin.json.type.JsonString) ModuleModel(com.serotonin.m2m2.web.mvc.rest.v1.model.modules.ModuleModel) CoreModuleModel(com.serotonin.m2m2.web.mvc.rest.v1.model.modules.CoreModuleModel) RestProcessResult(com.serotonin.m2m2.web.mvc.rest.v1.message.RestProcessResult) List(java.util.List) ArrayList(java.util.ArrayList) JsonObject(com.serotonin.json.type.JsonObject) UpgradeStatusModel(com.serotonin.m2m2.web.mvc.rest.v1.model.modules.UpgradeStatusModel) ApiOperation(com.wordnik.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

StringStringPair (com.serotonin.db.pair.StringStringPair)1 JsonObject (com.serotonin.json.type.JsonObject)1 JsonString (com.serotonin.json.type.JsonString)1 ProcessResult (com.serotonin.m2m2.i18n.ProcessResult)1 User (com.serotonin.m2m2.vo.User)1 RestProcessResult (com.serotonin.m2m2.web.mvc.rest.v1.message.RestProcessResult)1 CoreModuleModel (com.serotonin.m2m2.web.mvc.rest.v1.model.modules.CoreModuleModel)1 ModuleModel (com.serotonin.m2m2.web.mvc.rest.v1.model.modules.ModuleModel)1 UpgradeStatusModel (com.serotonin.m2m2.web.mvc.rest.v1.model.modules.UpgradeStatusModel)1 ApiOperation (com.wordnik.swagger.annotations.ApiOperation)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1