storagemanager: Check if drivers support purging, warn otherwise
authorKim Alvefur <zash@zash.se>
Wed, 2 Sep 2015 13:26:28 +0000 (15:26 +0200)
committerKim Alvefur <zash@zash.se>
Wed, 2 Sep 2015 13:26:28 +0000 (15:26 +0200)
core/storagemanager.lua

index 55f0800a203fe34a615ca028616f3dc2e13ccb8a..fb868d03e574db9d92ad23b062e7a06ceb0296ea 100644 (file)
@@ -98,9 +98,14 @@ local function purge(user, host)
        if type(storage) == "table" then
                -- multiple storage backends in use that we need to purge
                local purged = {};
-               for store, driver in pairs(storage) do
-                       if not purged[driver] then
-                               purged[driver] = get_driver(host, store):purge(user);
+               for store, driver_name in pairs(storage) do
+                       if not purged[driver_name] then
+                               local driver = get_driver(host, store);
+                               if driver.purge then
+                                       purged[driver_name] = driver:purge(user);
+                               else
+                                       log("warn", "Storage driver %s does not support removing all user data, you may need to delete it manually", driver_name);
+                               end
                        end
                end
        end