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

[Xen-changelog] [xen-unstable] xend: Fix startup after removal of ACM support.



# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1301241842 -3600
# Node ID c4576aafb21ebfc16b438684ebb1148c13e80085
# Parent  0bc1c4746c8939337f693a513fd837fc03477db1
xend: Fix startup after removal of ACM support.

Signed-off-by: Keir Fraser <keir@xxxxxxx>
---


diff -r 0bc1c4746c89 -r c4576aafb21e tools/python/setup.py
--- a/tools/python/setup.py     Sun Mar 27 09:30:35 2011 +0100
+++ b/tools/python/setup.py     Sun Mar 27 17:04:02 2011 +0100
@@ -105,6 +105,7 @@
                          'xen.util.xsm',
                          'xen.util.xsm.dummy',
                          'xen.util.xsm.flask',
+                         'xen.util.xsm.acm',
                          'xen.xend',
                          'xen.xend.server',
                          'xen.xend.xenstore',
diff -r 0bc1c4746c89 -r c4576aafb21e tools/python/xen/util/xsm/acm/acm.py
--- a/tools/python/xen/util/xsm/acm/acm.py      Sun Mar 27 09:30:35 2011 +0100
+++ b/tools/python/xen/util/xsm/acm/acm.py      Sun Mar 27 17:04:02 2011 +0100
@@ -25,7 +25,6 @@
 import struct
 import stat
 import base64
-from xen.lowlevel import acm
 from xen.xend import sxp
 from xen.xend import XendConstants
 from xen.xend import XendOptions
@@ -140,10 +139,7 @@
     active_policy = 'INACCESSIBLE'
 
     if os.access("/proc/xen/privcmd", os.R_OK|os.W_OK):
-        try:
-            active_policy = acm.policy()
-        except:
-            active_policy = "INACTIVE"
+        active_policy = "INACTIVE"
 
 def get_active_policy_name():
     refresh_security_policy()
@@ -439,26 +435,7 @@
     """
     enables domains to retrieve the label / ssidref of a running domain
     """
-    if not on():
-        err("No policy active.")
-
-    if isinstance(domain, str):
-        domain_int = int(domain)
-    elif isinstance(domain, int):
-        domain_int = domain
-    else:
-        err("Illegal parameter type.")
-    try:
-        ssid_info = acm.getssid(int(domain_int))
-    except:
-        err("Cannot determine security information.")
-
-    label = ssidref2label(ssid_info["ssidref"])
-
-    return(ssid_info["policyreference"],
-           label,
-           ssid_info["policytype"],
-           ssid_info["ssidref"])
+    err("No policy active.")
 
 
 
@@ -469,40 +446,7 @@
     IN: args format = ['domid', id] or ['ssidref', ssidref]
     or ['access_control', ['policy', policy], ['label', label], ['type', type]]
     """
-
-    if not on():
-        err("No policy active.")
-
-    #translate labels before calling low-level function
-    if arg1[0] == 'access_control':
-        if (arg1[1][0] != 'policy') or (arg1[2][0] != 'label') or (arg1[3][0] 
!= 'type'):
-            err("Argument type not supported.")
-        ssidref = label2ssidref(arg1[2][1], arg1[1][1], arg1[3][1])
-        arg1 = ['ssidref', str(ssidref)]
-    if arg2[0] == 'access_control':
-        if (arg2[1][0] != 'policy') or (arg2[2][0] != 'label') or (arg2[3][0] 
!= 'type'):
-            err("Argument type not supported.")
-        ssidref = label2ssidref(arg2[2][1], arg2[1][1], arg2[3][1])
-        arg2 = ['ssidref', str(ssidref)]
-
-    # accept only int or string types for domid and ssidref
-    if isinstance(arg1[1], int):
-        arg1[1] = str(arg1[1])
-    if isinstance(arg2[1], int):
-        arg2[1] = str(arg2[1])
-    if not isinstance(arg1[1], str) or not isinstance(arg2[1], str):
-        err("Invalid id or ssidref type, string or int required")
-
-    try:
-        decision = acm.getdecision(arg1[0], arg1[1], arg2[0], arg2[1],
-                                   ACMHOOK_sharing)
-    except:
-        err("Cannot determine decision.")
-
-    if decision:
-        return decision
-    else:
-        err("Cannot determine decision (Invalid parameter).")
+    err("No policy active.")
 
 
 def has_authorization(ssidref):
@@ -510,14 +454,7 @@
         run on this system. To have authoriztion dom0's STE types must
         be a superset of that of the domain's given through its ssidref.
     """
-    rc = True
-    dom0_ssidref = int(acm.getssid(0)['ssidref'])
-    decision = acm.getdecision('ssidref', str(dom0_ssidref),
-                               'ssidref', str(ssidref),
-                               ACMHOOK_authorization)
-    if decision == "DENIED":
-        rc = False
-    return rc
+    return True
 
 
 def hv_chg_policy(bin_pol, del_array, chg_array):
@@ -527,44 +464,19 @@
         and changed ssidrefs which can be due to deleted VM labels
         or reordered VM labels
     """
-    rc = -xsconstants.XSERR_GENERAL_FAILURE
-    errors = ""
-    if not on():
-        err("No policy active.")
-    try:
-        rc, errors = acm.chgpolicy(bin_pol, del_array, chg_array)
-    except Exception, e:
-        pass
-    if len(errors) > 0:
-        rc = -xsconstants.XSERR_HV_OP_FAILED
-    return rc, errors
+    err("No policy active.")
 
 def hv_get_policy():
     """
         Gte the binary policy enforced in the hypervisor
     """
-    rc = -xsconstants.XSERR_GENERAL_FAILURE
-    bin_pol = ""
-    if not on():
-        err("No policy active.")
-    try:
-        rc, bin_pol = acm.getpolicy()
-    except Exception, e:
-        pass
-    if len(bin_pol) == 0:
-        bin_pol = None
-    return rc, bin_pol
+    err("No policy active.")
 
 
 def is_in_conflict(ssidref):
     """ Check whether the given ssidref is in conflict with any running
         domain.
     """
-    decision = acm.getdecision('ssidref', str(ssidref),
-                               'ssidref', str(ssidref),
-                               ACMHOOK_conflictset)
-    if decision == "DENIED":
-        return True
     return False
 
 
@@ -1375,19 +1287,8 @@
       @param relabel_list: a list containing tuples of domid, ssidref
                            example: [ [0, 0x00020002] ]
     """
-    rel_rules = ""
-    for r in relabel_list:
-        log.info("Relabeling domain with domid %d to new ssidref 0x%08x",
-                r[0], r[1])
-        rel_rules += struct.pack("ii", r[0], r[1])
-    try:
-        rc, errors = acm.relabel_domains(rel_rules)
-    except Exception, e:
-        log.info("Error after relabel_domains: %s" % str(e))
-        rc = -xsconstants.XSERR_GENERAL_FAILURE
-        errors = ""
-    if (len(errors) > 0):
-        rc = -xsconstants.XSERR_HV_OP_FAILED
+    rc = -xsconstants.XSERR_GENERAL_FAILURE
+    errors = ""
     return rc, errors
 
 

_______________________________________________
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®.