Also create plugin UserStore data tables
authorPatrick Uiterwijk <puiterwijk@redhat.com>
Fri, 4 Sep 2015 20:28:40 +0000 (22:28 +0200)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Sat, 5 Sep 2015 20:49:22 +0000 (22:49 +0200)
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Reviewed-by: Rob Crittenden <rcritten@redhat.com>
ipsilon/tools/dbupgrade.py
ipsilon/util/data.py

index 7e008f2..021acf3 100644 (file)
@@ -96,6 +96,7 @@ def execute_upgrade(cfgfile):
             return upgrade_failed()
 
     # And now datastores for any of the plugins
+    userstore = UserStore()
     for facility in ['provider_config',
                      'login_config',
                      'info_config']:
@@ -104,6 +105,8 @@ def execute_upgrade(cfgfile):
             plugin = root._site[facility].available[plugin]
             logger.debug('Creating plugin AdminStore table')
             adminstore.create_plugin_data_table(plugin.name)
+            logger.debug('Creating plugin UserStore table')
+            userstore.create_plugin_data_table(plugin.name)
             for store in plugin.used_datastores():
                 logger.debug('Handling plugin datastore %s',
                              store.__class__.__name__)
index 7f387b7..65bf4b5 100644 (file)
@@ -739,6 +739,14 @@ class UserStore(Store):
         else:
             raise NotImplementedError()
 
+    def create_plugin_data_table(self, plugin_name):
+        if not self.is_readonly:
+            table = plugin_name+'_data'
+            q = self._query(self._db, table, OPTIONS_TABLE,
+                            trans=False)
+            q.create()
+            q._con.close()  # pylint: disable=protected-access
+
 
 class TranStore(Store):