You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vg...@apache.org on 2011/12/14 01:34:25 UTC
svn commit: r1214006 - in /incubator/ambari/trunk: ./
client/src/main/java/org/apache/ambari/client/
Author: vgogate
Date: Wed Dec 14 00:34:24 2011
New Revision: 1214006
URL: http://svn.apache.org/viewvc?rev=1214006&view=rev
Log:
AMBARI-160. Ambari client add stack command should allow both json and xml
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/AmbariClient.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterCreate.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterGet.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterList.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterNodes.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterStack.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/Command.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeGet.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeList.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackAdd.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackGet.java
incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackList.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Wed Dec 14 00:34:24 2011
@@ -2,6 +2,8 @@ Ambari Change log
Release 0.1.0 - unreleased
+ AMBARI-160. Ambari client add stack command should allow both json and xml (vgogate)
+
AMBARI-158. Move the JSON encoding to the natural one. (omalley)
AMBARI-157. Enhances the agent to make it puppet aware (ddas)
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/AmbariClient.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/AmbariClient.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/AmbariClient.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/AmbariClient.java Wed Dec 14 00:34:24 2011
@@ -18,11 +18,8 @@
package org.apache.ambari.client;
import java.lang.reflect.Constructor;
-import java.net.ConnectException;
import java.util.HashMap;
-import org.apache.commons.cli.Options;
-
public class AmbariClient {
HashMap<String, HashMap<String, String>> commands = new HashMap<String, HashMap<String, String>>();
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterCreate.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterCreate.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterCreate.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterCreate.java Wed Dec 14 00:34:24 2011
@@ -20,15 +20,11 @@ package org.apache.ambari.client;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Properties;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
import org.apache.ambari.common.rest.entities.Stack;
import org.apache.ambari.common.rest.entities.ClusterDefinition;
import org.apache.ambari.common.rest.entities.ClusterState;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterGet.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterGet.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterGet.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterGet.java Wed Dec 14 00:34:24 2011
@@ -18,16 +18,10 @@
package org.apache.ambari.client;
import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
@@ -36,12 +30,9 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterList.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterList.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterList.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterList.java Wed Dec 14 00:34:24 2011
@@ -18,16 +18,12 @@
package org.apache.ambari.client;
import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
@@ -36,8 +32,6 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterNodes.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterNodes.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterNodes.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterNodes.java Wed Dec 14 00:34:24 2011
@@ -19,21 +19,12 @@ package org.apache.ambari.client;
import java.net.URI;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
-import java.util.Properties;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.ambari.common.rest.entities.Node;
-import org.apache.ambari.common.rest.entities.RoleToNodes;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterStack.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterStack.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterStack.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/ClusterStack.java Wed Dec 14 00:34:24 2011
@@ -18,12 +18,10 @@
package org.apache.ambari.client;
import java.net.URI;
-import java.net.URL;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import org.apache.ambari.common.rest.entities.Stack;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/Command.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/Command.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/Command.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/Command.java Wed Dec 14 00:34:24 2011
@@ -18,23 +18,16 @@
package org.apache.ambari.client;
import java.io.File;
-import java.util.Hashtable;
+
import javax.ws.rs.core.MediaType;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-
import org.apache.ambari.common.rest.entities.Stack;
import org.apache.ambari.common.rest.entities.StackInformation;
import org.apache.ambari.common.rest.entities.ClusterDefinition;
import org.apache.ambari.common.rest.entities.ClusterInformation;
import org.apache.ambari.common.rest.entities.Node;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.codehaus.jettison.json.JSONObject;
-
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeGet.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeGet.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeGet.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeGet.java Wed Dec 14 00:34:24 2011
@@ -18,16 +18,10 @@
package org.apache.ambari.client;
import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.ambari.common.rest.entities.Node;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
@@ -37,12 +31,9 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeList.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeList.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeList.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/NodeList.java Wed Dec 14 00:34:24 2011
@@ -18,16 +18,11 @@
package org.apache.ambari.client;
import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.ambari.common.rest.entities.Node;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
@@ -37,8 +32,6 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackAdd.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackAdd.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackAdd.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackAdd.java Wed Dec 14 00:34:24 2011
@@ -19,23 +19,19 @@ package org.apache.ambari.client;
import java.io.File;
import java.io.FileInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
+import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.apache.ambari.common.rest.entities.Stack;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
@@ -44,16 +40,14 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
+import com.sun.jersey.api.json.JSONJAXBContext;
+import com.sun.jersey.api.json.JSONUnmarshaller;
public class StackAdd extends Command {
@@ -91,7 +85,7 @@ public class StackAdd extends Command {
OptionBuilder.withArgName("location");
OptionBuilder.isRequired();
OptionBuilder.hasArg();
- OptionBuilder.withDescription( "Either URL or local file path where stack in XML format is available");
+ OptionBuilder.withDescription( "Either URL or local file path where stack in JSON format is available");
Option location = OptionBuilder.create( "location" );
this.options = new Options();
@@ -148,17 +142,28 @@ public class StackAdd extends Command {
try {
URL urlx = new URL(location);
} catch (MalformedURLException x) {
- System.out.println("Specified location is either a file path that does not exist or a malformed URL");
+ System.out.println("Specified location is either a non-existing file path or a malformed URL");
System.exit(-1);
}
Stack bp = new Stack();
response = service.path("stacks/"+name)
.queryParam("url", location)
- .accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_XML).put(ClientResponse.class, bp);
+ .accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).put(ClientResponse.class, bp);
} else {
- Stack bp = this.readStackFromXMLFile(f);
- response = service.path("stacks/"+name)
- .accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_XML).put(ClientResponse.class, bp);
+ Stack bp = null;
+ if (f.getName().endsWith(".json")) {
+ bp = this.readStackFromJSONFile(f);
+ response = service.path("stacks/"+name)
+ .accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).put(ClientResponse.class, bp);
+ } else if (f.getName().endsWith(".xml")) {
+ bp = this.readStackFromXMLFile(f);
+ response = service.path("stacks/"+name)
+ .accept(MediaType.APPLICATION_XML).type(MediaType.APPLICATION_XML).put(ClientResponse.class, bp);
+ } else {
+ System.out.println("Specified stack file does not end with .json or .xml");
+ System.exit(-1);
+ }
+
}
if (response.getStatus() != 200) {
@@ -179,13 +184,16 @@ public class StackAdd extends Command {
return bp;
}
- public Stack readStackFromJSONFile (File f) throws Exception {
- FileInputStream fis = new FileInputStream(f);
- ObjectMapper m = new ObjectMapper();
- Stack stack = m.readValue(fis, Stack.class);
- return stack;
+ public Stack readStackFromJSONFile (File f) throws Exception {
+ JSONJAXBContext jsonContext =
+ new JSONJAXBContext("org.apache.ambari.common.rest.entities");
+ InputStream in = new FileInputStream(f.getAbsoluteFile());
+ try {
+ JSONUnmarshaller um = jsonContext.createJSONUnmarshaller();
+ Stack stack = um.unmarshalFromJSON(in, Stack.class);
+ return stack;
+ } catch (JAXBException je) {
+ throw new IOException("Can't parse " + f.getAbsolutePath(), je);
+ }
}
-
-
-}
-
+}
\ No newline at end of file
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackGet.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackGet.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackGet.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackGet.java Wed Dec 14 00:34:24 2011
@@ -18,17 +18,11 @@
package org.apache.ambari.client;
import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import org.apache.ambari.common.rest.entities.Stack;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
@@ -37,12 +31,9 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackList.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackList.java?rev=1214006&r1=1214005&r2=1214006&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackList.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/client/StackList.java Wed Dec 14 00:34:24 2011
@@ -17,26 +17,14 @@
*/
package org.apache.ambari.client;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.MalformedURLException;
import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
import org.apache.ambari.common.rest.entities.Stack;
import org.apache.ambari.common.rest.entities.StackInformation;
-import org.apache.ambari.common.rest.entities.ClusterDefinition;
-import org.apache.ambari.common.rest.entities.ClusterInformation;
-import org.apache.ambari.common.rest.entities.ClusterState;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
@@ -45,9 +33,6 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;