diff --git a/lib/rapi/connector.py b/lib/rapi/connector.py
index 0b81c57d79a2828bcc258faf93b6263b99b6a2ba..cb843b8944ee71aa4943d6511e93620f9a35514e 100644
--- a/lib/rapi/connector.py
+++ b/lib/rapi/connector.py
@@ -114,12 +114,47 @@ class R_root(baserlib.R_Generic):
     return baserlib.BuildUriList(rootlist, "/%s")
 
 
+def _getResources(id):
+  """Return a list of resources underneath given id.
+
+  This is to generalize querying of version resources lists.
+
+  @return: a list of resources names.
+
+  """
+  r_pattern = re.compile('^R_%s_([a-zA-Z0-9]+)$' % id)
+
+  rlist = []
+  for handler in CONNECTOR.values():
+    m = r_pattern.match(handler.__name__)
+    if m:
+      name = m.group(1)
+      rlist.append(name)
+
+  return rlist
+
+
+class R_2(baserlib.R_Generic):
+  """ /2 resourse.
+
+  """
+  DOC_URI = "/2"
+
+  def GET(self):
+    """Show the list of mapped resources.
+
+    @return: a dictionary with 'name' and 'uri' keys for each of them.
+
+    """
+    return baserlib.BuildUriList(_getResources("2"), "/2/%s")
+
+
 CONNECTOR.update({
   "/": R_root,
 
   "/version": rlib1.R_version,
 
-
+  "/2": R_2,
   "/2/jobs": rlib2.R_2_jobs,
   "/2/nodes": rlib2.R_2_nodes,
   "/2/instances": rlib2.R_2_instances,
diff --git a/test/ganeti.rapi.resources_unittest.py b/test/ganeti.rapi.resources_unittest.py
index 9a5bef6d978afb8871a8656336f5831d9c6644ad..b40e0da492623eec3cb121d35fc59d48b075636e 100755
--- a/test/ganeti.rapi.resources_unittest.py
+++ b/test/ganeti.rapi.resources_unittest.py
@@ -76,7 +76,7 @@ class R_RootTests(unittest.TestCase):
 
   def testGet(self):
     expected = [
-        # TODO: {'name': 'info', 'uri': '/2'},
+      {'name': '2', 'uri': '/2'},
       {'name': 'version', 'uri': '/version'},
       ]
     self.assertEquals(self.root.GET(), expected)