tree 837468db7afc2715e42932be04d689aac0dcc7a6
parent c9a2046696767adf1a2a9544e4ee241741eed90b
author Steve McIntyre <steve.mcintyre@linaro.org> 1517504005 +0000
committer Steve McIntyre <steve.mcintyre@linaro.org> 1517504005 +0000

Add support for storing and using lock_reason

lock_reason is simple optional text for admins to use to store why
they've locked a port in VLANd. Helpful as reminders later on!

Changes:

 * Added database schema V2, with upgrade code to go with it. Adds the
   "lock_reason" field in the port table.
 * Deal with changes to all the database methods dealing with the
   port table. set_port_is_locked() now takes an extra parameter for
   lock_reason.
 * API call db.set_port_is_locked() updated to match
 * admin.py updated to match - allow optional setting of lock_reason
   when locking a port, and print the reason when displaying port
   details too
 * In the web interface when hovering over a locked port, now also
   display lock_reason if it's available, or "unknown reason"
   otherwise

Change-Id: I31abc7308fd95e264729abc32ee855ac327a9abd
