diff --git a/lib/constants.py b/lib/constants.py
index 402549859e99c00eec2641ae8f37840ec791e76a..51783416c5d03e61cb90162ff9ed00d4427b40a1 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -841,6 +841,16 @@ OPS_FINALIZED = frozenset([OP_STATUS_CANCELED,
                            OP_STATUS_SUCCESS,
                            OP_STATUS_ERROR])
 
+# OpCode priority
+OP_PRIO_LOWEST = +19
+OP_PRIO_HIGHEST = -20
+
+OP_PRIO_LOW = +10
+OP_PRIO_NORMAL = 0
+OP_PRIO_HIGH = -10
+
+OP_PRIO_DEFAULT = OP_PRIO_NORMAL
+
 # Execution log types
 ELOG_MESSAGE = "message"
 ELOG_PROGRESS = "progress"
diff --git a/test/ganeti.constants_unittest.py b/test/ganeti.constants_unittest.py
index d73d6503c5e551ff64a169ddf850123a735b699a..9aab10fa1db2c565e01a4e32cad6e95eb71366d7 100755
--- a/test/ganeti.constants_unittest.py
+++ b/test/ganeti.constants_unittest.py
@@ -26,6 +26,7 @@ import unittest
 import re
 
 from ganeti import constants
+from ganeti import locking
 
 import testutils
 
@@ -68,6 +69,14 @@ class TestConstants(unittest.TestCase):
     self.failUnless(constants.SSL_CERT_EXPIRATION_ERROR <
                     constants.SSL_CERT_EXPIRATION_WARN)
 
+  def testOpCodePriority(self):
+    self.failUnless(constants.OP_PRIO_LOWEST > constants.OP_PRIO_LOW)
+    self.failUnless(constants.OP_PRIO_LOW > constants.OP_PRIO_NORMAL)
+    self.failUnlessEqual(constants.OP_PRIO_NORMAL, locking._DEFAULT_PRIORITY)
+    self.failUnlessEqual(constants.OP_PRIO_DEFAULT, locking._DEFAULT_PRIORITY)
+    self.failUnless(constants.OP_PRIO_NORMAL > constants.OP_PRIO_HIGH)
+    self.failUnless(constants.OP_PRIO_HIGH > constants.OP_PRIO_HIGHEST)
+
 
 class TestParameterNames(unittest.TestCase):
   """HV/BE parameter tests"""