Author: gdusbabek
Date: Fri May 28 13:05:24 2010
New Revision: 949167

URL: http://svn.apache.org/viewvc?rev=949167&view=rev
Log:
have sstable import/export load schema from local storage. Patch by Matthew 
Dennis, reviewed by Gary Dusbabek. CASSANDRA-1128

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java
    cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java?rev=949167&r1=949166&r2=949167&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java Fri 
May 28 13:05:24 2010
@@ -24,6 +24,7 @@ import java.io.PrintStream;
 import java.util.*;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.ConfigurationException;
 import org.apache.cassandra.db.ColumnFamily;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.db.IColumn;
@@ -339,7 +340,7 @@ public class SSTableExport
      * @param args command lines arguments
      * @throws IOException on failure to open/read/write files or output 
streams
      */
-    public static void main(String[] args) throws IOException
+    public static void main(String[] args) throws IOException, 
ConfigurationException
     {
         String usage = String.format("Usage: %s <sstable> [-k key [-k key 
[...]] -x key [-x key [...]]]%n", SSTableExport.class.getName());
         
@@ -366,7 +367,15 @@ public class SSTableExport
         String[] keys = cmd.getOptionValues(KEY_OPTION);
         String[] excludes = cmd.getOptionValues(EXCLUDEKEY_OPTION);
         String ssTableFileName = new File(cmd.getArgs()[0]).getAbsolutePath();
-        
+
+        DatabaseDescriptor.loadSchemas();
+        if (DatabaseDescriptor.getNonSystemTables().size() < 1)
+        {
+            String msg = "no non-system tables are defined";
+            System.err.println(msg);
+            throw new ConfigurationException(msg);
+        }
+
         if (cmd.hasOption(ENUMERATEKEYS_OPTION))
             enumeratekeys(ssTableFileName, System.out);
         else {

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java?rev=949167&r1=949166&r2=949167&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java Fri 
May 28 13:05:24 2010
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.util.*;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.ConfigurationException;
 import org.apache.cassandra.db.ColumnFamily;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.db.SuperColumn;
@@ -195,7 +196,7 @@ public class SSTableImport
      * @throws IOException on failure to open/read/write files or output 
streams
      * @throws ParseException on failure to parse JSON input
      */
-    public static void main(String[] args) throws IOException, ParseException
+    public static void main(String[] args) throws IOException, ParseException, 
ConfigurationException
     {
         String usage = String.format("Usage: %s -K keyspace -c column_family 
<json> <sstable>%n",
                 SSTableImport.class.getName());
@@ -222,6 +223,14 @@ public class SSTableImport
         String keyspace = cmd.getOptionValue(KEYSPACE_OPTION);
         String cfamily = cmd.getOptionValue(COLFAM_OPTION);
 
+        DatabaseDescriptor.loadSchemas();
+        if (DatabaseDescriptor.getNonSystemTables().size() < 1)
+        {
+            String msg = "no non-system tables are defined";
+            System.err.println(msg);
+            throw new ConfigurationException(msg);
+        }
+
         importJson(json, keyspace, cfamily, ssTable);
         
         System.exit(0);


Reply via email to