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
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
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])
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])
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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