コード例 #1
0
    def getDeviceConfiguration(self, devid, transaction = None):
        config = DevController.getDeviceConfiguration(self, devid, transaction)

        vscsi_devs = []

        devs = self.readBackendList(devid, "vscsi-devs")
        vscsipath = "vscsi-devs/"
        for dev in devs:
            devpath = vscsipath + dev
            pdev = self.readBackend(devid, devpath + '/p-dev')
            pdevname = self.readBackend(devid, devpath + '/p-devname')
            vdev = self.readBackend(devid, devpath + '/v-dev')
            state = self.readBackend(devid, devpath + '/state')
            localdevid = self.readBackend(devid, devpath + '/devid')
            dev_dict = {'p-dev': pdev,
                        'p-devname': pdevname,
                        'v-dev': vdev,
                        'state': state,
                        'devid': localdevid }
            vscsi_devs.append(dev_dict)

        config['devs'] = vscsi_devs
        config['feature-host'] = self.readBackend(devid, 'feature-host')
        config['uuid'] = self.readBackend(devid, 'uuid')
        return config
コード例 #2
0
    def getDeviceConfiguration(self, devid, transaction=None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)
        num_devs = self.readBackend(devid, 'num_devs')
        pci_devs = []

        for i in range(int(num_devs)):
            dev_config = self.readBackend(devid, 'dev-%d' % i)

            pci_match = re.match(
                r"((?P<domain>[0-9a-fA-F]{1,4})[:,])?" +
                r"(?P<bus>[0-9a-fA-F]{1,2})[:,]" +
                r"(?P<slot>[0-9a-fA-F]{1,2})[.,]" +
                r"(?P<func>[0-9a-fA-F]{1,2})", dev_config)

            if pci_match != None:
                pci_dev_info = pci_match.groupdict()
                pci_devs.append({
                    'domain': '0x%(domain)s' % pci_dev_info,
                    'bus': '0x%(bus)s' % pci_dev_info,
                    'slot': '0x%(slot)s' % pci_dev_info,
                    'func': '0x%(func)s' % pci_dev_info
                })

        result['devs'] = pci_devs
        result['uuid'] = self.readBackend(devid, 'uuid')
        return result
コード例 #3
0
    def getDeviceConfiguration(self, devid, transaction = None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)

        if transaction is None:
            devinfo = self.readBackend(devid, *CONFIG_ENTRIES)
        else:
            devinfo = self.readBackendTxn(transaction, devid, *CONFIG_ENTRIES)
        return dict([(CONFIG_ENTRIES[i], devinfo[i])
                     for i in range(len(CONFIG_ENTRIES))
                     if devinfo[i] is not None])
コード例 #4
0
    def getDeviceConfiguration(self, devid, transaction=None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)

        if transaction is None:
            devinfo = self.readBackend(devid, *CONFIG_ENTRIES)
        else:
            devinfo = self.readBackendTxn(transaction, devid, *CONFIG_ENTRIES)
        return dict([(CONFIG_ENTRIES[i], devinfo[i])
                     for i in range(len(CONFIG_ENTRIES))
                     if devinfo[i] is not None])
コード例 #5
0
 def getDeviceConfiguration(self, devid, transaction = None):
     result = DevController.getDeviceConfiguration(self, devid, transaction)
     if transaction is None:
         devinfo = self.readBackend(devid, *self.valid_cfg)
     else:
         devinfo = self.readBackendTxn(transaction, devid, *self.valid_cfg)
     config = dict(zip(self.valid_cfg, devinfo))
     config = dict([(key, val) for key, val in config.items()
                    if val != None])
     return config
コード例 #6
0
 def getDeviceConfiguration(self, devid, transaction=None):
     result = DevController.getDeviceConfiguration(self, devid, transaction)
     if transaction is None:
         devinfo = self.readBackend(devid, *self.valid_cfg)
     else:
         devinfo = self.readBackendTxn(transaction, devid, *self.valid_cfg)
     config = dict(zip(self.valid_cfg, devinfo))
     config = dict([(key, val) for key, val in config.items()
                    if val != None])
     return config
コード例 #7
0
ファイル: netif.py プロジェクト: timofonic-nvidia/gxen-test
    def getDeviceConfiguration(self, devid, transaction=None):
        """@see DevController.configuration"""

        result = DevController.getDeviceConfiguration(self, devid, transaction)

        for x in ('script', 'ip', 'bridge', 'mac', 'type', 'vifname', 'rate',
                  'uuid', 'model', 'accel', 'security_label'):
            if transaction is None:
                y = self.readBackend(devid, x)
            else:
                y = self.readBackendTxn(transaction, devid, x)
            if y:
                result[x] = y

        return result
コード例 #8
0
ファイル: netif.py プロジェクト: lostzoumo/xen-4.2.2
    def getDeviceConfiguration(self, devid, transaction = None):
        """@see DevController.configuration"""

        result = DevController.getDeviceConfiguration(self, devid, transaction)

        for x in ( 'script', 'ip', 'bridge', 'mac',
                   'type', 'vifname', 'rate', 'uuid', 'model', 'accel',
                   'security_label'):
            if transaction is None:
                y = self.readBackend(devid, x)
            else:
                y = self.readBackendTxn(transaction, devid, x)
            if y:
                result[x] = y

        return result
コード例 #9
0
    def getDeviceConfiguration(self, devid, transaction=None):
        """@see DevController.configuration"""

        if transaction is None:
            read_fn = xstransact.Read
        else:
            read_fn = transaction.read

        def front_read(x):
            return read_fn(frontpath + x)

        def back_read(x):
            return read_fn(backpath + x)

        result = DevController.getDeviceConfiguration(self, devid, transaction)

        dev = self.convertToDeviceNumber(devid)
        frontpath = self.frontendPath(dev) + "/"

        backpath = front_read("backend") + "/"

        front_mac = front_read("mac")
        back_mac = back_read("mac")

        front_trusted = back_read("remote-trusted")
        back_trusted = back_read("local-trusted")
        max_bypasses = back_read("max-bypasses")

        bridge = back_read("bridge")

        pdev = back_read("pdev")

        if front_mac:
            result["front_mac"] = front_mac
        if back_mac:
            result["back_mac"] = back_mac
        if front_trusted:
            result["front_trusted"] = front_trusted
        if back_trusted:
            result["back_trusted"] = back_trusted
        if bridge:
            result["bridge"] = bridge
        if pdev:
            result["pdev"] = pdev
        if max_bypasses:
            result["max-bypasses"] = max_bypasses
        return result
コード例 #10
0
    def getDeviceConfiguration(self, devid, transaction = None):
        """@see DevController.configuration"""

        if transaction is None:
            read_fn = xstransact.Read
        else:
            read_fn = transaction.read
        def front_read(x):
            return read_fn(frontpath + x)
        def back_read(x):
            return read_fn(backpath + x)
        
        result = DevController.getDeviceConfiguration(self, devid, transaction)

        dev = self.convertToDeviceNumber(devid)
        frontpath = self.frontendPath(dev) + "/"

        backpath = front_read("backend") + "/"

        front_mac = front_read("mac")
        back_mac = back_read("mac")

        front_trusted = back_read("remote-trusted")
        back_trusted = back_read("local-trusted")
        max_bypasses = back_read("max-bypasses")

        bridge = back_read("bridge")

        pdev = back_read("pdev")

        if front_mac:
            result["front_mac"] = front_mac
        if back_mac:
            result["back_mac"] = back_mac
        if front_trusted:
            result["front_trusted"] = front_trusted
        if back_trusted:
            result["back_trusted"] = back_trusted
        if bridge:
            result["bridge"] = bridge
        if pdev:
            result["pdev"] = pdev
        if max_bypasses:
            result["max-bypasses"] = max_bypasses
        return result
コード例 #11
0
 def getDeviceConfiguration(self, devid, transaction=None):
     """@see DevController.configuration"""
     config = DevController.getDeviceConfiguration(self, devid, transaction)
     if transaction is None:
         hcinfo = self.readBackend(devid, 'usb-ver', 'num-ports')
     else:
         hcinfo = self.readBackendTxn(transaction, devid, 'usb-ver',
                                      'num-ports')
     (usbver, numports) = hcinfo
     config['usb-ver'] = str(usbver)
     config['num-ports'] = str(numports)
     for i in range(1, int(numports) + 1):
         if transaction is None:
             config['port-%i' % i] = self.readBackend(devid, 'port/%i' % i)
         else:
             config['port-%i' % i] = self.readBackendTxn(
                 transaction, devid, 'port/%i' % i)
     return config
コード例 #12
0
 def getDeviceConfiguration(self, devid, transaction = None):
     """@see DevController.configuration"""
     config = DevController.getDeviceConfiguration(self, devid, transaction)
     if transaction is None:
         hcinfo = self.readBackend(devid, 'usb-ver', 'num-ports')
     else:
         hcinfo = self.readBackendTxn(transaction, devid,
                                       'usb-ver', 'num-ports')
     (usbver, numports) = hcinfo
     config['usb-ver'] = str(usbver)
     config['num-ports'] = str(numports)
     for i in range(1, int(numports) + 1):
         if transaction is None:
             config['port-%i' % i] = self.readBackend(devid, 'port/%i' % i)
         else:
             config['port-%i' % i] = self.readBackendTxn(transaction, devid,
                                                          'port/%i' % i)
     return config
コード例 #13
0
    def getDeviceConfiguration(self, devid, transaction=None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)
        num_devs = self.readBackend(devid, 'num_devs')
        pci_devs = []

        vslots = self.readBackend(devid, 'vslots')
        if vslots is not None:
            if vslots[-1] == ";":
                vslots = vslots[:-1]
            slot_list = vslots.split(';')

        for i in range(int(num_devs)):
            dev_config = self.readBackend(devid, 'dev-%d' % i)

            pci_match = re.match(
                r"((?P<domain>[0-9a-fA-F]{1,4})[:,])?" +
                r"(?P<bus>[0-9a-fA-F]{1,2})[:,]" +
                r"(?P<slot>[0-9a-fA-F]{1,2})[.,]" + r"(?P<func>[0-7]{1,2})$",
                dev_config)

            if pci_match != None:
                pci_dev_info = pci_match.groupdict()
                dev_dict = {
                    'domain': '0x%(domain)s' % pci_dev_info,
                    'bus': '0x%(bus)s' % pci_dev_info,
                    'slot': '0x%(slot)s' % pci_dev_info,
                    'func': '0x%(func)s' % pci_dev_info
                }

                # Per device uuid info
                dev_dict['uuid'] = self.readBackend(devid, 'uuid-%d' % i)

                #append vslot info
                if vslots is not None:
                    try:
                        dev_dict['vslt'] = slot_list[i]
                    except IndexError:
                        dev_dict['vslt'] = '0x0'

                pci_devs.append(dev_dict)

        result['devs'] = pci_devs
        result['uuid'] = self.readBackend(devid, 'uuid')
        return result
コード例 #14
0
    def getDeviceConfiguration(self, devid, transaction = None):
        """@see DevController.configuration"""

        result = DevController.getDeviceConfiguration(self, devid, transaction)

        config_path = "device/%s/%d/" % (self.deviceClass, devid)
        devinfo = ()
        for x in ( 'script', 'ip', 'bridge', 'mac',
                   'type', 'vifname', 'rate', 'uuid', 'model', 'accel',
                   'security_label'):
            if transaction is None:
                y = self.vm._readVm(config_path + x)
            else:
                y = self.vm._readVmTxn(transaction, config_path + x)
            devinfo += (y,)
        (script, ip, bridge, mac, typ, vifname, rate, uuid,
         model, accel, security_label) = devinfo

        if script:
            result['script'] = script
        if ip:
            result['ip'] = ip
        if bridge:
            result['bridge'] = bridge
        if mac:
            result['mac'] = mac
        if typ:
            result['type'] = typ
        if vifname:
            result['vifname'] = vifname
        if rate:
            result['rate'] = rate
        if uuid:
            result['uuid'] = uuid
        if model:
            result['model'] = model
        if accel:
            result['accel'] = accel
        if security_label:
            result['security_label'] = security_label

        return result
コード例 #15
0
ファイル: pciif.py プロジェクト: jeffchao/xen-3.3-tcg
    def getDeviceConfiguration(self, devid, transaction = None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)
        num_devs = self.readBackend(devid, 'num_devs')
        pci_devs = []
        
        vslots = self.readBackend(devid, 'vslots')
        if vslots is not None:
            if vslots[-1] == ";":
                vslots = vslots[:-1]
            slot_list = vslots.split(';')

        for i in range(int(num_devs)):
            dev_config = self.readBackend(devid, 'dev-%d' % i)

            pci_match = re.match(r"((?P<domain>[0-9a-fA-F]{1,4})[:,])?" +
                                 r"(?P<bus>[0-9a-fA-F]{1,2})[:,]" + 
                                 r"(?P<slot>[0-9a-fA-F]{1,2})[.,]" + 
                                 r"(?P<func>[0-7]{1,2})$", dev_config)
            
            if pci_match!=None:
                pci_dev_info = pci_match.groupdict()
                dev_dict = {'domain': '0x%(domain)s' % pci_dev_info,
                                 'bus': '0x%(bus)s' % pci_dev_info,
                                 'slot': '0x%(slot)s' % pci_dev_info,
                                 'func': '0x%(func)s' % pci_dev_info}

                # Per device uuid info
                dev_dict['uuid'] = self.readBackend(devid, 'uuid-%d' % i)

                #append vslot info
                if vslots is not None:
                    try:
                        dev_dict['vslt'] = slot_list[i]
                    except IndexError:
                        dev_dict['vslt'] = '0x0'

                pci_devs.append(dev_dict)

        result['devs'] = pci_devs
        result['uuid'] = self.readBackend(devid, 'uuid')
        return result
コード例 #16
0
    def getDeviceConfiguration(self, devid, transaction=None):
        """@see DevController.configuration"""

        result = DevController.getDeviceConfiguration(self, devid, transaction)

        config_path = "device/%s/%d/" % (self.deviceClass, devid)
        devinfo = ()
        for x in ('script', 'ip', 'bridge', 'mac', 'type', 'vifname', 'rate',
                  'uuid', 'model', 'accel', 'security_label'):
            if transaction is None:
                y = self.vm._readVm(config_path + x)
            else:
                y = self.vm._readVmTxn(transaction, config_path + x)
            devinfo += (y, )
        (script, ip, bridge, mac, typ, vifname, rate, uuid, model, accel,
         security_label) = devinfo

        if script:
            result['script'] = script
        if ip:
            result['ip'] = ip
        if bridge:
            result['bridge'] = bridge
        if mac:
            result['mac'] = mac
        if typ:
            result['type'] = typ
        if vifname:
            result['vifname'] = vifname
        if rate:
            result['rate'] = rate
        if uuid:
            result['uuid'] = uuid
        if model:
            result['model'] = model
        if accel:
            result['accel'] = accel
        if security_label:
            result['security_label'] = security_label

        return result
コード例 #17
0
ファイル: vscsiif.py プロジェクト: Hearen/OnceServer
    def getDeviceConfiguration(self, devid, transaction=None):
        config = DevController.getDeviceConfiguration(self, devid, transaction)

        vscsi_devs = []

        devs = self.readBackendList(devid, "vscsi-devs")
        vscsipath = "vscsi-devs/"
        for dev in devs:
            devpath = vscsipath + dev
            pdev = self.readBackend(devid, devpath + "/p-dev")
            pdevname = self.readBackend(devid, devpath + "/p-devname")
            vdev = self.readBackend(devid, devpath + "/v-dev")
            state = self.readBackend(devid, devpath + "/state")
            localdevid = self.readBackend(devid, devpath + "/devid")
            dev_dict = {"p-dev": pdev, "p-devname": pdevname, "v-dev": vdev, "state": state, "devid": localdevid}
            vscsi_devs.append(dev_dict)

        config["devs"] = vscsi_devs
        config["feature-host"] = self.readBackend(devid, "feature-host")
        config["uuid"] = self.readBackend(devid, "uuid")
        return config
コード例 #18
0
ファイル: tpmif.py プロジェクト: Hearen/OnceServer
    def getDeviceConfiguration(self, devid, transaction=None):
        """Returns the configuration of a device"""
        result = DevController.getDeviceConfiguration(self, devid, transaction)

        (instance, uuid, type) = self.readBackend(devid, "instance", "uuid", "type")

        if instance:
            result["instance"] = instance
        if uuid:
            result["uuid"] = uuid
        if type:
            result["type"] = type

        if uuid:
            data = self.vm.info["devices"].get(uuid)
            if data:
                other = data[1].get("other_config")
                if other:
                    result["other_config"] = other

        return result
コード例 #19
0
ファイル: blkif.py プロジェクト: timofonic-nvidia/gxen-test
    def getDeviceConfiguration(self, devid, transaction=None):
        """Returns the configuration of a device.

        @note: Similar to L{configuration} except it returns a dict.
        @return: dict
        """
        config = DevController.getDeviceConfiguration(self, devid, transaction)
        if transaction is None:
            devinfo = self.readBackend(devid, 'dev', 'type', 'params', 'mode',
                                       'uuid', 'bootable')
        else:
            devinfo = self.readBackendTxn(transaction, devid, 'dev', 'type',
                                          'params', 'mode', 'uuid', 'bootable')
        dev, typ, params, mode, uuid, bootable = devinfo

        if dev:
            if transaction is None:
                dev_type = self.readFrontend(devid, 'device-type')
            else:
                dev_type = self.readFrontendTxn(transaction, devid,
                                                'device-type')
            if dev_type:
                dev += ':' + dev_type
            config['dev'] = dev
        if typ and params:
            config['uname'] = typ + ':' + params
        else:
            config['uname'] = None
        if mode:
            config['mode'] = mode
        if uuid:
            config['uuid'] = uuid
        if bootable != None:
            config['bootable'] = int(bootable)

        proto = self.readFrontend(devid, 'protocol')
        if proto:
            config['protocol'] = proto

        return config
コード例 #20
0
ファイル: blkif.py プロジェクト: amodj/Utopia
    def getDeviceConfiguration(self, devid, transaction = None):
        """Returns the configuration of a device.

        @note: Similar to L{configuration} except it returns a dict.
        @return: dict
        """
        config = DevController.getDeviceConfiguration(self, devid, transaction)
        if transaction is None:
            devinfo = self.readBackend(devid, 'dev', 'type', 'params', 'mode',
                                       'uuid', 'bootable')
        else:
            devinfo = self.readBackendTxn(transaction, devid,
                                          'dev', 'type', 'params', 'mode', 'uuid',
                                          'bootable')
        dev, typ, params, mode, uuid, bootable = devinfo
        
        if dev:
            if transaction is None:
                dev_type = self.readFrontend(devid, 'device-type')
            else:
                dev_type = self.readFrontendTxn(transaction, devid, 'device-type')
            if dev_type:
                dev += ':' + dev_type
            config['dev'] = dev
        if typ and params:
            config['uname'] = typ +':' + params
        else:
            config['uname'] = None
        if mode:
            config['mode'] = mode
        if uuid:
            config['uuid'] = uuid
        if bootable != None:
            config['bootable'] = int(bootable)

        proto = self.readFrontend(devid, 'protocol')
        if proto:
            config['protocol'] = proto

        return config
コード例 #21
0
    def getDeviceConfiguration(self, devid, transaction = None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)
        num_devs = self.readBackend(devid, 'num_devs')
        pci_devs = []
        
        for i in range(int(num_devs)):
            dev_config = self.readBackend(devid, 'dev-%d' % i)

            pci_match = re.match(r"((?P<domain>[0-9a-fA-F]{1,4})[:,])?" +
                                 r"(?P<bus>[0-9a-fA-F]{1,2})[:,]" + 
                                 r"(?P<slot>[0-9a-fA-F]{1,2})[.,]" + 
                                 r"(?P<func>[0-9a-fA-F]{1,2})", dev_config)
            
            if pci_match!=None:
                pci_dev_info = pci_match.groupdict()
                pci_devs.append({'domain': '0x%(domain)s' % pci_dev_info,
                                 'bus': '0x%(bus)s' % pci_dev_info,
                                 'slot': '0x%(slot)s' % pci_dev_info,
                                 'func': '0x%(func)s' % pci_dev_info})

        result['devs'] = pci_devs
        result['uuid'] = self.readBackend(devid, 'uuid')
        return result
コード例 #22
0
ファイル: pciif.py プロジェクト: CrazyXen/XEN_CODE
    def getDeviceConfiguration(self, devid, transaction = None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)
        num_devs = self.readBackend(devid, 'num_devs')
        pci_devs = []

        for i in range(int(num_devs)):
            pci_dev = parse_pci_name(self.readBackend(devid, 'dev-%d' % i))

            # Per device uuid info
            pci_dev['uuid'] = self.readBackend(devid, 'uuid-%d' % i)
            pci_dev['key'] = self.readBackend(devid, 'key-%d' % i)
            pci_dev['vdevfn'] = '0x%s' % self.readBackend(devid,
                                                          'vdevfn-%d' % i)

            #append opts info
            opts = self.readBackend(devid, 'opts-%d' % i)
            if opts is not None:
                pci_dev['opts'] = opts

            pci_devs.append(pci_dev)

        result['devs'] = pci_devs
        result['uuid'] = self.readBackend(devid, 'uuid')
        return result
コード例 #23
0
ファイル: tpmif.py プロジェクト: timofonic-nvidia/gxen-test
    def getDeviceConfiguration(self, devid, transaction = None):
        """Returns the configuration of a device"""
        result = DevController.getDeviceConfiguration(self, devid, transaction)

        (instance, uuid, type) = \
                           self.readBackend(devid, 'instance',
                                                   'uuid',
                                                   'type')

        if instance:
            result['instance'] = instance
        if uuid:
            result['uuid'] = uuid
        if type:
            result['type'] = type

        if uuid:
            data = self.vm.info['devices'].get(uuid)
            if data:
                other = data[1].get('other_config')
                if other:
                    result['other_config'] = other

        return result
コード例 #24
0
    def getDeviceConfiguration(self, devid, transaction=None):
        result = DevController.getDeviceConfiguration(self, devid, transaction)
        num_devs = self.readBackend(devid, 'num_devs')
        pci_devs = []

        for i in range(int(num_devs)):
            pci_dev = parse_pci_name(self.readBackend(devid, 'dev-%d' % i))

            # Per device uuid info
            pci_dev['uuid'] = self.readBackend(devid, 'uuid-%d' % i)
            pci_dev['key'] = self.readBackend(devid, 'key-%d' % i)
            pci_dev['vdevfn'] = '0x%s' % self.readBackend(
                devid, 'vdevfn-%d' % i)

            #append opts info
            opts = self.readBackend(devid, 'opts-%d' % i)
            if opts is not None:
                pci_dev['opts'] = opts

            pci_devs.append(pci_dev)

        result['devs'] = pci_devs
        result['uuid'] = self.readBackend(devid, 'uuid')
        return result
コード例 #25
0
ファイル: vscsiif.py プロジェクト: jeffchao/xen-3.3-tcg
    def getDeviceConfiguration(self, devid, transaction = None):
        config = DevController.getDeviceConfiguration(self, devid, transaction)

        vscsi_devs = []

        devs = self.readBackendList(devid, "vscsi-devs")
        vscsipath = "vscsi-devs/"
        for dev in devs:
            devpath = vscsipath + dev
            pdev = self.readBackend(devid, devpath + '/p-dev')
            pdevname = self.readBackend(devid, devpath + '/p-devname')
            vdev = self.readBackend(devid, devpath + '/v-dev')
            state = self.readBackend(devid, devpath + '/state')
            localdevid = self.readBackend(devid, devpath + '/devid')
            dev_dict = {'p-dev': pdev,
                            'p-devname': pdevname,
                            'v-dev': pdevname,
                            'state': state,
                            'devid': localdevid }
            vscsi_devs.append(dev_dict)

        config['devs'] = vscsi_devs
        config['uuid'] = self.readBackend(devid, 'uuid')
        return config