How do I execute the command 'appcfg rollback'?

Suhail Gupta picture Suhail Gupta · Jul 26, 2012 · Viewed 17k times · Source

While uploading the project , there was a network failure and I had to stop, when the uploading process was only 31% complete. Now when I click to deploy application to google app engine the following message is produced :

com.google.appengine.tools.admin.HttpIoException: Error posting to URL: 
https://appengine.google.com/api/appversion/create?app_id=programworks&version=1&
409 Conflict
Another transaction by user suhailgupta03 is already in progress for app: 
s~programworks, version: 1. That user can undo the transaction with 
"appcfg rollback".

Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=programworks&version=1&
409 Conflict
Another transaction by user suhailgupta03 is already in progress for app: 
s~programworks, version: 1. That user can undo the transaction with "appcfg rollback".

I open my shell prompt and type in there appcfg rollback but I get a message that this command is not found.I have installed google app engine as a plugin for netbeans.

The path where I have kept the jars of google app engine : /home/non-admin/appengine-java-sdk-1.6.6/lib/

Please tell what should I do to rollback the previous process ? I badly need to upload the war file.!

Answer

Dan Holevoet picture Dan Holevoet · Jul 26, 2012

You want appcfg.sh rollback (which is in path_to_your_app_engine_sdk/bin/). appcfg comes in different variants for each type of runtime (Python, Java, Go), so the suggested command is a bit generic.

If, for whatever reason, you don't have easy access to the entire war directory of your project (if, for example your IDE only gives you a .war file), you can do the following:

  1. Make a directory named war.
  2. Inside the war folder make another directory and name it as WEB-INF.
  3. In the folder WEB-INF drop two xml files, namely web.xml and appengine-web.xml. These should have the contents of your deployed web.xml and appengine-web.xml files respectively.

Then run the following shell command (this assumes you execute it from the bin directory of the App Engine Java SDK):

[non-admin@user bin]$ ./appcfg.sh rollback /home/non-admin/NetBeansProjects/PersonalSite/web/war

If you are using the Go appengine tools, then you'll need to run:

$ cd [your go_appengine directory]
$ ./appcfg.py rollback [your app directory with app.yaml in it]