Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package ca.carleton.gcrc.couch.command;
  
  import java.io.File;
  import java.util.List;
  import java.util.Stack;
  import java.util.Vector;
  
 
 public class CommandRestore implements Command {
 
 	public String getCommandString() {
 		return "restore";
 	}
 
 	public boolean matchesKeyword(String keyword) {
 		ifgetCommandString().equalsIgnoreCase(keyword) ) {
 			return true;
 		}
 		return false;
 	}
 
 	public boolean requiresAtlasDir() {
 		return true;
 	}
 
 	public void reportHelp(PrintStream ps) {
 		ps.println("Nunaliit2 Atlas Framework - Restore Command");
 		ps.println();
 		ps.println("The restore command allows a user to restore a snapshot, previously");
 		ps.println("obtained using the dump command, to the database associated with the");
 		ps.println("atlas.");
 		ps.println();
 		ps.println("Command Syntax:");
 		ps.println("  nunaliit [<global-options>] restore [<restore-options>]");
 		ps.println();
 		ps.println("Global Options");
 		CommandHelp.reportGlobalSettingAtlasDir(ps);
 		ps.println();
 		ps.println("Restore Options");
 		ps.println("  --dump-dir <dir>  Directory where snapshot is stored");
 		ps.println("  --doc-id   <docId> Specifies which document(s) should be");
 		ps.println("                     restored by selecting the document identifier.");
 		ps.println("                     This option can be used multiple times to include");
 		ps.println("                     multiple documents in the restore process. If ");
 		ps.println("                     this option is not used, all documents are");
 		ps.println("                     restored.");
 	}
 
 	public void runCommand(
 		,Stack<StringargumentStack
 		) throws Exception {
 
 		File atlasDir = gs.getAtlasDir();
 
 		// Pick up options
 		File dumpDir = null;
 		List<StringdocIds = new Vector<String>();
 		whilefalse == argumentStack.empty() ){
 			String optionName = argumentStack.peek();
 			if"--dump-dir".equals(optionName) ){
 				argumentStack.pop();
 				ifargumentStack.size() < 1 ){
 					throw new Exception("--dump-dir option requires a directory");
 				}
 				
 				String dumpDirStr = argumentStack.pop();
 				dumpDir = new File(atlasDir"dump/"+dumpDirStr);
 				iffalse == dumpDir.exists() ) {
 					dumpDir = new File(dumpDirStr);
 				}
 				
 			} else if"--doc-id".equals(optionName) ){
 				argumentStack.pop();
 				ifargumentStack.size() < 1 ){
 					throw new Exception("--doc-id option requires a document identifier");
 				}
 				
 				String docId = argumentStack.pop();
 				docIds.add(docId);
 				
 			} else {
 				break;
 			}
 		}
 
 		ifnull == dumpDir ) {
 			throw new Exception("During a restore, the --dump-dir option must be provided");
		}
		iffalse == dumpDir.exists() ) {
			throw new Exception("Can not find restore directory: "+dumpDir.getAbsolutePath());
		}
		gs.getOutStream().println("Restoring from "+dumpDir.getAbsolutePath());
		// Load properties for atlas
		AtlasProperties atlasProperties = AtlasProperties.fromAtlasDir(atlasDir);
		CouchDb couchDb = CommandSupport.createCouchDb(gsatlasProperties);
		DbRestoreProcess restoreProcess = new DbRestoreProcess(couchDbdumpDir);
		restoreProcess.setListener(listener);
		ifdocIds.size() < 1 ) {
			restoreProcess.setAllDocs(true);
else {
			for(String docId : docIds) {
				restoreProcess.addDocId(docId);
			}
		}
		restoreProcess.restore();
	}
New to GrepCode? Check out our FAQ X