storagemanager: Check if drivers support purging, warn otherwise
authorKim Alvefur <zash@zash.se>
Wed, 02 Sep 2015 15:26:28 +0200
changeset 6812 dd6b21862e3b
parent 6811 f076dac78155
child 6813 533fd843d91f
storagemanager: Check if drivers support purging, warn otherwise
core/storagemanager.lua
--- a/core/storagemanager.lua	Wed Sep 02 14:25:30 2015 +0200
+++ b/core/storagemanager.lua	Wed Sep 02 15:26:28 2015 +0200
@@ -98,9 +98,14 @@
 	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