This commit is contained in:
committed by
Git OBS Bridge
parent
9683113742
commit
9794955703
@@ -1,8 +1,8 @@
|
||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py 2008-08-12 07:36:39.000000000 -0600
|
||||
@@ -0,0 +1,238 @@
|
||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py 2008-08-29 06:25:55.000000000 -0600
|
||||
@@ -0,0 +1,243 @@
|
||||
+#!/usr/bin/env python
|
||||
+# -*- mode: python; -*-
|
||||
+#============================================================================
|
||||
@@ -42,6 +42,8 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
+from xen.xend import XendLogging
|
||||
+from xen.xend.XendLogging import log
|
||||
+
|
||||
+DEVICE_TYPES = ['vbd', 'tap']
|
||||
+
|
||||
+class HalDaemon:
|
||||
+ """The Hald block device watcher for XEN
|
||||
+ """
|
||||
@@ -52,6 +54,7 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
+ """Default level of information to be logged."""
|
||||
+ loglevel_default = 'INFO'
|
||||
+
|
||||
+
|
||||
+ def __init__(self):
|
||||
+
|
||||
+ XendLogging.init(self.logfile_default, self.loglevel_default)
|
||||
@@ -59,7 +62,7 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
+
|
||||
+ self.udi_dict = {}
|
||||
+ self.debug = 0
|
||||
+ self.dbpath = "/local/domain/0/backend/vbd"
|
||||
+ self.dbpath = "/local/domain/0/backend"
|
||||
+ self.bus = dbus.SystemBus()
|
||||
+ self.hal_manager_obj = self.bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
|
||||
+ self.hal_manager = dbus.Interface( self.hal_manager_obj, 'org.freedesktop.Hal.Manager')
|
||||
@@ -100,7 +103,7 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
+ device_names = self.hal_manager.GetAllDevices()
|
||||
+ i = 0;
|
||||
+ for name in device_names:
|
||||
+ #log.debug("device name, device=%s",name)
|
||||
+ #log.debug("device name, device=%s",name)
|
||||
+ dev_obj = self.bus.get_object ('org.freedesktop.Hal', name)
|
||||
+ dev = dbus.Interface (dev_obj, 'org.freedesktop.Hal.Device')
|
||||
+ dev_properties = dev_obj.GetAllProperties(dbus_interface="org.freedesktop.Hal.Device")
|
||||
@@ -182,43 +185,45 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
+ # Set or clear xenstore media-present depending on the action argument
|
||||
+ # for every vbd that has this block device
|
||||
+ def change_xenstore(self,action, device, major, minor):
|
||||
+ domains = xstransact.List(self.dbpath)
|
||||
+ log.debug('domains: %s', domains)
|
||||
+ for domain in domains: # for each domain
|
||||
+ devices = xstransact.List( self.dbpath + '/' + domain)
|
||||
+ log.debug('devices: %s',devices)
|
||||
+ for device in devices: # for each vbd device
|
||||
+ str = device.split('/')
|
||||
+ vbd_type = None;
|
||||
+ vbd_physical_device = None
|
||||
+ vbd_media = None
|
||||
+ vbd_device_path = self.dbpath + '/' + domain + '/' + device
|
||||
+ listing = xstransact.List(vbd_device_path)
|
||||
+ for entry in listing: # for each entry
|
||||
+ item = self.dbpath + '/' + entry
|
||||
+ value = xstransact.Read( vbd_device_path + '/' + entry)
|
||||
+ log.debug('%s=%s',item,value)
|
||||
+ if item.find('media-present') != -1:
|
||||
+ vbd_media = item;
|
||||
+ vbd_media_path = item
|
||||
+ if item.find('physical-device') != -1:
|
||||
+ vbd_physical_device = value;
|
||||
+ if item.find('type') != -1:
|
||||
+ vbd_type = value;
|
||||
+ if vbd_type is not None and vbd_physical_device is not None and vbd_media is not None :
|
||||
+ inode = vbd_physical_device.split(':')
|
||||
+ imajor = parse_hex(inode[0])
|
||||
+ iminor = parse_hex(inode[1])
|
||||
+ log.debug("action:%s major:%s- minor:%s- imajor:%s- iminor:%s- inode: %s",
|
||||
+ action,major,minor, imajor, iminor, inode)
|
||||
+ if int(imajor) == int(major) and int(iminor) == int(minor):
|
||||
+ if action == "add":
|
||||
+ xs_dict = {'media': "1"}
|
||||
+ xstransact.Write(vbd_device_path, 'media-present', "1" )
|
||||
+ log.debug("wrote xenstore media-present 1 path:%s",vbd_media_path)
|
||||
+ else:
|
||||
+ xstransact.Write(vbd_device_path, 'media-present', "0" )
|
||||
+ log.debug("wrote xenstore media 0 path:%s",vbd_media_path)
|
||||
+ for type in DEVICE_TYPES:
|
||||
+ path = self.dbpath + '/' + type
|
||||
+ domains = xstransact.List(path)
|
||||
+ log.debug('domains: %s', domains)
|
||||
+ for domain in domains: # for each domain
|
||||
+ devices = xstransact.List( path + '/' + domain)
|
||||
+ log.debug('devices: %s',devices)
|
||||
+ for device in devices: # for each vbd device
|
||||
+ str = device.split('/')
|
||||
+ vbd_type = None;
|
||||
+ vbd_physical_device = None
|
||||
+ vbd_media = None
|
||||
+ vbd_device_path = path + '/' + domain + '/' + device
|
||||
+ listing = xstransact.List(vbd_device_path)
|
||||
+ for entry in listing: # for each entry
|
||||
+ item = path + '/' + entry
|
||||
+ value = xstransact.Read( vbd_device_path + '/' + entry)
|
||||
+ log.debug('%s=%s',item,value)
|
||||
+ if item.find('media-present') != -1:
|
||||
+ vbd_media = item;
|
||||
+ vbd_media_path = item
|
||||
+ if item.find('physical-device') != -1:
|
||||
+ vbd_physical_device = value;
|
||||
+ if item.find('type') != -1:
|
||||
+ vbd_type = value;
|
||||
+ if vbd_type is not None and vbd_physical_device is not None and vbd_media is not None :
|
||||
+ inode = vbd_physical_device.split(':')
|
||||
+ imajor = parse_hex(inode[0])
|
||||
+ iminor = parse_hex(inode[1])
|
||||
+ log.debug("action:%s major:%s- minor:%s- imajor:%s- iminor:%s- inode: %s",
|
||||
+ action,major,minor, imajor, iminor, inode)
|
||||
+ if int(imajor) == int(major) and int(iminor) == int(minor):
|
||||
+ if action == "add":
|
||||
+ xs_dict = {'media': "1"}
|
||||
+ xstransact.Write(vbd_device_path, 'media-present', "1" )
|
||||
+ log.debug("wrote xenstore media-present 1 path:%s",vbd_media_path)
|
||||
+ else:
|
||||
+ xstransact.Write(vbd_device_path, 'media-present', "0" )
|
||||
+ log.debug("wrote xenstore media 0 path:%s",vbd_media_path)
|
||||
+
|
||||
+def mylog( fmt, *args):
|
||||
+ f = open('/tmp/haldaemon.log', 'a')
|
||||
@@ -244,7 +249,7 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py 2008-08-12 07:36:39.000000000 -0600
|
||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py 2008-08-29 06:11:48.000000000 -0600
|
||||
@@ -0,0 +1,125 @@
|
||||
+#============================================================================
|
||||
+# This library is free software; you can redistribute it and/or
|
||||
@@ -373,8 +378,8 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py
|
||||
+ watcher.shutdown()
|
||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py
|
||||
===================================================================
|
||||
--- xen-3.3.0-testing.orig/tools/python/xen/xend/server/SrvServer.py 2008-08-11 12:44:35.000000000 -0600
|
||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py 2008-08-12 07:36:39.000000000 -0600
|
||||
--- xen-3.3.0-testing.orig/tools/python/xen/xend/server/SrvServer.py 2008-08-22 08:34:00.000000000 -0600
|
||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py 2008-08-29 06:11:48.000000000 -0600
|
||||
@@ -56,6 +56,7 @@
|
||||
|
||||
from SrvRoot import SrvRoot
|
||||
@@ -394,8 +399,8 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py
|
||||
root = SrvDir()
|
||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
||||
===================================================================
|
||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c 2008-08-11 12:36:15.000000000 -0600
|
||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c 2008-08-12 07:48:22.000000000 -0600
|
||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c 2008-08-22 08:35:31.000000000 -0600
|
||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c 2008-08-29 06:11:48.000000000 -0600
|
||||
@@ -297,6 +297,16 @@
|
||||
bdrv_set_type_hint(bs, BDRV_TYPE_CDROM);
|
||||
if (pasprintf(&buf, "%s/params", bpath) != -1)
|
||||
|
Reference in New Issue
Block a user