Upgrading to FOAM 0.8 from FOAM 0.6 involves a database conversion; here's an end-to-end procedure for upgrading and testing. Get before state: {{{ cd rm -rf ~/tmp/foam-upgrade mkdir -p ~/tmp/foam-upgrade/before cd ~/tmp/foam-upgrade/before foamctl list-slivers --passwd-file=/opt/foam/etc/foampasswd > list-slivers-active.txt foamctl list-slivers --deleted --passwd-file=/opt/foam/etc/foampasswd > list-slivers-deleted.txt egrep '(email|desc|slice_urn|sliver_urn)' list-slivers-active.txt | sort > list-slivers-active-cooked.txt egrep '(email|desc|slice_urn|sliver_urn)' list-slivers-deleted.txt | sort > list-slivers-deleted-cooked.txt }}} Update the FOAM apt sources entry, changing {{{ http://updates.flowvisor.org/openflow/downloads/GENI/DEB/ lucid/stable/all/ }}} to {{{ https://s3.amazonaws.com/bssoftworks/foam-pkg/ lucid/stable/all/ }}} (This is a little vague because you might have this entry in /etc/apt/sources.list, or /etc/apt/sources.list.d/, or some other place. But probably one of those two.) Make sure it's available: {{{ sudo apt-get update apt-cache show foam | grep "^Version" }}} Do what https://openflow.stanford.edu/display/FOAM/0.8+Upgrade+Instructions says: {{{ cp /opt/foam/db/foam.db ~/foam.db.bak cp /opt/foam/db/foam.db /tmp/foam.db sudo apt-get install -y --force-yes foam sudo service foam restart sudo service nginx restart foam-db-convert.py | tee ~/foam-db-convert.log }}} At the end of foam-db-convert.py, it'll prompt you for a new admin password. You can use the same thing as you had before (e.g. the one in /opt/foam/etc/foampasswd, if you had it stashed there) -- it's just that it got reset to 'admin' when the new 0.8.x database was created. Note that foam-db-convert.py is importing deleted slivers, so if e.g. experimenters created and deleted slivers in the same '''slice''' repeatedly, you may see a bunch of what looks like duplicates. The '''slice''' URNs may be the same, but the '''sliver''' URNs should be different. Get "after" state: {{{ cd rm -rf ~/tmp/foam-upgrade/after mkdir -p ~/tmp/foam-upgrade/after cd ~/tmp/foam-upgrade/after foamctl geni:list-slivers --passwd-file=/opt/foam/etc/foampasswd > list-slivers-active.txt foamctl geni:list-slivers --deleted --passwd-file=/opt/foam/etc/foampasswd > list-slivers-deleted.txt egrep '(email|desc|slice_urn|sliver_urn)' list-slivers-active.txt | sort > list-slivers-active-cooked.txt egrep '(email|desc|slice_urn|sliver_urn)' list-slivers-deleted.txt | sort > list-slivers-deleted-cooked.txt }}} Diff the results: {{{ for file in *cooked.txt ; do diff -u ../before/$file $file ; done }}} Check for any other exceptions: {{{ grep -i exception /opt/foam/log/foam.log }}} You can also look through ~/foam-db-convert.log if you want to see what all it did, skim for anything unusual, etc. Not essential, if you feel happy. Finally, if you haven't already upgraded tango-monitor-foam to 0.4, http://groups.geni.net/geni/wiki/PlasticSlices/MonitoringRecommendations/FoamConfiguration describes how to do that (and if you don't, FOAM monitoring will break, so now is a good time).