use of com.serotonin.json.type.JsonTypeReader in project ma-core-public by infiniteautomation.
the class StoreLatestProductionTest method testThreeThreeReleaseVersion.
public void testThreeThreeReleaseVersion() throws JsonException, IOException, HttpException {
// Setup json
json.put("upgradeVersionState", UpgradeVersionState.PRODUCTION);
json.put("currentVersionState", UpgradeVersionState.PRODUCTION);
jsonModules.put("core", "3.3.0");
jsonModules.put("mangoApi", "3.3.0");
String url = baseUrl + "/servlet/versionCheck";
HttpPost post = new HttpPost(url);
StringWriter stringWriter = new StringWriter();
new JsonWriter(JSON_CONTEXT, stringWriter).writeObject(json);
String requestData = stringWriter.toString();
post.setEntity(new StringEntity(requestData));
String responseData = HttpUtils4.getTextContent(getHttpClient(30000), post, 1);
JsonTypeReader jsonReader = new JsonTypeReader(responseData);
JsonValue response = jsonReader.read();
// printResponse(response);
Assert.assertNotNull(response.getJsonValue("versionState"));
Assert.assertEquals("PRODUCTION", response.getJsonValue("versionState").toString());
// Assert newInstalls-oldCore should be empty
Assert.assertNotNull(response.getJsonValue("newInstalls-oldCore"));
JsonArray newInstallsOldCore = response.getJsonValue("newInstalls-oldCore").toJsonArray();
Assert.assertEquals(true, newInstallsOldCore.size() == 0);
// Assert update-versionState
Assert.assertNull(response.getJsonValue("update-versionState"));
// Assert updates for this core iff major upgrade available
Assert.assertNotNull(response.getJsonValue("updates"));
JsonArray updates = response.getJsonValue("updates").toJsonArray();
Assert.assertEquals(true, updates.size() == 0);
// Assert upgrades
Assert.assertNotNull(response.getJsonValue("upgrades"));
JsonArray upgrades = response.getJsonValue("upgrades").toJsonArray();
Assert.assertEquals(true, upgrades.size() > 0);
for (JsonValue upgrade : upgrades) {
Assert.assertEquals(true, upgrade.getJsonValue("fullVersion").toString().startsWith(latestProductionCorePrefix));
}
// Assert newInstalls should be for latest production core
Assert.assertNotNull(response.getJsonValue("newInstalls"));
JsonArray newInstalls = response.getJsonValue("newInstalls").toJsonArray();
Assert.assertEquals(true, newInstalls.size() > 0);
for (JsonValue install : newInstalls) {
Assert.assertEquals(true, install.getJsonValue("fullVersion").toString().startsWith(latestProductionCorePrefix));
}
}
use of com.serotonin.json.type.JsonTypeReader in project ma-core-public by infiniteautomation.
the class JsonEmportScriptUtility method doImportGetStatus.
public List<ProcessMessage> doImportGetStatus(String json) throws Exception {
if (admin) {
JsonTypeReader reader = new JsonTypeReader(json);
JsonValue value = reader.read();
JsonObject jo = value.toJsonObject();
if (importExclusions != null)
doExclusions(jo);
ScriptImportTask sit = new ScriptImportTask(jo);
sit.run(Common.timer.currentTimeMillis());
return sit.getMessages();
}
return null;
}
use of com.serotonin.json.type.JsonTypeReader in project ma-core-public by infiniteautomation.
the class JsonEmportScriptUtility method doImport.
public void doImport(String json) throws Exception {
if (admin) {
JsonTypeReader reader = new JsonTypeReader(json);
JsonValue value = reader.read();
JsonObject jo = value.toJsonObject();
if (importExclusions != null)
doExclusions(jo);
ScriptImportTask sit = new ScriptImportTask(jo);
sit.run(Common.timer.currentTimeMillis());
}
}
use of com.serotonin.json.type.JsonTypeReader in project ma-core-public by infiniteautomation.
the class EmportDwr method importData.
@DwrPermission(admin = true)
public ProcessResult importData(String data) {
ProcessResult response = new ProcessResult();
Translations translations = getTranslations();
User user = Common.getHttpUser();
JsonTypeReader reader = new JsonTypeReader(data);
try {
JsonValue value = reader.read();
if (value instanceof JsonObject) {
JsonObject root = value.toJsonObject();
ImportTask importTask = new ImportTask(root, translations, user, true);
user.setImportTask(importTask);
response.addData("importStarted", true);
} else {
response.addGenericMessage("emport.invalidImportData");
}
} catch (ClassCastException e) {
response.addGenericMessage("emport.parseError", e.getMessage());
} catch (TranslatableJsonException e) {
response.addMessage(e.getMsg());
} catch (IOException e) {
response.addGenericMessage("emport.parseError", e.getMessage());
} catch (JsonException e) {
response.addGenericMessage("emport.parseError", e.getMessage());
}
return response;
}
use of com.serotonin.json.type.JsonTypeReader in project ma-core-public by infiniteautomation.
the class ModulesDwr method startDownloads.
@DwrPermission(admin = true)
public static String startDownloads(List<StringStringPair> modules, boolean backup, boolean restart) {
synchronized (UPGRADE_DOWNLOADER_LOCK) {
if (UPGRADE_DOWNLOADER != null)
return Common.translate("modules.versionCheck.occupied");
}
// Check if the selected modules will result in a version-consistent system.
try {
// Create the request
Map<String, Object> json = new HashMap<>();
Map<String, String> jsonModules = new HashMap<>();
json.put("modules", jsonModules);
Version coreVersion = Common.getVersion();
jsonModules.put("core", coreVersion.toString());
for (StringStringPair module : modules) jsonModules.put(module.getKey(), module.getValue());
StringWriter stringWriter = new StringWriter();
new JsonWriter(Common.JSON_CONTEXT, stringWriter).writeObject(json);
String requestData = stringWriter.toString();
// Send the request
String baseUrl = Common.envProps.getString("store.url");
baseUrl += "/servlet/consistencyCheck";
HttpPost post = new HttpPost(baseUrl);
post.setEntity(new StringEntity(requestData));
String responseData = HttpUtils4.getTextContent(Common.getHttpClient(), post, 1);
// Parse the response
JsonTypeReader jsonReader = new JsonTypeReader(responseData);
String result = jsonReader.read().toString();
if (!"ok".equals(result))
return result;
} catch (Exception e) {
LOG.error("", e);
return e.getMessage();
}
synchronized (UPGRADE_DOWNLOADER_LOCK) {
// Ensure that 2 downloads cannot start at the same time.
if (UPGRADE_DOWNLOADER == null) {
UPGRADE_DOWNLOADER = new UpgradeDownloader(modules, backup, restart, Common.getHttpUser());
// Clear out common info
resetUpgradeStatus();
Common.backgroundProcessing.execute(UPGRADE_DOWNLOADER);
} else
return Common.translate("modules.versionCheck.occupied");
}
return null;
}
Aggregations