package org.akvo.gae.remoteapi; import java.io.File; import java.util.List; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.Query; import com.google.appengine.api.datastore.Query.Filter; import com.google.appengine.api.datastore.Query.FilterOperator; import com.google.appengine.api.datastore.Query.FilterPredicate; import com.google.appengine.repackaged.org.apache.commons.io.FileUtils; import com.google.appengine.tools.remoteapi.RemoteApiInstaller; import com.google.appengine.tools.remoteapi.RemoteApiOptions; public class CheckSurveyInstance { public static void main(String[] args) { if (args.length != 2) { throw new IllegalArgumentException("Missing params"); } final String base = "/tmp"; final String[] servers = { "ircflow" }; final String usr = args[0]; final String pwd = args[1]; for (String i : servers) { final RemoteApiOptions options = new RemoteApiOptions().server(i + ".appspot.com", 443) .credentials(usr, pwd); final RemoteApiInstaller installer = new RemoteApiInstaller(); try { System.out.println("Processing: " + i); final List<String> uuids = FileUtils.readLines(new File(base + "/" + i + "/uuid.txt")); installer.install(options); DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); for (String j : uuids) { try { final Filter f = new FilterPredicate("uuid", FilterOperator.EQUAL, j); final Query q = new Query("SurveyInstance").setFilter(f).setKeysOnly(); final Entity e = ds.prepare(q).asSingleEntity(); if (e == null) { System.err.println(j); } } catch (Exception e) { // no-op } } } catch (Exception e) { e.printStackTrace(); } finally { installer.uninstall(); } } } }