diff --git a/lib/rapi/connector.py b/lib/rapi/connector.py
index ecf82c78900a2bd61506d56af37a30f4e5da780d..9540bc5f66c3cd204a398dd147d4f8aab862a5b2 100644
--- a/lib/rapi/connector.py
+++ b/lib/rapi/connector.py
@@ -125,11 +125,11 @@ CONNECTOR.update({
   "/tags": rlib1.R_tags,
   "/info": rlib1.R_info,
 
-  "/nodes": rlib1.R_nodes,
+  "/nodes": rlib2.R_2_nodes,
   re.compile(r'^/nodes/([\w\._-]+)$'): rlib1.R_nodes_name,
   re.compile(r'^/nodes/([\w\._-]+)/tags$'): rlib1.R_nodes_name_tags,
 
-  "/instances": rlib1.R_instances,
+  "/instances": rlib2.R_2_instances,
   re.compile(r'^/instances/([\w\._-]+)$'): rlib1.R_instances_name,
   re.compile(r'^/instances/([\w\._-]+)/tags$'): rlib1.R_instances_name_tags,
 
diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py
index f55dd33277d97d50f23817107c4a49dbbf6e0eb7..7a9dfd82dc5d179f4de967bc96e621c73997abd7 100644
--- a/lib/rapi/rlib2.py
+++ b/lib/rapi/rlib2.py
@@ -128,14 +128,13 @@ class R_2_nodes(baserlib.R_Generic):
     ]
 
     """
-    op = ganeti.opcodes.OpQueryNodes(output_fields=["name"], names=[])
-    nodeslist = baserlib.ExtractField(ganeti.cli.SubmitOpCode(op), 0)
+    client = luxi.Client()
+    nodesdata = client.QueryNodes([], ["name"])
+    nodeslist = [row[0] for row in nodesdata]
 
     if 'bulk' in self.queryargs:
-      op = ganeti.opcodes.OpQueryNodes(output_fields=N_FIELDS,
-                                       names=nodeslist)
-      result = ganeti.cli.SubmitOpCode(op)
-      return baserlib.MapBulkFields(result, N_FIELDS)
+      bulkdata = client.QueryNodes(nodeslist, N_FIELDS)
+      return baserlib.MapBulkFields(bulkdata, N_FIELDS)
 
     return baserlib.BuildUriList(nodeslist, "/2/nodes/%s",
                                  uri_fields=("id", "uri"))
@@ -190,15 +189,14 @@ class R_2_instances(baserlib.R_Generic):
     ]
 
     """
-    op = ganeti.opcodes.OpQueryInstances(output_fields=["name"], names=[])
-    instanceslist = baserlib.ExtractField(ganeti.cli.SubmitOpCode(op), 0)
+    client = luxi.Client()
+    instancesdata = client.QueryInstances([], ["name"])
+    instanceslist = [row[0] for row in instancesdata]
 
-    if 'bulk' in self.queryargs:
-      op = ganeti.opcodes.OpQueryInstances(output_fields=I_FIELDS,
-                                           names=instanceslist)
-      result = ganeti.cli.SubmitOpCode(op)
-      return baserlib.MapBulkFields(result, I_FIELDS)
 
+    if 'bulk' in self.queryargs:
+      bulkdata = client.QueryInstances(instanceslist, I_FIELDS)
+      return baserlib.MapBulkFields(bulkdata, I_FIELDS)
 
     else:
       return baserlib.BuildUriList(instanceslist, "/2/instances/%s",