-local error = error;
+local error, type = error, type;
local setmetatable = setmetatable;
local config = require "core.configmanager";
local datamanager = require "util.datamanager";
local modulemanager = require "core.modulemanager";
+local multitable = require "util.multitable";
local hosts = hosts;
local log = require "util.logger".init("storagemanager");
if not driver then
if driver_name ~= "internal" then
modulemanager.load(host, "storage_"..driver_name);
+ return stores_available:get(host, driver_name);
else
return setmetatable({host = host}, default_driver_mt);
end
driver_name = config.get(host, "core", "default_storage");
driver = load_driver(host, driver_name);
if not driver then
+ if storage or driver_name then
+ log("warn", "Falling back to default driver for %s storage on %s", store, host);
+ end
driver_name = "internal";
- log("warn", "Falling back to default driver for %s storage on %s", store, host);
driver = load_driver(host, driver_name);
end
end
if err == "unsupported-store" then
log("debug", "Storage driver %s does not support store %s (%s), falling back to internal driver",
driver_name, store, typ);
- ret = setmetatable({ host = host, store = store }, default_driver_mt); end -- default to default driver
+ ret = setmetatable({ host = host, store = store }, default_driver_mt); -- default to default driver
err = nil;
end
end