# HG changeset patch
# User ack@xxxxxxxxxxxxxxxxxxxxx
# Node ID c157418212d820f03552f8dff87b2859fa2257e1
# Parent 18f8dde91fbd46af9eb38352ed64e48d429f95d8
# Parent 266573a53949e97bdfbc75d0de58f41dc62bd821
Merge
---
tools/python/xen/util/security.py | 22 +++++++++++++---------
tools/python/xen/xm/addlabel.py | 18 ++++++++++++------
tools/python/xen/xm/getlabel.py | 19 +++++++++++--------
tools/python/xen/xm/resources.py | 23 ++++++++++++++++-------
tools/python/xen/xm/rmlabel.py | 20 ++++++++++++--------
xen/include/public/arch-ia64.h | 2 ++
xen/include/public/arch-x86_32.h | 2 ++
xen/include/public/arch-x86_64.h | 2 ++
xen/include/public/memory.h | 12 ++++++------
9 files changed, 76 insertions(+), 44 deletions(-)
diff -r 18f8dde91fbd -r c157418212d8 tools/python/xen/util/security.py
--- a/tools/python/xen/util/security.py Thu Jun 29 14:39:07 2006 +0100
+++ b/tools/python/xen/util/security.py Thu Jun 29 14:49:41 2006 +0100
@@ -22,10 +22,10 @@ import sys, os, string, re
import sys, os, string, re
import traceback
import shutil
+#from xml.marshal import generic
from xen.lowlevel import acm
from xen.xend import sxp
from xen.xend.XendLogging import log
-from xen.util import dictio
#global directories and tools for security management
policy_dir_prefix = "/etc/xen/acm-security/policies"
@@ -551,16 +551,20 @@ def get_res_label(resource):
(label, policy) = default_res_label()
# load the resource label file
- res_label_cache = {}
- try:
- res_label_cache = dictio.dict_read("resources", res_label_filename)
- except:
+ configfile = res_label_filename
+ if not os.path.isfile(configfile):
log.info("Resource label file not found.")
return default_res_label()
-
- # find the resource information
- if res_label_cache.has_key(resource):
- (policy, label) = res_label_cache[resource]
+#
+# Commented out pending replacement for xml.marshal.generic
+#
+# fd = open(configfile, "rb")
+# res_label_cache = generic.load(fd)
+# fd.close()
+
+# # find the resource information
+# if res_label_cache.has_key(resource):
+# (policy, label) = res_label_cache[resource]
return (label, policy)
diff -r 18f8dde91fbd -r c157418212d8 tools/python/xen/xm/addlabel.py
--- a/tools/python/xen/xm/addlabel.py Thu Jun 29 14:39:07 2006 +0100
+++ b/tools/python/xen/xm/addlabel.py Thu Jun 29 14:49:41 2006 +0100
@@ -22,7 +22,7 @@ import sys, os
import sys, os
import string
import traceback
-from xen.util import dictio
+#from xml.marshal import generic
from xen.util import security
def usage():
@@ -79,13 +79,17 @@ def add_resource_label(label, resource,
return
# see if this resource is already in the file
- access_control = {}
file = security.res_label_filename
- try:
- access_control = dictio.dict_read("resources", file)
- except:
+ if not os.path.isfile(file):
print "Resource file not found, creating new file at:"
print "%s" % (file)
+ fd = open(file, "w")
+ fd.close();
+ access_control = {}
+ else:
+ fd = open(file, "rb")
+# access_control = generic.load(fd)
+ fd.close()
if access_control.has_key(resource):
security.err("This resource is already labeled.")
@@ -93,7 +97,9 @@ def add_resource_label(label, resource,
# write the data to file
new_entry = { resource : tuple([policyref, label]) }
access_control.update(new_entry)
- dictio.dict_write(access_control, "resources", file)
+ fd = open(file, "wb")
+# generic.dump(access_control, fd)
+ fd.close()
except security.ACMError:
pass
diff -r 18f8dde91fbd -r c157418212d8 tools/python/xen/xm/getlabel.py
--- a/tools/python/xen/xm/getlabel.py Thu Jun 29 14:39:07 2006 +0100
+++ b/tools/python/xen/xm/getlabel.py Thu Jun 29 14:49:41 2006 +0100
@@ -21,7 +21,7 @@ import sys, os, re
import sys, os, re
import string
import traceback
-from xen.util import dictio
+#from xml.marshal import generic
from xen.util import security
def usage():
@@ -33,15 +33,17 @@ def get_resource_label(resource):
def get_resource_label(resource):
"""Gets the resource label
"""
- # read in the resource file
- file = security.res_label_filename
try:
- access_control = dictio.dict_read("resources", file)
- except:
- print "Resource label file not found"
- return
+ # read in the resource file
+ file = security.res_label_filename
+ if os.path.isfile(file):
+ fd = open(file, "rb")
+# access_control = generic.load(fd)
+ fd.close()
+ else:
+ print "Resource label file not found"
+ return
- try:
# get the entry and print label
if access_control.has_key(resource):
policy = access_control[resource][0]
@@ -98,6 +100,7 @@ def get_domain_label(configfile):
data = data.strip()
data = data.lstrip("[\'")
data = data.rstrip("\']")
+ (p, l) = data.split(",")
print data
except security.ACMError:
diff -r 18f8dde91fbd -r c157418212d8 tools/python/xen/xm/resources.py
--- a/tools/python/xen/xm/resources.py Thu Jun 29 14:39:07 2006 +0100
+++ b/tools/python/xen/xm/resources.py Thu Jun 29 14:49:41 2006 +0100
@@ -21,7 +21,7 @@ import sys, os
import sys, os
import string
import traceback
-from xen.util import dictio
+#from xml.marshal import generic
from xen.util import security
def usage():
@@ -40,15 +40,24 @@ def print_resource_data(access_control):
print " label: "+label
+def get_resource_data():
+ """Returns the resource dictionary.
+ """
+ file = security.res_label_filename
+ if not os.path.isfile(file):
+ security.err("Resource file not found.")
+
+ fd = open(file, "rb")
+# access_control = generic.load(fd)
+ fd.close()
+ return access_control
+
+
def main (argv):
try:
- file = security.res_label_filename
- access_control = dictio.dict_read("resources", file)
- except:
- security.err("Resource file not found.")
+ access_control = get_resource_data()
+ print_resource_data(access_control)
- try:
- print_resource_data(access_control)
except security.ACMError:
pass
except:
diff -r 18f8dde91fbd -r c157418212d8 tools/python/xen/xm/rmlabel.py
--- a/tools/python/xen/xm/rmlabel.py Thu Jun 29 14:39:07 2006 +0100
+++ b/tools/python/xen/xm/rmlabel.py Thu Jun 29 14:49:41 2006 +0100
@@ -21,7 +21,7 @@ import sys, os, re
import sys, os, re
import string
import traceback
-from xen.util import dictio
+#from xml.marshal import generic
from xen.util import security
def usage():
@@ -36,18 +36,22 @@ def rm_resource_label(resource):
def rm_resource_label(resource):
"""Removes a resource label from the global resource label file.
"""
- # read in the resource file
- file = security.res_label_filename
try:
- access_control = dictio.dict_read("resources", file)
- except:
- security.err("Resource file not found, cannot remove label!")
+ # read in the resource file
+ file = security.res_label_filename
+ if os.path.isfile(file):
+ fd = open(file, "rb")
+# access_control = generic.load(fd)
+ fd.close()
+ else:
+ security.err("Resource file not found, cannot remove label!")
- try:
# remove the entry and update file
if access_control.has_key(resource):
del access_control[resource]
- dictio.dict_write(access_control, "resources", file)
+ fd = open(file, "wb")
+# generic.dump(access_control, fd)
+ fd.close()
else:
security.err("Label does not exist in resource label file.")
diff -r 18f8dde91fbd -r c157418212d8 xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h Thu Jun 29 14:39:07 2006 +0100
+++ b/xen/include/public/arch-ia64.h Thu Jun 29 14:49:41 2006 +0100
@@ -39,6 +39,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
#define MAX_VIRT_CPUS 64
#ifndef __ASSEMBLY__
+
+typedef unsigned long xen_ulong_t;
#define MAX_NR_SECTION 32 /* at most 32 memory holes */
struct mm_section {
diff -r 18f8dde91fbd -r c157418212d8 xen/include/public/arch-x86_32.h
--- a/xen/include/public/arch-x86_32.h Thu Jun 29 14:39:07 2006 +0100
+++ b/xen/include/public/arch-x86_32.h Thu Jun 29 14:49:41 2006 +0100
@@ -97,6 +97,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
#define MAX_VIRT_CPUS 32
#ifndef __ASSEMBLY__
+
+typedef unsigned long xen_ulong_t;
/*
* Send an array of these to HYPERVISOR_set_trap_table()
diff -r 18f8dde91fbd -r c157418212d8 xen/include/public/arch-x86_64.h
--- a/xen/include/public/arch-x86_64.h Thu Jun 29 14:39:07 2006 +0100
+++ b/xen/include/public/arch-x86_64.h Thu Jun 29 14:49:41 2006 +0100
@@ -104,6 +104,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
#define MAX_VIRT_CPUS 32
#ifndef __ASSEMBLY__
+
+typedef unsigned long xen_ulong_t;
/*
* int HYPERVISOR_set_segment_base(unsigned int which, unsigned long base)
diff -r 18f8dde91fbd -r c157418212d8 xen/include/public/memory.h
--- a/xen/include/public/memory.h Thu Jun 29 14:39:07 2006 +0100
+++ b/xen/include/public/memory.h Thu Jun 29 14:49:41 2006 +0100
@@ -32,7 +32,7 @@ struct xen_memory_reservation {
XEN_GUEST_HANDLE(xen_pfn_t) extent_start;
/* Number of extents, and size/alignment of each (2^extent_order pages). */
- unsigned long nr_extents;
+ xen_ulong_t nr_extents;
unsigned int extent_order;
/*
@@ -90,7 +90,7 @@ struct xen_memory_exchange {
* command will be non-zero.
* 5. THIS FIELD MUST BE INITIALISED TO ZERO BY THE CALLER!
*/
- unsigned long nr_exchanged;
+ xen_ulong_t nr_exchanged;
};
typedef struct xen_memory_exchange xen_memory_exchange_t;
DEFINE_XEN_GUEST_HANDLE(xen_memory_exchange_t);
@@ -148,8 +148,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mfn
*/
#define XENMEM_machphys_mapping 12
struct xen_machphys_mapping {
- unsigned long v_start, v_end; /* Start and end virtual addresses. */
- unsigned long max_mfn; /* Maximum MFN that can be looked up. */
+ xen_ulong_t v_start, v_end; /* Start and end virtual addresses. */
+ xen_ulong_t max_mfn; /* Maximum MFN that can be looked up. */
};
typedef struct xen_machphys_mapping xen_machphys_mapping_t;
DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
@@ -170,7 +170,7 @@ struct xen_add_to_physmap {
unsigned int space;
/* Index into source mapping space. */
- unsigned long idx;
+ xen_ulong_t idx;
/* GPFN where the source mapping page should appear. */
xen_pfn_t gpfn;
@@ -188,7 +188,7 @@ struct xen_translate_gpfn_list {
domid_t domid;
/* Length of list. */
- unsigned long nr_gpfns;
+ xen_ulong_t nr_gpfns;
/* List of GPFNs to translate. */
XEN_GUEST_HANDLE(xen_pfn_t) gpfn_list;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|