diff --git a/src/main/java/com/simplemethod/containers/ContainersController.java b/src/main/java/com/simplemethod/containers/ContainersController.java index 4206309..5fcff97 100644 --- a/src/main/java/com/simplemethod/containers/ContainersController.java +++ b/src/main/java/com/simplemethod/containers/ContainersController.java @@ -22,6 +22,18 @@ public class ContainersController { public ContainersController() { } + + public String[] systemInformation() { + String[] returnArray; + returnArray = connectionAPI.getSystemInformation(); + if (returnArray[0].equals(String.valueOf(200))) { + return returnArray; + } else { + logger.error("[" + returnArray[0] + "] " + returnArray[2]); + return returnArray; + } + } + public String[] containersPing() { String[] returnArray; returnArray = connectionAPI.containersPing(); @@ -37,7 +49,6 @@ public String[] containersPing() { public String[] containersJson(boolean all, int limit, String filters) throws NullPointerException { String[] returnArray; returnArray = connectionAPI.containersJson(all, limit, filters); - if (returnArray[0].equals(String.valueOf(200))) { return returnArray; } else { diff --git a/src/main/java/com/simplemethod/dockerparser/ConnectionAPI.java b/src/main/java/com/simplemethod/dockerparser/ConnectionAPI.java index 0678388..a86bce7 100644 --- a/src/main/java/com/simplemethod/dockerparser/ConnectionAPI.java +++ b/src/main/java/com/simplemethod/dockerparser/ConnectionAPI.java @@ -8,6 +8,8 @@ import org.apache.logging.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; @@ -64,6 +66,7 @@ public String[] containersJson(boolean all, int limit, String filters) { .queryString("all", all) .queryString("limit", limit) .queryString("filters", filters) + .queryString("size",true) .asJson(); returnArray[0] = String.valueOf(containersResponse.getStatus()); returnArray[1] = containersResponse.getHeaders().toString(); @@ -75,6 +78,33 @@ public String[] containersJson(boolean all, int limit, String filters) { } } + /** + * https://docs.docker.com/engine/api/v1.39/#operation/SystemInfo + */ + public String[] getSystemInformation() { + String[] returnArray = new String[3]; + JSONParser parser = new JSONParser(); + org.json.JSONObject body = new org.json.JSONObject(); + Object obj = null; + try { + HttpResponse systemInfo = Unirest.get(DOCKER_SOCKET+"/info").asJson(); + obj = parser.parse(systemInfo.getBody().toString()); + org.json.simple.JSONObject jsonObject = (org.json.simple.JSONObject) obj; + body.put("Containers",jsonObject.get("Containers") ); + body.put("ContainersRunning",jsonObject.get("ContainersRunning")); + body.put("ContainersPaused",jsonObject.get("ContainersPaused")); + body.put("ContainersStopped",jsonObject.get("ContainersStopped")); + body.put("Images",jsonObject.get("Images")); + body.put("MemTotal",jsonObject.get("MemTotal")); + returnArray[0] = String.valueOf(systemInfo.getStatus()); + returnArray[1] = systemInfo.getHeaders().toString(); + returnArray[2] = body.toString(); + return returnArray; + } catch ( NullPointerException | ParseException | org.json.JSONException | UnirestException e) { + logger.error("Cannot connect to the server."); + return ReturnErrors(); + } + } /** * https://docs.docker.com/engine/api/v1.39/#operation/ContainerList */ @@ -89,7 +119,7 @@ public String[] containersIDJson(String id) { String[] returnArray = new String[3]; try { HttpResponse containersResponse = Unirest.get(DOCKER_SOCKET + "/containers/" + id + "/json") - .header("accept", "application/json").header("Content-Type", "application/json").asJson(); + .header("accept", "application/json").queryString("size",true).header("Content-Type", "application/json").asJson(); returnArray[0] = String.valueOf(containersResponse.getStatus()); returnArray[1] = containersResponse.getHeaders().toString(); returnArray[2] = containersResponse.getBody().toString(); @@ -416,19 +446,4 @@ public String[] execStart(String id) { } } - - public String shouldReturnStatusOkay() { - HttpResponse japierdole = null; - try { - japierdole = Unirest.get(" http://192.168.1.55:2137/containers/json") - .header("accept", "application/json").header("Content-Type", "application/json") - .queryString("apiKey", "123").asJson(); - } catch (Exception e) { - System.out.println(e); - } - System.out.println(japierdole.getStatus()); - JSONArray jsonObj = new JSONArray(japierdole.getBody().toString()); - System.out.println(jsonObj.getJSONObject(0).getString("Id")); - return japierdole.getBody().toString(); - } } diff --git a/src/main/java/com/simplemethod/srvclient/SrvController.java b/src/main/java/com/simplemethod/srvclient/SrvController.java index fed042a..77f0b53 100644 --- a/src/main/java/com/simplemethod/srvclient/SrvController.java +++ b/src/main/java/com/simplemethod/srvclient/SrvController.java @@ -73,6 +73,24 @@ ResponseEntity handleConstraintViolationException(ConstraintViolationExc + + @GetMapping(path = "/info") + public @ResponseBody + ResponseEntity systemInformation() { + + String[] returnArray = new String[3]; + try { + + returnArray = containersController.systemInformation(); + + } catch (NullPointerException e) { + + } + HttpHeaders headers = new HttpHeaders(); + headers.add("Content-Type", "application/json"); + return new ResponseEntity<>(returnArray[2], headers, HttpStatus.valueOf(Integer.valueOf(returnArray[0]))); + } + @GetMapping(path = "/_ping") public @ResponseBody ResponseEntity containersPing() {