Skip to content
This repository was archived by the owner on Mar 5, 2020. It is now read-only.

Commit 498d437

Browse files
committed
Addition of system information
1 parent 9d43736 commit 498d437

File tree

3 files changed

+61
-17
lines changed

3 files changed

+61
-17
lines changed

src/main/java/com/simplemethod/containers/ContainersController.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ public class ContainersController {
2222
public ContainersController() {
2323
}
2424

25+
26+
public String[] systemInformation() {
27+
String[] returnArray;
28+
returnArray = connectionAPI.getSystemInformation();
29+
if (returnArray[0].equals(String.valueOf(200))) {
30+
return returnArray;
31+
} else {
32+
logger.error("[" + returnArray[0] + "] " + returnArray[2]);
33+
return returnArray;
34+
}
35+
}
36+
2537
public String[] containersPing() {
2638
String[] returnArray;
2739
returnArray = connectionAPI.containersPing();
@@ -37,7 +49,6 @@ public String[] containersPing() {
3749
public String[] containersJson(boolean all, int limit, String filters) throws NullPointerException {
3850
String[] returnArray;
3951
returnArray = connectionAPI.containersJson(all, limit, filters);
40-
4152
if (returnArray[0].equals(String.valueOf(200))) {
4253
return returnArray;
4354
} else {

src/main/java/com/simplemethod/dockerparser/ConnectionAPI.java

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.apache.logging.log4j.Logger;
99
import org.json.JSONArray;
1010
import org.json.JSONObject;
11+
import org.json.simple.parser.JSONParser;
12+
import org.json.simple.parser.ParseException;
1113
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
1214
import org.springframework.context.annotation.Scope;
1315
import org.springframework.stereotype.Service;
@@ -64,6 +66,7 @@ public String[] containersJson(boolean all, int limit, String filters) {
6466
.queryString("all", all)
6567
.queryString("limit", limit)
6668
.queryString("filters", filters)
69+
.queryString("size",true)
6770
.asJson();
6871
returnArray[0] = String.valueOf(containersResponse.getStatus());
6972
returnArray[1] = containersResponse.getHeaders().toString();
@@ -75,6 +78,33 @@ public String[] containersJson(boolean all, int limit, String filters) {
7578
}
7679
}
7780

81+
/**
82+
* https://docs.docker.com/engine/api/v1.39/#operation/SystemInfo
83+
*/
84+
public String[] getSystemInformation() {
85+
String[] returnArray = new String[3];
86+
JSONParser parser = new JSONParser();
87+
org.json.JSONObject body = new org.json.JSONObject();
88+
Object obj = null;
89+
try {
90+
HttpResponse<JsonNode> systemInfo = Unirest.get(DOCKER_SOCKET+"/info").asJson();
91+
obj = parser.parse(systemInfo.getBody().toString());
92+
org.json.simple.JSONObject jsonObject = (org.json.simple.JSONObject) obj;
93+
body.put("Containers",jsonObject.get("Containers") );
94+
body.put("ContainersRunning",jsonObject.get("ContainersRunning"));
95+
body.put("ContainersPaused",jsonObject.get("ContainersPaused"));
96+
body.put("ContainersStopped",jsonObject.get("ContainersStopped"));
97+
body.put("Images",jsonObject.get("Images"));
98+
body.put("MemTotal",jsonObject.get("MemTotal"));
99+
returnArray[0] = String.valueOf(systemInfo.getStatus());
100+
returnArray[1] = systemInfo.getHeaders().toString();
101+
returnArray[2] = body.toString();
102+
return returnArray;
103+
} catch ( NullPointerException | ParseException | org.json.JSONException | UnirestException e) {
104+
logger.error("Cannot connect to the server.");
105+
return ReturnErrors();
106+
}
107+
}
78108
/**
79109
* https://docs.docker.com/engine/api/v1.39/#operation/ContainerList
80110
*/
@@ -89,7 +119,7 @@ public String[] containersIDJson(String id) {
89119
String[] returnArray = new String[3];
90120
try {
91121
HttpResponse<JsonNode> containersResponse = Unirest.get(DOCKER_SOCKET + "/containers/" + id + "/json")
92-
.header("accept", "application/json").header("Content-Type", "application/json").asJson();
122+
.header("accept", "application/json").queryString("size",true).header("Content-Type", "application/json").asJson();
93123
returnArray[0] = String.valueOf(containersResponse.getStatus());
94124
returnArray[1] = containersResponse.getHeaders().toString();
95125
returnArray[2] = containersResponse.getBody().toString();
@@ -416,19 +446,4 @@ public String[] execStart(String id) {
416446
}
417447
}
418448

419-
420-
public String shouldReturnStatusOkay() {
421-
HttpResponse<JsonNode> japierdole = null;
422-
try {
423-
japierdole = Unirest.get(" http://192.168.1.55:2137/containers/json")
424-
.header("accept", "application/json").header("Content-Type", "application/json")
425-
.queryString("apiKey", "123").asJson();
426-
} catch (Exception e) {
427-
System.out.println(e);
428-
}
429-
System.out.println(japierdole.getStatus());
430-
JSONArray jsonObj = new JSONArray(japierdole.getBody().toString());
431-
System.out.println(jsonObj.getJSONObject(0).getString("Id"));
432-
return japierdole.getBody().toString();
433-
}
434449
}

src/main/java/com/simplemethod/srvclient/SrvController.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,24 @@ ResponseEntity<String> handleConstraintViolationException(ConstraintViolationExc
7373

7474

7575

76+
77+
@GetMapping(path = "/info")
78+
public @ResponseBody
79+
ResponseEntity<String> systemInformation() {
80+
81+
String[] returnArray = new String[3];
82+
try {
83+
84+
returnArray = containersController.systemInformation();
85+
86+
} catch (NullPointerException e) {
87+
88+
}
89+
HttpHeaders headers = new HttpHeaders();
90+
headers.add("Content-Type", "application/json");
91+
return new ResponseEntity<>(returnArray[2], headers, HttpStatus.valueOf(Integer.valueOf(returnArray[0])));
92+
}
93+
7694
@GetMapping(path = "/_ping")
7795
public @ResponseBody
7896
ResponseEntity<String> containersPing() {

0 commit comments

Comments
 (0)