WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] add support for refreshing vbds

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] add support for refreshing vbds
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Fri, 01 Apr 2005 13:36:05 +0000
Delivery-date: Fri, 01 Apr 2005 14:03:04 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1419.1.2, 2005/04/01 14:36:05+01:00, vh249@xxxxxxxxxxxxxxxxxxxxxx

        add support for refreshing vbds
        
        Signed-off-by: Vincent Hanquez <vincent@xxxxxxxxxxxxx>



 xend/XendClient.py       |    6 ++++++
 xend/XendDomain.py       |   12 ++++++++++++
 xend/XendDomainInfo.py   |   23 +++++++++++++++++++++++
 xend/server/SrvDomain.py |    8 ++++++++
 xend/server/blkif.py     |    4 ++++
 xm/main.py               |   22 ++++++++++++++++++++++
 6 files changed, 75 insertions(+)


diff -Nru a/tools/python/xen/xend/XendClient.py 
b/tools/python/xen/xend/XendClient.py
--- a/tools/python/xen/xend/XendClient.py       2005-04-01 09:03:05 -05:00
+++ b/tools/python/xen/xend/XendClient.py       2005-04-01 09:03:05 -05:00
@@ -308,6 +308,12 @@
                              {'op'      : 'device_create',
                               'config'  : fileof(config) })
 
+    def xend_domain_device_refresh(self, id, type, idx):
+        return self.xendPost(self.domainurl(id),
+                             {'op'      : 'device_refresh',
+                              'type'    : type,
+                              'idx'     : idx })
+
     def xend_domain_device_destroy(self, id, type, idx):
         return self.xendPost(self.domainurl(id),
                              {'op'      : 'device_destroy',
diff -Nru a/tools/python/xen/xend/XendDomain.py 
b/tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py       2005-04-01 09:03:05 -05:00
+++ b/tools/python/xen/xend/XendDomain.py       2005-04-01 09:03:05 -05:00
@@ -687,6 +687,18 @@
         self.update_domain(dominfo.id)
         return val
     
+    def domain_device_refresh(self, id, type, idx):
+        """Refresh a device.
+
+        @param id:  domain id
+        @param idx:  device index
+        @param type: device type
+        """
+        dominfo = self.domain_lookup(id)
+        self.refresh_schedule()
+        val = dominfo.device_refresh(type, idx)
+        self.update_domain(dominfo.id)
+        return val
 
     def domain_device_destroy(self, id, type, idx):
         """Destroy a device.
diff -Nru a/tools/python/xen/xend/XendDomainInfo.py 
b/tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py   2005-04-01 09:03:05 -05:00
+++ b/tools/python/xen/xend/XendDomainInfo.py   2005-04-01 09:03:05 -05:00
@@ -551,6 +551,16 @@
         dl.append(dev)
         self.devices[type] = dl
 
+    def refresh_device(self, type, dev):
+        """Refresh a device to a virtual machine.
+
+        @param type: device type
+        @param dev:  device
+        """
+        dl = self.devices.get(type, [])
+        if dev in dl:
+            dl.refresh(dev)
+
     def remove_device(self, type, dev):
         """Remove a device from a virtual machine.
 
@@ -912,6 +922,19 @@
         old_index = self.config.index(old_full_config)
         self.config[old_index] = new_full_config
         return new_config
+
+    def device_refresh(self, type, idx):
+        """Refresh a device.
+
+        @param type: device type
+        @param idx:  device index
+        """
+        dev = self.get_device_by_index(type, idx)
+        if not dev:
+            raise VmError('invalid device: %s %s' % (type, idx))
+        devs = self.devices.get(type)
+        dev.refresh()
+        #self.refresh_device(type, dev)
         
     def device_destroy(self, type, idx):
         """Destroy a device.
diff -Nru a/tools/python/xen/xend/server/SrvDomain.py 
b/tools/python/xen/xend/server/SrvDomain.py
--- a/tools/python/xen/xend/server/SrvDomain.py 2005-04-01 09:03:05 -05:00
+++ b/tools/python/xen/xend/server/SrvDomain.py 2005-04-01 09:03:05 -05:00
@@ -131,6 +131,14 @@
         d = fn(req.args, {'dom': self.dom.id})
         return d
 
+    def op_device_refresh(self, op, req):
+        fn = FormFn(self.xd.domain_device_refresh,
+                    [['dom', 'str'],
+                     ['type', 'str'],
+                     ['idx', 'str']])
+        val = fn(req.args, {'dom': self.dom.id})
+        return val
+
     def op_device_destroy(self, op, req):
         fn = FormFn(self.xd.domain_device_destroy,
                     [['dom', 'str'],
diff -Nru a/tools/python/xen/xend/server/blkif.py 
b/tools/python/xen/xend/server/blkif.py
--- a/tools/python/xen/xend/server/blkif.py     2005-04-01 09:03:05 -05:00
+++ b/tools/python/xen/xend/server/blkif.py     2005-04-01 09:03:05 -05:00
@@ -414,6 +414,10 @@
             val.append(['index', self.index])
         return val
 
+    def refresh(self):
+        log.debug("Refreshing vbd domain=%d idx=%s", self.controller.dom, 
self.idx)
+        self.interfaceChanged()
+
     def destroy(self, change=0):
         """Destroy the device. If 'change' is true notify the front-end 
interface.
 
diff -Nru a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       2005-04-01 09:03:05 -05:00
+++ b/tools/python/xen/xm/main.py       2005-04-01 09:03:05 -05:00
@@ -800,6 +800,28 @@
 
 xm.prog(ProgVbdCreate)
 
+class ProgVbdRefresh(Prog):
+    group = 'vbd'
+    name  = 'vbd-refresh'
+    info = """Refresh a virtual block device for a domain"""
+
+    def help(self, args):
+        print args[0], "DOM DEV"
+        print """
+Refresh a virtual block device for a domain.
+
+  DEV     - idx field in the device information
+"""
+
+    def main(self, args):
+        if len(args) != 3: self.err("%s: Invalid argument(s)" % args[0])
+        dom = args[1]
+        dev = args[2]
+        server.xend_domain_device_refresh(dom, 'vbd', dev)
+
+xm.prog(ProgVbdRefresh)
+
+
 class ProgVbdDestroy(Prog):
     group = 'vbd'
     name = 'vbd-destroy'

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] add support for refreshing vbds, BitKeeper Bot <=