コード例 #1
0
ファイル: bfsif.py プロジェクト: bjzhang/xen_arm_pv
 def destroyDevice(self, devid):
     try:
         DevController.destroyDevice(self, int(devid))
         time.sleep(5)
         t = xstransact()
         frontpath = self.frontendPath(int(devid))
         backpath = t.Read(frontpath, "backend")
         if backpath:
             t.Remove(backpath)
             log.debug('in try: removed %s' % backpath)
         t.Remove(frontpath)
         log.debug('in try: removed %s' % frontpath)
     except ValueError:
         devid_end = type(devid) is str and devid.split('/')[-1] or None
         for i in self.deviceIDs():
             d = self.readBackend(i, 'dev')
             if d == devid or (devid_end and d == devid_end):
                 DevController.destroyDevice(self, i)
                 time.sleep(5)
                 frontpath = self.frontendPath(int(devid))
                 backpath = t.Read(frontpath, "backend")
                 if backpath:
                     t.Remove(backpath)
                     log.debug('in err: removed %s' % backpath)
                 t.Remove(frontpath)
                 log.debug('in err: removed %s' % frontpath)
                 return
         raise VmError("Device %s not connected" % devid)
コード例 #2
0
ファイル: bfsif.py プロジェクト: ryos36/xen-arm
 def destroyDevice(self, devid):
     try:
         DevController.destroyDevice(self, int(devid))
         time.sleep(5)
         t = xstransact()
         frontpath = self.frontendPath(int(devid))
         backpath = t.Read(frontpath, "backend")
         if backpath:
             t.Remove(backpath)
             log.debug("in try: removed %s" % backpath)
         t.Remove(frontpath)
         log.debug("in try: removed %s" % frontpath)
     except ValueError:
         devid_end = type(devid) is str and devid.split("/")[-1] or None
         for i in self.deviceIDs():
             d = self.readBackend(i, "dev")
             if d == devid or (devid_end and d == devid_end):
                 DevController.destroyDevice(self, i)
                 time.sleep(5)
                 frontpath = self.frontendPath(int(devid))
                 backpath = t.Read(frontpath, "backend")
                 if backpath:
                     t.Remove(backpath)
                     log.debug("in err: removed %s" % backpath)
                 t.Remove(frontpath)
                 log.debug("in err: removed %s" % frontpath)
                 return
         raise VmError("Device %s not connected" % devid)
コード例 #3
0
ファイル: sif.py プロジェクト: bjzhang/xen_arm_pv
    def destroyDevice(self, devid):
        try:
            DevController.destroyDevice(self, int(devid))
        except ValueError:
            devid_end = type(devid) is str and devid.split('/')[-1] or None

            for i in self.deviceIDs():
                d = self.readBackend(i, 'dev')
                if d == devid or (devid_end and d == devid_end):
                    DevController.destroyDevice(self, i)
                    return
            raise VmError("Device %s not connected" % devid)
コード例 #4
0
ファイル: sif.py プロジェクト: andreiw/xen3-arm-tegra
    def destroyDevice(self, devid):
        try:
            DevController.destroyDevice(self, int(devid))
        except ValueError:
            devid_end = type(devid) is str and devid.split('/')[-1] or None

            for i in self.deviceIDs():
                d = self.readBackend(i, 'dev')
                if d == devid or (devid_end and d == devid_end):
                    DevController.destroyDevice(self, i)
                    return
            raise VmError("Device %s not connected" % devid)
コード例 #5
0
ファイル: blkif.py プロジェクト: bjzhang/xen_arm_pv
    def destroyDevice(self, devid):
        """@see DevController.destroyDevice"""

        # If we are given a device name, then look up the device ID from it,
        # and destroy that ID instead.  If what we are given is an integer,
        # then assume it's a device ID and pass it straight through to our
        # superclass's method.

        try:
            DevController.destroyDevice(self, int(devid))
        except ValueError:
            devid_end = type(devid) is str and devid.split('/')[-1] or None

            for i in self.deviceIDs():
                d = self.readBackend(i, 'dev')
                if d == devid or (devid_end and d == devid_end):
                    DevController.destroyDevice(self, i)
                    return
            raise VmError("Device %s not connected" % devid)
コード例 #6
0
ファイル: blkif.py プロジェクト: amodj/Utopia
    def destroyDevice(self, devid, force):
        """@see DevController.destroyDevice"""

        # vbd device IDs can be either string or integer.  Further, the
        # following string values are possible:
        #    - devicetype/deviceid (vbd/51728)
        #    - devicetype/devicename (/dev/xvdb)
        #    - devicename (xvdb)
        # Let our superclass handle integer or devicetype/deviceid forms.
        # If we are given a device name form, then look up the device ID
        # from it, and destroy that ID instead.
        try:
            DevController.destroyDevice(self, devid, force)
        except ValueError:
            dev = self.convertToDeviceNumber(devid)

            for i in self.deviceIDs():
                if i == dev:
                    DevController.destroyDevice(self, i, force)
                    return
            raise VmError("Device %s not connected" % devid)
コード例 #7
0
    def destroyDevice(self, devid, force):
        """@see DevController.destroyDevice"""

        # vbd device IDs can be either string or integer.  Further, the
        # following string values are possible:
        #    - devicetype/deviceid (vbd/51728)
        #    - devicetype/devicename (/dev/xvdb)
        #    - devicename (xvdb)
        # Let our superclass handle integer or devicetype/deviceid forms.
        # If we are given a device name form, then look up the device ID
        # from it, and destroy that ID instead.
        try:
            DevController.destroyDevice(self, devid, force)
        except ValueError:
            dev = self.convertToDeviceNumber(devid)

            for i in self.deviceIDs():
                if i == dev:
                    DevController.destroyDevice(self, i, force)
                    return
            raise VmError("Device %s not connected" % devid)
コード例 #8
0
ファイル: pciif.py プロジェクト: CrazyXen/XEN_CODE
 def destroyDevice(self, devid, force):
     DevController.destroyDevice(self, devid, True)
     log.debug('pci: unregister aer watch')
     self.unwatchAerState()
コード例 #9
0
 def destroyDevice(self, devid, force):
     DevController.destroyDevice(self, devid, True)
コード例 #10
0
 def destroyDevice(self, devid, force):
     DevController.destroyDevice(self, devid, True)
     log.debug('pci: unregister aer watch')
     self.unwatchAerState()
コード例 #11
0
 def destroyDevice(self, devid, force):
     # remove the backend xenstore entries no matter what
     # because we kill qemu-dm with extreme prejudice
     # not giving it a chance to remove them itself
     DevController.destroyDevice(self, devid, True)
コード例 #12
0
 def destroyDevice(self, devid, force):
     DevController.destroyDevice(self, devid, True)
コード例 #13
0
 def destroyDevice(self, devid, force):
     # remove the backend xenstore entries no matter what
     # because we kill qemu-dm with extreme prejudice
     # not giving it a chance to remove them itself
     DevController.destroyDevice(self, devid, True)