/** * Helper method to be able to collect all the versions of the provided * entity that currently exist in lightblue. * * @param entityName - name of entity to to find versions for. * @return Set of entity versions * @throws LightblueException */ public Set<String> getEntityVersions(String entityName) throws LightblueException { MetadataGetEntityVersionsRequest versionRequest = new MetadataGetEntityVersionsRequest(entityName); try (LightblueHttpClient client = getLightblueClient()) { LightblueResponse response = client.metadata(versionRequest); ArrayNode versionNodes = (ArrayNode) response.getJson(); Set<String> versions = new HashSet<>(); for (JsonNode node : versionNodes) { versions.add(node.get("version").textValue()); } return versions; } catch (IOException ex) { throw new LightblueException("Unable to close HttpClient", ex); } }
@Override public String getMessage() { if (lightblueResponse != null) { StringBuffer sb = new StringBuffer(super.getMessage()); if (!StringUtils.isEmpty(lightblueResponse.getRequestId())) { sb.append(" RequestID=").append(lightblueResponse.getRequestId()); } sb.append(' ').append(lightblueResponse.getText()); return sb.toString(); } else { return super.getMessage(); } } }
@Override public List<LightblueResponse> save(List<JsonNode> docs) throws LightblueException { List<LightblueResponse> responses = new ArrayList<>(); StringBuilder errorMessage = new StringBuilder(); List<JsonNode> batch = new ArrayList<>(); for (JsonNode doc : docs) { batch.add(doc); if (batch.size() >= BATCH_SIZE) { try { responses.add(saveBatch(batch)); } catch (LightblueResponseException ex) { errorMessage.append(ex.getLightblueResponse().getText()); } batch.clear(); } } if (!batch.isEmpty()) { try { responses.add(saveBatch(batch)); ping("Saving a batch"); } catch (LightblueResponseException ex) { errorMessage.append(ex.getLightblueResponse().getText()); } } if (errorMessage.length() > 0) { throw new LightblueException("Failed saving docs: " + errorMessage); } return responses; }
LOGGER.info("source: {}, dest: {}, written: {}", sourceDocs.size(), destDocs.size(), saveDocsList.size()); } catch (LightblueException ex) { LOGGER.error("Error during migration of {}:{}", migrationJob.getConfigurationName(), ex.getMessage()); execution.setErrorMsg(ex.getMessage());
throw new LightblueException(e); } finally { try {