Thanks.  I tested these a little and pushed them.

On Mon, Jul 25, 2011 at 01:39:42PM -0700, Ethan Jackson wrote:
> Looks Good.
> 
> Ethan
> 
> On Thu, Jul 7, 2011 at 12:48, Ben Pfaff <[email protected]> wrote:
> > If the "ovsdb-tool convert" call fails, it is likely because the database
> > has bad contents that this version of OVSDB does not understand. ?In that
> > case, we're better off using a fresh, empty database rather than failing
> > to come up at all.
> >
> > Bug #6280.
> > ---
> > ?utilities/ovs-ctl.in | ? 23 ++++++++++++++++++-----
> > ?1 files changed, 18 insertions(+), 5 deletions(-)
> >
> > diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
> > index 6bc81b7..1193e9d 100755
> > --- a/utilities/ovs-ctl.in
> > +++ b/utilities/ovs-ctl.in
> > @@ -59,20 +59,23 @@ ovsdb_tool () {
> > ? ? ovsdb-tool -vANY:console:emer "$@"
> > ?}
> >
> > +create_db () {
> > + ? ?action "Creating empty database $DB_FILE" true
> > + ? ?ovsdb_tool create "$DB_FILE" "$DB_SCHEMA"
> > +}
> > +
> > ?upgrade_db () {
> > ? ? schemaver=`ovsdb_tool schema-version "$DB_SCHEMA"`
> > ? ? if test ! -e "$DB_FILE"; then
> > ? ? ? ? log_warning_msg "$DB_FILE does not exist"
> > ? ? ? ? install -d -m 755 -o root -g root `dirname $DB_FILE`
> > -
> > - ? ? ? ?action "Creating empty database $DB_FILE" true
> > - ? ? ? ?ovsdb_tool create "$DB_FILE" "$DB_SCHEMA"
> > + ? ? ? ?create_db
> > ? ? elif test X"`ovsdb_tool needs-conversion "$DB_FILE" "$DB_SCHEMA"`" != 
> > Xno; then
> > ? ? ? ? # Back up the old version.
> > ? ? ? ? version=`ovsdb_tool db-version "$DB_FILE"`
> > ? ? ? ? cksum=`ovsdb_tool db-cksum "$DB_FILE" | awk '{print $1}'`
> > ? ? ? ? backup=$DB_FILE.backup$version-$cksum
> > - ? ? ? ?action "Backing up database to $backup" cp "$DB_FILE" "$backup"
> > + ? ? ? ?action "Backing up database to $backup" cp "$DB_FILE" "$backup" || 
> > return 1
> >
> > ? ? ? ? # Compact database. ?This is important if the old schema did not 
> > enable
> > ? ? ? ? # garbage collection (i.e. if it did not have any tables with 
> > "isRoot":
> > @@ -83,10 +86,20 @@ upgrade_db () {
> > ? ? ? ? # does) would cause the record to be dropped by the first 
> > transaction,
> > ? ? ? ? # then the second transaction would cause a referential integrity
> > ? ? ? ? # failure (for a strong reference).
> > + ? ? ? ?#
> > + ? ? ? ?# Errors might occur on an Open vSwitch downgrade if ovsdb-tool 
> > doesn't
> > + ? ? ? ?# understand some feature of the schema used in the OVSDB version 
> > that
> > + ? ? ? ?# we're downgrading from, so we don't give up on error.
> > ? ? ? ? action "Compacting database" ovsdb_tool compact "$DB_FILE"
> >
> > ? ? ? ? # Upgrade or downgrade schema.
> > - ? ? ? ?action "Converting database schema" ovsdb_tool convert "$DB_FILE" 
> > "$DB_SCHEMA"
> > + ? ? ? ?if action "Converting database schema" ovsdb_tool convert 
> > "$DB_FILE" "$DB_SCHEMA"; then
> > + ? ? ? ? ? ?:
> > + ? ? ? ?else
> > + ? ? ? ? ? ?log_warning_msg "Schema conversion failed, using empty 
> > database instead"
> > + ? ? ? ? ? ?rm -f "$DB_FILE"
> > + ? ? ? ? ? ?create_db
> > + ? ? ? ?fi
> > ? ? fi
> > ?}
> >
> > --
> > 1.7.4.4
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > http://openvswitch.org/mailman/listinfo/dev
> >
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to