Add the perform_db_update helper function

Change-Id: I3e2e2ea21c053aa26efea673b077b3b9fe556edb
diff --git a/util.py b/util.py
index bd8d4bf..05f12c2 100644
--- a/util.py
+++ b/util.py
@@ -86,6 +86,42 @@
             else:
                 raise InputError("Unknown query command \"%s\"" % command)
 
+        except InputError:
+            raise
+
+        except:
+            raise InputError("Invalid input in query")
+
+        return ret
+
+    # Helper wrapper for API functions modifying database state
+    def perform_db_update(self, state, command, data):
+        print 'perform_db_update'
+        print command
+        print data
+        ret = {}
+        db = state.db
+        try:
+            if command == 'db.create_switch':
+                ret = db.create_switch(data['name'])
+            elif command == 'db.create_port':
+                ret = db.create_port(data['switch_id'], data['name'],
+                                     state.config.default_vlan_id,
+                                     state.config.default_vlan_id)
+            elif command == 'db.delete_switch':
+                ret = db.delete_switch(data['switch_id'])
+            elif command == 'db.delete_port':
+                ret = db.delete_port(data['port_id'])
+            elif command == 'db.set_port_is_locked':
+                ret = db.set_port_is_locked(data['port_id'], data['is_locked'])
+            elif command == 'db.set_base_vlan':
+                ret = db.set_base_vlan(data['port_id'], data['base_vlan_id'])
+            else:
+                raise InputError("Unknown query command \"%s\"" % command)
+
+        except InputError:
+            raise
+
         except:
             raise InputError("Invalid input in query")