diff --git a/lib/backend.py b/lib/backend.py
index 1e5afa02668f3e023c354065d38580c52917380a..479b0c289a547f5143ebd17caa7da527129e0e5d 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -440,19 +440,20 @@ def GetNodeInfo(vgname, hypervisor_type):
   """
   outputarray = {}
 
-  vginfo = bdev.LogicalVolume.GetVGInfo([vgname])
-  vg_free = vg_size = None
-  if vginfo:
-    vg_free = int(round(vginfo[0][0], 0))
-    vg_size = int(round(vginfo[0][1], 0))
-
-  outputarray['vg_size'] = vg_size
-  outputarray['vg_free'] = vg_free
-
-  hyper = hypervisor.GetHypervisor(hypervisor_type)
-  hyp_info = hyper.GetNodeInfo()
-  if hyp_info is not None:
-    outputarray.update(hyp_info)
+  if vgname is not None:
+    vginfo = bdev.LogicalVolume.GetVGInfo([vgname])
+    vg_free = vg_size = None
+    if vginfo:
+      vg_free = int(round(vginfo[0][0], 0))
+      vg_size = int(round(vginfo[0][1], 0))
+    outputarray['vg_size'] = vg_size
+    outputarray['vg_free'] = vg_free
+
+  if hypervisor_type is not None:
+    hyper = hypervisor.GetHypervisor(hypervisor_type)
+    hyp_info = hyper.GetNodeInfo()
+    if hyp_info is not None:
+      outputarray.update(hyp_info)
 
   outputarray["bootid"] = utils.ReadFile(_BOOT_ID_PATH, size=128).rstrip("\n")
 
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index b9402d96c75c9766e1afc3236fd4567e37b44e9f..b4885ced894fdef16d3783f60b53b872dddcbc69 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4690,7 +4690,7 @@ def _CheckNodeFreeMemory(lu, node, reason, requested, hypervisor_name):
       we cannot check the node
 
   """
-  nodeinfo = lu.rpc.call_node_info([node], lu.cfg.GetVGName(), hypervisor_name)
+  nodeinfo = lu.rpc.call_node_info([node], None, hypervisor_name)
   nodeinfo[node].Raise("Can't get data from node %s" % node,
                        prereq=True, ecode=errors.ECODE_ENVIRON)
   free_mem = nodeinfo[node].payload.get('memory_free', None)
@@ -4749,8 +4749,7 @@ def _CheckNodesFreeDiskOnVG(lu, nodenames, vg, requested):
       or we cannot check the node
 
   """
-  nodeinfo = lu.rpc.call_node_info(nodenames, vg,
-                                   lu.cfg.GetHypervisorType())
+  nodeinfo = lu.rpc.call_node_info(nodenames, vg, None)
   for node in nodenames:
     info = nodeinfo[node]
     info.Raise("Cannot get current information from node %s" % node,
@@ -9314,7 +9313,7 @@ class LUSetInstanceParams(LogicalUnit):
         mem_check_list.extend(instance.secondary_nodes)
       instance_info = self.rpc.call_instance_info(pnode, instance.name,
                                                   instance.hypervisor)
-      nodeinfo = self.rpc.call_node_info(mem_check_list, self.cfg.GetVGName(),
+      nodeinfo = self.rpc.call_node_info(mem_check_list, None,
                                          instance.hypervisor)
       pninfo = nodeinfo[pnode]
       msg = pninfo.fail_msg