[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] acm: check for duplicate labels and types



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1213000676 -3600
# Node ID 1de5d17497fd0518c153ec37123fc3f9cce6332f
# Parent  4eba2151d38b2071629de86beaf43593bdd5160b
acm: check for duplicate labels and types
Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx>
---
 tools/python/xen/util/acmpolicy.py   |    7 +++++++
 tools/python/xen/util/xsconstants.py |    6 ++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff -r 4eba2151d38b -r 1de5d17497fd tools/python/xen/util/acmpolicy.py
--- a/tools/python/xen/util/acmpolicy.py        Mon Jun 09 09:37:22 2008 +0100
+++ b/tools/python/xen/util/acmpolicy.py        Mon Jun 09 09:37:56 2008 +0100
@@ -1323,6 +1323,13 @@ class ACMPolicy(XSPolicy):
         if ACM_LABEL_UNLABELED in resnames:
             resnames.remove(ACM_LABEL_UNLABELED)
 
+        # check for duplicate labels
+        if len(vmlabels) != len(set(vmlabels)) or \
+           len(resnames) != len(set(resnames)) or \
+           len(stes)     != len(set(stes))     or \
+           len(chws)     != len(set(chws)):
+            return -xsconstants.XSERR_POLICY_HAS_DUPLICATES, "", ""
+
         max_chw_ssids = 1 + len(vms_with_chws)
         max_chw_types = 1 + len(vms_with_chws)
         max_ste_ssids = 1 + len(vms_with_stes) + len(resnames)
diff -r 4eba2151d38b -r 1de5d17497fd tools/python/xen/util/xsconstants.py
--- a/tools/python/xen/util/xsconstants.py      Mon Jun 09 09:37:22 2008 +0100
+++ b/tools/python/xen/util/xsconstants.py      Mon Jun 09 09:37:56 2008 +0100
@@ -59,7 +59,8 @@ XSERR_BOOTPOLICY_INSTALL_ERROR = 25 + XS
 XSERR_BOOTPOLICY_INSTALL_ERROR = 25 + XSERR_BASE
 XSERR_VM_NOT_AUTHORIZED        = 26 + XSERR_BASE
 XSERR_VM_IN_CONFLICT           = 27 + XSERR_BASE
-XSERR_LAST                     = 27 + XSERR_BASE ## KEEP LAST
+XSERR_POLICY_HAS_DUPLICATES    = 28 + XSERR_BASE
+XSERR_LAST                     = 28 + XSERR_BASE ## KEEP LAST
 
 XSERR_MESSAGES = [
     '',
@@ -89,7 +90,8 @@ XSERR_MESSAGES = [
     'Operation failed in hypervisor',
     'Boot policy installation error',
     'VM is not authorized to run',
-    'VM label conflicts with another VM'
+    'VM label conflicts with another VM',
+    'Duplicate labels or types in policy'
 ]
 
 def xserr2string(err):

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.