예제 #1
0
    def tick(self):
        if not self.nodedev_obj:
            return
        if not self.nodedev_obj.conn.is_active():
            return

        try:
            self.nodedev_obj.refresh_xml()
            xml = self.nodedev_obj.get_xml()
        except:
            # Assume the device was removed
            return

        try:
            vobj = NodeDevice.parse(self.nodedev_obj.conn.get_backend(), xml)
            has_media = vobj.media_available or False
        except:
            logging.exception("Node device CDROM polling failed")
            return

        if has_media == self.has_media():
            return

        self.set_media(has_media, None, None)
        self.idle_emit(has_media and "media-added" or "media-removed")
예제 #2
0
    def tick(self):
        if not self.nodedev_obj:
            return
        if not self.nodedev_obj.conn.is_active():
            return

        try:
            self.nodedev_obj.refresh_xml()
            xml = self.nodedev_obj.get_xml()
        except:
            # Assume the device was removed
            return

        try:
            vobj = NodeDevice.parse(self.nodedev_obj.conn.get_backend(), xml)
            has_media = vobj.media_available or False
        except:
            logging.exception("Node device CDROM polling failed")
            return

        if has_media == self.has_media():
            return

        self.set_media(has_media, None, None)
        self.idle_emit(has_media and "media-added" or "media-removed")
예제 #3
0
    def _testCompare(self, devname, vals, devxml=None):
        if devxml:
            dev = NodeDevice.parse(conn, devxml)
        else:
            dev = self._nodeDevFromName(devname)

        for attr in vals.keys():
            expect = vals[attr]
            actual = getattr(dev, attr)
            if expect != actual:
                raise AssertionError("devname=%s attribute=%s did not match:\n"
                    "expect=%s\nactual=%s" % (devname, attr, expect, actual))
            self.assertEqual(vals[attr], getattr(dev, attr))
예제 #4
0
    def _testCompare(self, devname, vals, devxml=None):
        if devxml:
            dev = NodeDevice.parse(conn, devxml)
        else:
            dev = self._nodeDevFromName(devname)

        for attr in vals.keys():
            expect = vals[attr]
            actual = getattr(dev, attr)
            if expect != actual:
                raise AssertionError("devname=%s attribute=%s did not match:\n"
                    "expect=%s\nactual=%s" % (devname, attr, expect, actual))
            self.assertEqual(vals[attr], getattr(dev, attr))
예제 #5
0
    def _testCompare(self, devname, vals, devxml=None):
        def _compare(dev, vals, root=""):
            for attr in list(vals.keys()):
                expect = vals[attr]
                actual = getattr(dev, attr)
                if isinstance(expect, list):
                    for adev, exp in zip(actual, expect):
                        _compare(adev, exp, attr + ".")
                else:
                    if expect != actual:
                        raise AssertionError("devname=%s attribute=%s%s did not match:\n"
                            "expect=%s\nactual=%s" % (devname, root, attr, expect, actual))
                    self.assertEqual(vals[attr], getattr(dev, attr))

        if devxml:
            dev = NodeDevice.parse(self.conn, devxml)
        else:
            dev = self._nodeDevFromName(devname)

        _compare(dev, vals)
        return dev
예제 #6
0
    def _testCompare(self, devname, vals, devxml=None):
        def _compare(dev, vals, root=""):
            for attr in list(vals.keys()):
                expect = vals[attr]
                actual = getattr(dev, attr)
                if isinstance(expect, list):
                    for adev, exp in zip(actual, expect):
                        _compare(adev, exp, attr + ".")
                else:
                    if expect != actual:
                        raise AssertionError("devname=%s attribute=%s%s did not match:\n"
                            "expect=%s\nactual=%s" % (devname, root, attr, expect, actual))
                    self.assertEqual(vals[attr], getattr(dev, attr))

        if devxml:
            dev = NodeDevice.parse(self.conn, devxml)
        else:
            dev = self._nodeDevFromName(devname)

        _compare(dev, vals)
        return dev
예제 #7
0
 def _nodeDevFromName(self, devname):
     node = conn.nodeDeviceLookupByName(devname)
     xml = node.XMLDesc(0)
     return NodeDevice.parse(conn, xml)
예제 #8
0
def _parse_convert(conn, parsexml=None):
    return NodeDevice.parse(conn, parsexml)
예제 #9
0
 def _nodeDevFromName(self, devname):
     node = conn.nodeDeviceLookupByName(devname)
     xml = node.XMLDesc(0)
     return NodeDevice.parse(conn, xml)
예제 #10
0
def _parse_convert(conn, parsexml=None):
    return NodeDevice.parse(conn, parsexml)