package mil.nga.giat.geowave.cli.geoserver; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import mil.nga.giat.geowave.core.cli.annotations.GeowaveOperation; import mil.nga.giat.geowave.core.cli.api.Command; import mil.nga.giat.geowave.core.cli.api.DefaultOperation; import mil.nga.giat.geowave.core.cli.api.OperationParams; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.beust.jcommander.Parameters; @GeowaveOperation(name = "listws", parentOperation = GeoServerSection.class) @Parameters(commandDescription = "List GeoServer workspaces") public class GeoServerListWorkspacesCommand extends DefaultOperation implements Command { private GeoServerRestClient geoserverClient = null; @Override public boolean prepare( OperationParams params ) { super.prepare(params); // Get the local config for GeoServer if (geoserverClient == null) { // Create the rest client geoserverClient = new GeoServerRestClient( new GeoServerConfig( getGeoWaveConfigFile(params))); } // Successfully prepared return true; } @Override public void execute( OperationParams params ) throws Exception { Response getWorkspacesResponse = geoserverClient.getWorkspaces(); if (getWorkspacesResponse.getStatus() == Status.OK.getStatusCode()) { System.out.println("\nList of GeoServer workspaces:"); JSONObject jsonResponse = JSONObject.fromObject(getWorkspacesResponse.getEntity()); final JSONArray workspaces = jsonResponse.getJSONArray("workspaces"); for (int i = 0; i < workspaces.size(); i++) { String wsName = workspaces.getJSONObject( i).getString( "name"); System.out.println(" > " + wsName); } System.out.println("---\n"); } else { System.err.println("Error getting GeoServer workspace list; code = " + getWorkspacesResponse.getStatus()); } } }