From 54472b7e6762d88658e9a26f5f6c3ed789e1e7d1 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 12 Mar 2018 14:20:13 +0100 Subject: Serverlist on command line; support new dnbd3 rpc format --- .../java/org/openslx/dnbd3/status/WebServer.java | 33 +++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'src/main/java/org/openslx/dnbd3/status/WebServer.java') diff --git a/src/main/java/org/openslx/dnbd3/status/WebServer.java b/src/main/java/org/openslx/dnbd3/status/WebServer.java index 3e1a65c..f652f6a 100644 --- a/src/main/java/org/openslx/dnbd3/status/WebServer.java +++ b/src/main/java/org/openslx/dnbd3/status/WebServer.java @@ -18,15 +18,24 @@ public class WebServer extends NanoHTTPD private final StatisticsGenerator imageGenerator; - public WebServer( int port ) + public WebServer( int port, String... servers ) { super( port ); List pollers = new ArrayList<>(); - pollers.add( new ServerPoller( "132.230.4.2", 5003 ) ); - pollers.add( new ServerPoller( "132.230.8.113", 5003 ) ); - pollers.add( new ServerPoller( "132.230.4.60", 5003 ) ); - pollers.add( new ServerPoller( "10.4.128.240", 5003 ) ); - pollers.add( new ServerPoller( "10.3.56.43", 5003 ) ); + for ( String server : servers ) { + String[] parts = server.split( ":" ); + if (parts.length > 2) { + System.out.println( "Ignoring invalid line " + server ); + } else if (parts.length == 2) { + try { + pollers.add( new ServerPoller( parts[0], Integer.parseInt( parts[1] ) ) ); + } catch (NumberFormatException e) { + System.out.println( "Ignoring invalid port from " + server ); + } + } else { + pollers.add( new ServerPoller( server, 5003 ) ); + } + } imageGenerator = new StatisticsGenerator( pollers ); } @@ -39,7 +48,9 @@ public class WebServer extends NanoHTTPD if ( uri.equals( "/image.png" ) ) return serveImage(); if ( uri.equals( "/data.json" ) ) - return serveJson(); + return serveJson(false); + if ( uri.equals( "/data2.json" ) ) + return serveJson(true); // Static files if ( uri.equals( "/" ) ) @@ -89,13 +100,15 @@ public class WebServer extends NanoHTTPD } } - private NanoHTTPD.Response serveJson() + private NanoHTTPD.Response serveJson(boolean newFormat) { - String data = imageGenerator.getJson(); + String data = imageGenerator.getJson(newFormat); if ( data == null ) { return new NanoHTTPD.Response( NanoHTTPD.Response.Status.INTERNAL_ERROR, "text/plain", "Internal Server Error" ); } else { - return new NanoHTTPD.Response( NanoHTTPD.Response.Status.OK, "application/json", data ); + NanoHTTPD.Response response = new NanoHTTPD.Response( NanoHTTPD.Response.Status.OK, "application/json", data ); + response.addHeader( "Access-Control-Allow-Origin", "*" ); + return response; } } -- cgit v1.2.3-55-g7522