Factor out all reclass logic from storage classes

Signed-off-by: martin f. krafft <madduck@madduck.net>
diff --git a/reclass/adapters/salt.py b/reclass/adapters/salt.py
index 5a8a772..6fd7224 100755
--- a/reclass/adapters/salt.py
+++ b/reclass/adapters/salt.py
@@ -9,9 +9,11 @@
 
 import os, sys, posix
 
-from reclass import get_nodeinfo, get_inventory, output
+from reclass import get_storage, output
+from reclass.core import Core
 from reclass.errors import ReclassException
-from reclass.config import find_and_read_configfile, get_options
+from reclass.config import find_and_read_configfile, get_options, \
+        path_mangler
 from reclass.constants import MODE_NODEINFO
 from reclass.defaults import *
 from reclass.version import *
@@ -23,8 +25,12 @@
                classes_uri=OPT_CLASSES_URI,
                class_mappings=None):
 
-    data = get_nodeinfo(storage_type, inventory_base_uri, nodes_uri,
-                        classes_uri, minion_id, class_mappings)
+    nodes_uri, classes_uri = path_mangler(inventory_base_uri,
+                                          nodes_uri, classes_uri)
+    storage = get_storage(storage_type, nodes_uri, classes_uri)
+    reclass = Core(storage, class_mappings)
+
+    data = reclass.nodeinfo(minion_id)
     params = data.get('parameters', {})
     params['__reclass__'] = {}
     params['__reclass__']['applications'] = data['applications']
@@ -39,19 +45,22 @@
 
     env = 'base'
     # TODO: node environments
+    nodes_uri, classes_uri = path_mangler(inventory_base_uri,
+                                          nodes_uri, classes_uri)
+    storage = get_storage(storage_type, nodes_uri, classes_uri)
+    reclass = Core(storage, class_mappings)
 
     # if the minion_id is not None, then return just the applications for the
     # specific minion, otherwise return the entire top data (which we need for
     # CLI invocations of the adapter):
     if minion_id is not None:
-        data = get_nodeinfo(storage_type, inventory_base_uri, nodes_uri,
-                            classes_uri, minion_id, class_mappings)
+        data = reclass.nodeinfo(storage_type, inventory_base_uri, nodes_uri,
+                                classes_uri, minion_id, class_mappings)
         applications = data.get('applications', [])
         return {env: applications}
 
     else:
-        data = get_inventory(storage_type, inventory_base_uri, nodes_uri,
-                             classes_uri, class_mappings)
+        data = reclass.inventory()
         nodes = {}
         for node_id, node_data in data['nodes'].iteritems():
             nodes[node_id] = node_data['applications']