List of usage examples for io.vertx.core.json JsonObject JsonObject
public JsonObject()
From source file:com.hpe.sw.cms.verticle.ApiVerticle.java
License:Apache License
/** * Handler to receive POST /_scanfile.//from ww w. j a v a 2 s .c o m * * @return */ private Handler<RoutingContext> uploadHandler() { return routingContext -> { int resposeCode = 201; String resposeMsg = "OK"; String host = routingContext.request().getParam(Image.HOST); String name = routingContext.request().getParam(Image.NAME); String tag = routingContext.request().getParam(Image.TAG); String imageid = routingContext.request().getParam(Image.IMAGE_ID); String errorMsg = routingContext.request().getParam("errorMsg"); JsonObject upFile = new JsonObject(); upFile.put(Image.HOST, host); upFile.put(Image.NAME, name); upFile.put(Image.TAG, tag); if (errorMsg != null && "0".equals(imageid)) { upFile.put(Image.IS_SCANNED_FAILED, true); LOG.error("scanfile uploaded failed " + Image.getImageKey(upFile) + " with error message " + errorMsg); } else { Set<FileUpload> upFiles = routingContext.fileUploads(); FileUpload upF = upFiles.iterator().next(); ByteArrayOutputStream out = null; BufferedInputStream in = null; upFile.put(Image.IMAGE_ID, imageid); upFile.put(Image.IS_SCANNED_FAILED, false); try { File file = new File(upF.uploadedFileName()); in = new BufferedInputStream(new FileInputStream(file)); out = new ByteArrayOutputStream(); IOUtils.copy(in, out); upFile.put(Image.SCANNED_FILE, out.toByteArray()); } catch (IOException e) { e.printStackTrace(); } finally { try { in.close(); out.close(); } catch (IOException e) { upFile.put(Image.IS_SCANNED_FAILED, true); resposeCode = 500; resposeMsg = "Error happens when in reading file"; LOG.error(resposeMsg, e); } } LOG.debug("scanfile uploaded " + Image.getImageKey(upFile)); } routingContext.response().setStatusCode(resposeCode).end(resposeMsg); getVertx().eventBus().publish(Events.SCANFILE_UPLOADED.name(), upFile); }; }
From source file:com.hpe.sw.cms.verticle.ApiVerticle.java
License:Apache License
/** * Handler to handle GET /images/:id request. Response is the image scan files (with/without enrich). * * @return/*from www . j a v a 2 s.c om*/ */ private Handler<RoutingContext> downloadHandler() { return routingContext -> { String category = routingContext.request().getParam("fileCategory"); JsonObject params = new JsonObject(); if (routingContext.request().getParam("id") != null) { params.put(Image.IMAGE_ID, routingContext.request().getParam("id")); } else { params.put(Image.HOST, routingContext.request().getParam(Image.HOST)); params.put(Image.NAME, routingContext.request().getParam(Image.NAME)); params.put(Image.TAG, routingContext.request().getParam(Image.TAG)); } vertx.eventBus().send(Events.DOWNLOAD_FILE.name(), params, event -> { if (event.succeeded() && event.result() != null) { Message msg = event.result(); JsonObject file = (JsonObject) msg.body(); routingContext.response().setChunked(true); if (file == null) { routingContext.response().setStatusCode(404).end("There is no image found."); return; } if ("enrich".equals(category) && file.getBinary(Image.ENRICHED_FILE) != null) { String fileName = file.getString(Image.HOST) + "___" + file.getString(Image.NAME) + "___" + file.getString(Image.IMAGE_ID) + ".xsf"; routingContext.response().putHeader("Content-Disposition", "attachment; filename = " + fileName); Buffer buffer = Buffer.buffer(file.getBinary(Image.ENRICHED_FILE)); routingContext.response().end(buffer); } else if ("enrich_xml".equals(category) && file.getBinary(Image.SCANNED_FILE) != null) { routingContext.response().end(decompressGzip(file.getBinary(Image.ENRICHED_FILE))); } else if ("scan".equals(category) && file.getBinary(Image.SCANNED_FILE) != null) { String fileName = file.getString(Image.HOST) + "___" + file.getString(Image.NAME) + "___" + file.getString(Image.IMAGE_ID) + ".xsf"; routingContext.response().putHeader("Content-Disposition", "attachment; filename = " + fileName); Buffer buffer = Buffer.buffer(file.getBinary(Image.SCANNED_FILE)); routingContext.response().end(buffer); } else if ("scan_xml".equals(category) && file.getBinary(Image.SCANNED_FILE) != null) { routingContext.response().end(decompressGzip(file.getBinary(Image.SCANNED_FILE))); } } else if (event.result() == null) { routingContext.response().setStatusCode(404).end("There is no image found."); } else { routingContext.response().setStatusCode(500).end("Server has error."); } }); }; }
From source file:com.hpe.sw.cms.verticle.ApiVerticle.java
License:Apache License
/** * Handler to handle GET /images request. The response is a list of images * * @return//from w ww .j av a 2 s . c o m */ private Handler<RoutingContext> imagesHandler() { return routingContext -> { String timestamp = routingContext.request().getParam("timestamp"); String id = routingContext.request().getParam("id"); String include = routingContext.request().getParam("include"); JsonObject param = new JsonObject(); if (timestamp != null) { param.put("timestamp", timestamp); } if (id != null) { param.put("imageid", id); } if (include != null) { param.put("include", include); } getVertx().eventBus().send(Events.GET_IMAGES.name(), param, event -> { if (event.succeeded() && event.result() != null) { Message msg = event.result(); JsonArray updates = (JsonArray) msg.body(); HttpServerResponse response = routingContext.response(); if (updates.size() == 0) { response.end("There is no image found."); } else { response.end(updates.toString()); } } else if (event.result() == null) { routingContext.response().setStatusCode(404).end("There is no image found."); } else { routingContext.response().setStatusCode(500).end("Server has error."); } }); }; }
From source file:com.hpe.sw.cms.verticle.ApiVerticle.java
License:Apache License
private JsonObject createObj(JsonObject event) { try {// w ww . j a v a 2 s . c o m JsonObject image = new JsonObject(); String timestamp = event.getString("timestamp"); if (timestamp != null && timestamp.length() > 19) { timestamp = timestamp.substring(0, 10) + " " + timestamp.substring(11, 19); image.put("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timestamp).getTime()); } String url = event.getJsonObject("target").getString("url"); image.put("name", event.getJsonObject("target").getString("repository")); image.put("host", event.getJsonObject("request").getString("host")); image.put(Image.EVENT_URL, url); return image; } catch (Exception e) { LOG.error("Error in reading event to object ", e); return null; } }
From source file:com.hpe.sw.cms.verticle.MongoStoreVerticle.java
License:Apache License
@Override public void start() throws Exception { super.start(); client = MongoClient.createShared(vertx, config().getJsonObject("mongo")); vertx.eventBus().consumer(Events.GET_IMAGES.name(), msg -> { JsonObject param = (JsonObject) msg.body(); JsonObject query = new JsonObject(); if (param != null && param.getString("timestamp") != null) { Long timestamp = Long.parseLong(param.getString("timestamp")); query.put(Image.TIMESTAMP, new JsonObject().put("$gte", timestamp)); } else if (param != null && param.getString("imageid") != null) { query.put(Image.IMAGE_ID, param.getString(Image.IMAGE_ID)); }/*w ww.jav a 2 s.c om*/ if (!query.containsKey(Image.IMAGE_ID) && (param == null || param.getString("include") == null || !"all".equals(param.getString("include")))) { query.put(Image.IMAGE_ID, new JsonObject().put("$exists", true)); } JsonArray images = new JsonArray(); client.find("images", query, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); for (JsonObject dbImage : result) { images.add(Image.cloneImage(dbImage)); } msg.reply(images); } }); }); vertx.eventBus().consumer(Events.DOWNLOAD_FILE.name(), msg -> { JsonObject query = (JsonObject) msg.body(); LOG.debug("DOWNLOAD_FILE query is " + query); client.find("images", query, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); LOG.debug("DOWNLOAD_FILE result is " + result.size()); if (result.size() > 0) { msg.reply(result.get(0)); } else { msg.reply(null); } } }); }); vertx.eventBus().consumer(Events.IMAGES_UPDATED.name(), msg -> { JsonArray updates = new JsonArray(); JsonObject query = new JsonObject(); query.put(Image.IS_SCANNED, false); int fetchSize = Integer.valueOf(String.valueOf(msg.body())); FindOptions options = new FindOptions(); JsonObject sort = new JsonObject(); sort.put(Image.TIMESTAMP, -1); options.setLimit(fetchSize).setSort(sort); client.findWithOptions("images", query, options, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); for (JsonObject update : result) { updates.add(update); LOG.debug("get image from DB :" + Image.getImageKey(update)); } LOG.debug("IMAGES_UPDATED reply updates size " + updates.size()); msg.reply(updates); } }); }); vertx.eventBus().consumer(Events.SCANFILE_UPLOADED.name(), msg -> { JsonObject upFile = (JsonObject) msg.body(); JsonObject query = new JsonObject(); query.put(Image.HOST, upFile.getString(Image.HOST)).put(Image.NAME, upFile.getString(Image.NAME)) .put(Image.TAG, upFile.getString(Image.TAG)); client.find("images", query, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); if (result.size() == 0) { LOG.error("no mapped image in DB for " + Image.getImageKey(upFile)); return; } for (JsonObject dbImage : result) { if (upFile.getBoolean("isScanFailed")) { //Failed in scanning. LOG.info("store failed scan to DB " + Image.getImageKey(upFile)); dbImage.put(Image.IS_SCANNED, true); dbImage.put(Image.IS_SCANNED_FAILED, true); } else { //successfully in scanning. LOG.info("store scanfile to DB " + Image.getImageKey(upFile)); dbImage.put(Image.IS_SCANNED, true); dbImage.put(Image.IS_SCANNED_FAILED, false); dbImage.put(Image.IMAGE_ID, upFile.getString(Image.IMAGE_ID)); dbImage.put(Image.SCANNED_FILE, upFile.getBinary(Image.SCANNED_FILE)); } client.save("images", dbImage, h -> { if (h.succeeded()) { LOG.info("SCANFILE_UPLOADED:Image " + Image.getImageKey(dbImage) + " updated !"); } else { h.cause().printStackTrace(); } }); } } }); }); vertx.eventBus().consumer(Events.ENRICHFILE_UPLOADED.name(), msg -> { JsonArray upFiles = (JsonArray) msg.body(); for (Object upFileObj : upFiles) { JsonObject upFile = (JsonObject) upFileObj; if (upFile.getBinary("enrichedFile") == null) { LOG.info("enrichedFile is emptry for " + upFile.getString("imageid")); continue; } LOG.info("store enrichfile to DB " + upFile.getString("imageid")); JsonObject query = new JsonObject(); query.put(Image.IMAGE_ID, upFile.getString(Image.IMAGE_ID)); client.find("images", query, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); for (JsonObject dbImage : result) { dbImage.put(Image.IS_ENRICHED, true); dbImage.put(Image.ENRICHED_FILE, upFile.getBinary(Image.ENRICHED_FILE)); client.save("images", dbImage, h -> { if (h.succeeded()) { LOG.info("ENRICHFILE_UPLOADED:Image " + Image.getImageKey(dbImage) + " updated !"); } else { h.cause().printStackTrace(); } }); } } }); } }); vertx.eventBus().consumer(Events.IMAGE_TO_ENRICH.name(), msg -> { JsonObject query = new JsonObject(); query.put(Image.IS_SCANNED, true).put(Image.IS_SCANNED_FAILED, false).put(Image.IS_ENRICHED, false); client.find("images", query, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); msg.reply(new JsonArray(result)); } }); }); vertx.eventBus().consumer(Events.NEW_IMAGE.name(), msg -> { //to store events in JsonObject obj = (JsonObject) msg.body(); JsonObject query = new JsonObject(); query.put(Image.HOST, obj.getString(Image.HOST)).put(Image.NAME, obj.getString(Image.NAME)) .put(Image.TAG, obj.getString(Image.TAG)); client.find("images", query, res -> { if (res.succeeded()) { List<JsonObject> result = res.result(); if (result.isEmpty()) { //inserted client.insert("images", obj, h -> { if (h.succeeded()) { LOG.info("IMAGES_COMMING :Image " + Image.getImageKey(obj) + " inserted !"); } else { h.cause().printStackTrace(); } }); } else if (result.size() == 1) { JsonObject toUpdate = result.get(0); if (!obj.getString(Image.SIGN).equals(toUpdate.getString(Image.SIGN))) { toUpdate.put(Image.TIMESTAMP, obj.getLong(Image.TIMESTAMP)) .put(Image.SIGN, obj.getString(Image.SIGN)) .put(Image.IS_SCANNED, obj.getBoolean(Image.IS_SCANNED)) .put(Image.IS_ENRICHED, obj.getBoolean(Image.IS_ENRICHED)); //saved client.save("images", toUpdate, h -> { if (h.succeeded()) { LOG.info("IMAGES_COMMING :Image " + Image.getImageKey(obj) + " updated !"); } else { h.cause().printStackTrace(); } }); } else { LOG.info("IMAGES_COMMING :Image " + Image.getImageKey(obj) + " has the same sign with the coming image, so will not update to DB !"); } } else { throw new RuntimeException( "IMAGES_COMMING :Found " + result.size() + " image for " + Image.getImageKey(obj)); } } }); }); }
From source file:com.hpe.sw.cms.verticle.RecognizerVerticle.java
License:Apache License
@Override public void start() throws Exception { super.start(); getVertx().setPeriodic(config().getLong("recognizer.interval", INTERVAL), h -> { getVertx().eventBus().send(Events.IMAGE_TO_ENRICH.name(), null, event -> { Message msg = event.result(); if (msg != null) { String enrichPath = Constant.PROJECT_PATH + "xmlenricher/runtime/xmlenricher/Scans/incoming/"; JsonArray scanfiles = (JsonArray) msg.body(); for (Object obj : scanfiles) { FileOutputStream fop = null; try { JsonObject image = (JsonObject) obj; String filePath = enrichPath + image.getString("imageid") + ".xsf"; File file = new File(filePath); if (!file.exists()) { file.createNewFile(); }/*ww w. j a va2s.co m*/ fop = new FileOutputStream(file); IOUtils.write(image.getBinary("scannedFile"), fop); fop.flush(); fop.close(); } catch (Exception e) { LOG.error("Error in writing scan file", e); } finally { if (fop != null) { try { fop.close(); } catch (IOException e) { e.printStackTrace(); } } } } } }); }); //check whether there are new enriched files getVertx().setPeriodic(config().getLong("recognizer.interval", INTERVAL), h -> { String enrichPath = Constant.PROJECT_PATH + "xmlenricher/runtime/xmlenricher/Scans/processedcore/"; File fileDir = new File(enrichPath); File[] fileList = fileDir.listFiles(XSF_FILTER); JsonArray enrichedFiles = new JsonArray(); for (File file : fileList) { if (file.isFile()) { String imageid = file.getName().split("\\.")[0]; try { JsonObject enrichedFile = new JsonObject(); enrichedFile.put("imageid", imageid); enrichedFile.put("enrichedFile", FileUtils.readFileToByteArray(file)); enrichedFiles.add(enrichedFile); file.delete(); //TODO: do a batch delete after all enrichedFiles are collected } catch (IOException e) { e.printStackTrace(); } } } if (enrichedFiles.size() > 0) { getVertx().eventBus().publish(Events.ENRICHFILE_UPLOADED.name(), enrichedFiles); } }); }
From source file:com.hpe.sw.cms.verticle.ScanVerticle.java
License:Apache License
private void processImage(String dricHost, String reigstryHost, String image, String tag) throws Exception { final String swarmProtocol = config().getString("swarm.protocol"); final String swarmHost = config().getString("swarm.host"); JsonObject hostConfig = new JsonObject(); hostConfig.put("Privileged", true); JsonObject restartPolicy = new JsonObject(); restartPolicy.put("Name", "no"); JsonObject createContinaerJson = new JsonObject(); createContinaerJson.put("AttachStdin", true); createContinaerJson.put("AttachStdout", true); createContinaerJson.put("AttachStderr", true); createContinaerJson.put("Tty", true); createContinaerJson.put("OpenStdin", true); createContinaerJson.put("StdinOnce", true); JsonArray cmds = new JsonArray(); cmds.add("-l=file").add(dricHost).add(reigstryHost).add(image).add(tag); createContinaerJson.put("Cmd", cmds); createContinaerJson.put("Image", config().getString("swarm.scan.image")); createContinaerJson.put("StopSignal", "SIGTERM"); createContinaerJson.put("", true); hostConfig.put("RestartPolicy", restartPolicy); createContinaerJson.put("HostConfig", hostConfig); httpClient.postAbs(swarmProtocol + swarmHost + "/containers/create", new Handler<HttpClientResponse>() { @Override//from w w w . j ava2 s.co m public void handle(HttpClientResponse event) { event.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer buffer) { JsonObject retVal = buffer.toJsonObject(); String containerId = retVal.getString("Id"); getVertx().sharedData().getLocalMap("scanContainerIds").put(containerId, containerId); httpClient.postAbs(swarmProtocol + swarmHost + "/containers/" + containerId + "/start", new Handler<HttpClientResponse>() { @Override public void handle(HttpClientResponse event) { LOG.info("start container with response code :" + event.statusCode()); } }).end(); } }); } }).putHeader("content-type", "application/json") .putHeader("content-length", String.valueOf(createContinaerJson.toString().length())) .write(createContinaerJson.toString()).end(); }
From source file:com.hpe.sw.cms.verticle.WatcherVerticle.java
License:Apache License
private void handler(Long h) { try {//from www. jav a 2 s .c o m String protocol = config().getString("registry.protocol"); String host = config().getString("registry.host"); httpClient.getAbs(protocol + host + "/v2/_catalog", new Handler<HttpClientResponse>() { @Override public void handle(HttpClientResponse httpClientResponse) { httpClientResponse.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer buffer) { JsonObject repositoryLib = buffer.toJsonObject(); JsonArray repos = repositoryLib.getJsonArray("repositories"); repos.forEach(repo -> { if (repo != null && !((String) repo).trim().equals("")) { try { repo = ((String) repo).trim(); String[] imagePart = ((String) repo).split("/"); String imageName = String.join("/", imagePart); httpClient.getAbs(protocol + host + "/v2/" + imageName + "/tags/list", new Handler<HttpClientResponse>() { @Override public void handle(HttpClientResponse httpClientResponse) { httpClientResponse.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer buffer) { JsonObject tagLib = buffer.toJsonObject(); JsonArray tags = tagLib.getJsonArray("tags"); for (Object tag : tags) { if (tag != null && !((String) tag).trim().equals("")) { JsonObject imageObj = new JsonObject(); imageObj.put("name", imageName); imageObj.put("tag", tag); String dest = host; imageObj.put("host", dest); populateAndSendImage(imageObj); } } } }); } }).end(); } catch (Exception e) { LOG.error("error in reading registry", e); } } }); } }); } }).end(); } catch (Exception e) { LOG.error("error in registry handler", e); } }
From source file:com.hubrick.vertx.kafka.producer.model.AbstractKafkaMessage.java
License:Apache License
public JsonObject asJson() { final JsonObject jsonObject = new JsonObject(); if (partKey != null) { jsonObject.put(PART_KEY, partKey); }// www. j a v a 2s . c o m return jsonObject; }
From source file:com.hubrick.vertx.kafka.producer.model.KafkaOptions.java
License:Apache License
public JsonObject toJson() { final JsonObject jsonObject = new JsonObject(); if (topic != null) { jsonObject.put(TOPIC, topic);// w w w . ja v a 2 s .c o m } return jsonObject; }