diff --git a/qa/qa_config.py b/qa/qa_config.py
index 6b0c5e10658468a034a629e880e6ff6b1e0a6552..1ff1dd115204d205d286f9675156ce59d84c626d 100644
--- a/qa/qa_config.py
+++ b/qa/qa_config.py
@@ -44,7 +44,7 @@ class _QaInstance(object):
   __slots__ = [
     "name",
     "nicmac",
-    "used",
+    "_used",
     "_disk_template",
     ]
 
@@ -54,7 +54,7 @@ class _QaInstance(object):
     """
     self.name = name
     self.nicmac = nicmac
-    self.used = None
+    self._used = None
     self._disk_template = None
 
   @classmethod
@@ -70,15 +70,24 @@ class _QaInstance(object):
 
     return cls(name=data["name"], nicmac=nicmac)
 
+  def Use(self):
+    """Marks instance as being in use.
+
+    """
+    assert not self._used
+    assert self._disk_template is None
+
+    self._used = True
+
   def Release(self):
     """Releases instance and makes it available again.
 
     """
-    assert self.used, \
+    assert self._used, \
       ("Instance '%s' was never acquired or released more than once" %
        self.name)
 
-    self.used = False
+    self._used = False
     self._disk_template = None
 
   def GetNicMacAddr(self, idx, default):
@@ -102,6 +111,13 @@ class _QaInstance(object):
 
     self._disk_template = template
 
+  @property
+  def used(self):
+    """Returns boolean denoting whether instance is in use.
+
+    """
+    return self._used
+
   @property
   def disk_template(self):
     """Returns the current disk template.
@@ -485,14 +501,10 @@ def AcquireInstance(_cfg=None):
   if not instances:
     raise qa_error.OutOfInstancesError("No instances left")
 
-  inst = instances[0]
-
-  assert not inst.used
-  assert inst.disk_template is None
-
-  inst.used = True
+  instance = instances[0]
+  instance.Use()
 
-  return inst
+  return instance
 
 
 def SetExclusiveStorage(value):