/*
* HOW TO USE:
* - cleanUserObjects(userID): Delete ALL metadata from ALL workspaces
* - cleanUserObjects(userID, workspaceID): Delete ALL metadata from
* workspaceID
*/
package com.stacksync.syncservice.util;
import java.util.ArrayList;
import java.util.List;
public class CleanObjects {
//private RiakConnector rc;
public CleanObjects(String ip, int port) throws Exception{
//this.rc = new RiakConnector(ip, port);
}
public void cleanUserObjects(String userID){
/*
try {
List<String> workspaces = this.rc.getUserWorkspace(userID);
for (String workspace : workspaces){
cleanUserObjects(userID, workspace);
}
} catch (Exception e){
System.out.println(e.toString());
}
*/
}
public void cleanUserObjects(String userID, String workspace){
/*
try {
JSONObject objects = this.rc.getWorkspaceObjects(workspace);
Iterator<String> iterObjects = objects.keys();
while( iterObjects.hasNext() ){
String objectID = iterObjects.next();
JSONObject fileMetadata = objects.getJSONObject(objectID);
int latestVersion = fileMetadata.getInt(Constants.KEY_VERSION);
for (int i=1; i<=latestVersion; i++){
String key = workspace+":"+objectID+":"+i;
this.rc.deleteObjectVersionResource(key);
}
}
this.rc.putWorkspaceObjectResource(workspace, new JSONObject());
} catch (Exception e){
System.out.println(e.toString());
}
*/
}
public static void showUsage(){
System.out.println("Usage:");
System.out.println("\t-u user_id (required)");
System.out.println("\t-i ip (required)");
System.out.println("\t-p port (required)");
System.out.println("\t-w workspace_id (optional)");
System.out.println("Example: CleanObjects -u 123 -i 127.0.0.1 -p 8087 -w a -w b");
}
public static void main(String[] argv) throws Exception{
if ( argv.length < 2 || argv.length%2 != 0){
showUsage();
System.exit(1);
}
String userID = null;
String ip = null;
int port = -1;
List<String> workspaces = new ArrayList<String>();
for ( int i=0; i<argv.length; i++ ) {
String arg = argv[i++];
if ( arg.equals("-u") ) {
userID = argv[i];
} else if ( arg.equals("-w") ) {
workspaces.add(argv[i]);
} else if ( arg.equals("-i") ) {
ip = argv[i];
} else if ( arg.equals("-p") ) {
port = Integer.parseInt(argv[i]);
} else {
showUsage();
System.exit(1);
}
}
if ( userID == null || ip == null || port == -1) {
showUsage();
System.exit(1);
}
CleanObjects cleaner = new CleanObjects(ip, port);
if ( workspaces.size() == 0 ) {
System.out.println("Removing objects from ALL workspaces from user "+userID);
cleaner.cleanUserObjects(userID);
} else {
System.out.println("Removing objects from workspaces "+workspaces.toString()+" from user "+userID);
for ( String w : workspaces ){
cleaner.cleanUserObjects(userID, w);
}
}
System.exit(0);
}
}