Version 1 (modified by 12 years ago) (diff) | ,
---|
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 apt sources entry to 'deb https://s3.amazonaws.com/bssoftworks/foam-pkg/ lucid/stable/all/'.
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.