Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
informatica:linux:virtualizacion:kvm [2014/02/25 11:41] – [API] javi | informatica:linux:virtualizacion:kvm [2015/12/29 10:30] – [Comandos varios] javi |
---|
En este ejemplo se establece el valor en 524288 KB | En este ejemplo se establece el valor en 524288 KB |
| |
| * Arrancar la VM al arrancar el hipervisor: |
| |
| sudo virsh autostart myvmname |
====== Salir de la consola ====== | ====== Salir de la consola ====== |
| |
sudo vim test-1.example.com.xml | sudo vim test-1.example.com.xml |
| |
Y ajustar los nombres, como por ejemplo en las siguientes etiquetas: | Y asegurarse de que los siguientes valores son unicos y correctos: |
| |
| * Name |
<code> | <code> |
Name | <name>test-1.example.com</name> |
Disk | </code> |
| * Almacenamiento (en este caso LVM) |
| <code> |
| <source dev='/dev/vg/lv_test_1'/> |
| </code> |
| * MAC address (importante, quiza hemos copiado la maquina y esta duplicada): |
| <code> |
| <mac address='00:16:3e:0e:3e:53'/> |
</code> | </code> |
| |
5. Ajustar, si es necesario, la ruta/punto de montaje del disco. | Script para generar MAC addresses: |
| |
6. Definir la nueva VM: | <code> |
| #!/usr/bin/python |
| # macgen.py script to generate a MAC address for guests on Xen |
| # |
| import random |
| # |
| def randomMAC(): |
| mac = [ 0x00, 0x16, 0x3e, |
| random.randint(0x00, 0x7f), |
| random.randint(0x00, 0xff), |
| random.randint(0x00, 0xff) ] |
| return ':'.join(map(lambda x: "%02x" % x, mac)) |
| # |
| print randomMAC() |
| </code> |
| |
virsh define test-1.example.com.xml | Ahora obtenemos el listado de VMS: |
| |
| virsh list --all |
| |
| Y para cada una de ellas obtenemos la MAC address: |
| |
| virsh dumpxml vm-1.example.com | grep "mac address" | awk '{print $2}' | cut -d "'" -f2 |
| |
| TODO: hacer un script en bash que lo haga |
| |
| Finalmente nos aseguramos que la nueva MAC generada es unica. |
| |
| 5. Definir la nueva VM: |
| |
| virsh define test-1.example.com.xml |
| |
===== VM destino existe ===== | ===== VM destino existe ===== |
| |
9. (VM arrancada con live CD) Con parted eliminar las particiones 2 y 5 y recrearlas. Recomiendo ejecutarlo asi: | 9. (VM arrancada con live CD) Con parted eliminar las particiones 2 y 5 y recrearlas. Recomiendo ejecutarlo asi: |
| |
sudo parted -a optimal /dev/vda | parted -a optimal /dev/vda |
| |
Cambiamos a sectores como unidad: | Cambiamos a sectores como unidad: |
10. (VM arrancada con live CD) Copiar con dd de la particion destino a la origan, una vez recreada: | 10. (VM arrancada con live CD) Copiar con dd de la particion destino a la origan, una vez recreada: |
| |
time sudo dd if=/dev/vdb5 of=/dev/vda5 bs=512 | time dd if=/dev/vdb5 of=/dev/vda5 bs=512 |
| |
Creo que el proceso de nuevo tiene una velocidad entorno a los 60 MB/s | Creo que el proceso de nuevo tiene una velocidad entorno a los 60 MB/s |
* Cuando el volumen es montado por un segundo guest, los guests ya solo pueden leer, y escribir como root, pero no escribir como un usuario normal. No creo que sea una limitacion de virtfs, pero tengo que investigarlo. | * Cuando el volumen es montado por un segundo guest, los guests ya solo pueden leer, y escribir como root, pero no escribir como un usuario normal. No creo que sea una limitacion de virtfs, pero tengo que investigarlo. |
* En las mismas circunstancias no puedo hacer un "./script.sh" y si un "bash script.sh". No se que consecuencias puede tener | * En las mismas circunstancias no puedo hacer un "./script.sh" y si un "bash script.sh". No se que consecuencias puede tener |
| * **BUG**: cuando se anyade un nuevo punto de montaje en una VM (virsh edit vm_1) tengo que parar y luego arrancar la VM para que esta vea el punto de montaje. Si simplemente la reinicio vera los puntos de montajes anteriores, pero no el nuevo |
===== Virtfs (9p) passthrough ===== | ===== Virtfs (9p) passthrough ===== |
| |
| |
http://libvirt.org/acl.html | http://libvirt.org/acl.html |
| |
| http://libvirt.org/aclpolkit.html |
| |
https://wiki.archlinux.org/index.php/libvirt#Using_Python | https://wiki.archlinux.org/index.php/libvirt#Using_Python |
| |
| Ejemplo sencillo de uso sin contrasenya si se dan las siguientes condiciones: |
| |
| * Configuracion por defecto (**NO** se ha habilitado policykit) |
| * El usuario que ejecuta el script pertenece al grupo especificado en la variable "unix_sock_group" de /etc/libvirt/libvirtd.conf |
| * El script se ejecuta desde el mismo hipervisor |
| |
| virsh -c qemu:///system list |
| |
| La url sirve para la API tambien |
===== API ===== | ===== API ===== |
| |
Ejemplo de metodos y propiades de un objeto de tipo conn: | http://libvirt.org/html/libvirt-libvirt.html |
| |
| ==== virConnect ==== |
| |
<code> | <code> |
conn = libvirt.open("qemu+ssh://localhost/system") | [('__class__', <class 'libvirt.virConnect'>) |
domains = conn.listDomainsID() | ('__del__', <bound method virConnect.__del__ of <libvirt.virConnect object at 0x7f653a08df10>>) |
for domainID in domains: | ('__delattr__', <method-wrapper '__delattr__' of virConnect object at 0x7f653a08df10>) |
domConnect = conn.lookupByID(domainID) | ('__dict__', {'_o': <capsule object "virConnectPtr" at 0x7f6538716c00>}) |
| ('__doc__', None) |
| ('__format__', <built-in method __format__ of virConnect object at 0x7f653a08df10>) |
| ('__getattribute__', <method-wrapper '__getattribute__' of virConnect object at 0x7f653a08df10>) |
| ('__hash__', <method-wrapper '__hash__' of virConnect object at 0x7f653a08df10>) |
| ('__init__', <bound method virConnect.__init__ of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('__module__', 'libvirt') |
| ('__new__', <built-in method __new__ of type object at 0x8fbce0>) |
| ('__reduce__', <built-in method __reduce__ of virConnect object at 0x7f653a08df10>) |
| ('__reduce_ex__', <built-in method __reduce_ex__ of virConnect object at 0x7f653a08df10>) |
| ('__repr__', <method-wrapper '__repr__' of virConnect object at 0x7f653a08df10>) |
| ('__setattr__', <method-wrapper '__setattr__' of virConnect object at 0x7f653a08df10>) |
| ('__sizeof__', <built-in method __sizeof__ of virConnect object at 0x7f653a08df10>) |
| ('__str__', <method-wrapper '__str__' of virConnect object at 0x7f653a08df10>) |
| ('__subclasshook__', <built-in method __subclasshook__ of type object at 0x29d7020>) |
| ('__weakref__', None) |
| ('_dispatchCloseCallback', <bound method virConnect._dispatchCloseCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventBalloonChangeCallback', <bound method virConnect._dispatchDomainEventBalloonChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventBlockPullCallback', <bound method virConnect._dispatchDomainEventBlockPullCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventCallbacks', <bound method virConnect._dispatchDomainEventCallbacks of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventDeviceRemovedCallback', <bound method virConnect._dispatchDomainEventDeviceRemovedCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventDiskChangeCallback', <bound method virConnect._dispatchDomainEventDiskChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventGenericCallback', <bound method virConnect._dispatchDomainEventGenericCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventGraphicsCallback', <bound method virConnect._dispatchDomainEventGraphicsCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventIOErrorCallback', <bound method virConnect._dispatchDomainEventIOErrorCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventIOErrorReasonCallback', <bound method virConnect._dispatchDomainEventIOErrorReasonCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventLifecycleCallback', <bound method virConnect._dispatchDomainEventLifecycleCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventPMSuspendCallback', <bound method virConnect._dispatchDomainEventPMSuspendCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventPMSuspendDiskCallback', <bound method virConnect._dispatchDomainEventPMSuspendDiskCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventPMWakeupCallback', <bound method virConnect._dispatchDomainEventPMWakeupCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventRTCChangeCallback', <bound method virConnect._dispatchDomainEventRTCChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventTrayChangeCallback', <bound method virConnect._dispatchDomainEventTrayChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_dispatchDomainEventWatchdogCallback', <bound method virConnect._dispatchDomainEventWatchdogCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('_o', <capsule object "virConnectPtr" at 0x7f6538716c00>) |
| ('baselineCPU', <bound method virConnect.baselineCPU of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('changeBegin', <bound method virConnect.changeBegin of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('changeCommit', <bound method virConnect.changeCommit of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('changeRollback', <bound method virConnect.changeRollback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('close', <bound method virConnect.close of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('compareCPU', <bound method virConnect.compareCPU of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('createLinux', <bound method virConnect.createLinux of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('createXML', <bound method virConnect.createXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('createXMLWithFiles', <bound method virConnect.createXMLWithFiles of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('defineXML', <bound method virConnect.defineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('domainEventDeregister', <bound method virConnect.domainEventDeregister of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('domainEventDeregisterAny', <bound method virConnect.domainEventDeregisterAny of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('domainEventRegister', <bound method virConnect.domainEventRegister of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('domainEventRegisterAny', <bound method virConnect.domainEventRegisterAny of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('domainXMLFromNative', <bound method virConnect.domainXMLFromNative of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('domainXMLToNative', <bound method virConnect.domainXMLToNative of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('findStoragePoolSources', <bound method virConnect.findStoragePoolSources of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getCPUMap', <bound method virConnect.getCPUMap of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getCPUModelNames', <bound method virConnect.getCPUModelNames of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getCPUStats', <bound method virConnect.getCPUStats of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getCapabilities', <bound method virConnect.getCapabilities of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getCellsFreeMemory', <bound method virConnect.getCellsFreeMemory of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getFreeMemory', <bound method virConnect.getFreeMemory of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getHostname', <bound method virConnect.getHostname of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getInfo', <bound method virConnect.getInfo of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getLibVersion', <bound method virConnect.getLibVersion of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getMaxVcpus', <bound method virConnect.getMaxVcpus of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getMemoryParameters', <bound method virConnect.getMemoryParameters of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getMemoryStats', <bound method virConnect.getMemoryStats of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getSecurityModel', <bound method virConnect.getSecurityModel of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getSysinfo', <bound method virConnect.getSysinfo of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getType', <bound method virConnect.getType of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getURI', <bound method virConnect.getURI of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('getVersion', <bound method virConnect.getVersion of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('interfaceDefineXML', <bound method virConnect.interfaceDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('interfaceLookupByMACString', <bound method virConnect.interfaceLookupByMACString of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('interfaceLookupByName', <bound method virConnect.interfaceLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('isAlive', <bound method virConnect.isAlive of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('isEncrypted', <bound method virConnect.isEncrypted of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('isSecure', <bound method virConnect.isSecure of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllDevices', <bound method virConnect.listAllDevices of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllDomains', <bound method virConnect.listAllDomains of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllInterfaces', <bound method virConnect.listAllInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllNWFilters', <bound method virConnect.listAllNWFilters of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllNetworks', <bound method virConnect.listAllNetworks of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllSecrets', <bound method virConnect.listAllSecrets of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listAllStoragePools', <bound method virConnect.listAllStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listDefinedDomains', <bound method virConnect.listDefinedDomains of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listDefinedInterfaces', <bound method virConnect.listDefinedInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listDefinedNetworks', <bound method virConnect.listDefinedNetworks of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listDefinedStoragePools', <bound method virConnect.listDefinedStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listDevices', <bound method virConnect.listDevices of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listDomainsID', <bound method virConnect.listDomainsID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listInterfaces', <bound method virConnect.listInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listNWFilters', <bound method virConnect.listNWFilters of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listNetworks', <bound method virConnect.listNetworks of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listSecrets', <bound method virConnect.listSecrets of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('listStoragePools', <bound method virConnect.listStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('lookupByID', <bound method virConnect.lookupByID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('lookupByName', <bound method virConnect.lookupByName of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('lookupByUUID', <bound method virConnect.lookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('lookupByUUIDString', <bound method virConnect.lookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('networkCreateXML', <bound method virConnect.networkCreateXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('networkDefineXML', <bound method virConnect.networkDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('networkLookupByName', <bound method virConnect.networkLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('networkLookupByUUID', <bound method virConnect.networkLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('networkLookupByUUIDString', <bound method virConnect.networkLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('newStream', <bound method virConnect.newStream of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nodeDeviceCreateXML', <bound method virConnect.nodeDeviceCreateXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nodeDeviceLookupByName', <bound method virConnect.nodeDeviceLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nodeDeviceLookupSCSIHostByWWN', <bound method virConnect.nodeDeviceLookupSCSIHostByWWN of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfDefinedDomains', <bound method virConnect.numOfDefinedDomains of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfDefinedInterfaces', <bound method virConnect.numOfDefinedInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfDefinedNetworks', <bound method virConnect.numOfDefinedNetworks of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfDefinedStoragePools', <bound method virConnect.numOfDefinedStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfDevices', <bound method virConnect.numOfDevices of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfDomains', <bound method virConnect.numOfDomains of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfInterfaces', <bound method virConnect.numOfInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfNWFilters', <bound method virConnect.numOfNWFilters of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfNetworks', <bound method virConnect.numOfNetworks of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfSecrets', <bound method virConnect.numOfSecrets of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('numOfStoragePools', <bound method virConnect.numOfStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nwfilterDefineXML', <bound method virConnect.nwfilterDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nwfilterLookupByName', <bound method virConnect.nwfilterLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nwfilterLookupByUUID', <bound method virConnect.nwfilterLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('nwfilterLookupByUUIDString', <bound method virConnect.nwfilterLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('registerCloseCallback', <bound method virConnect.registerCloseCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('restore', <bound method virConnect.restore of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('restoreFlags', <bound method virConnect.restoreFlags of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('saveImageDefineXML', <bound method virConnect.saveImageDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('saveImageGetXMLDesc', <bound method virConnect.saveImageGetXMLDesc of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('secretDefineXML', <bound method virConnect.secretDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('secretLookupByUUID', <bound method virConnect.secretLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('secretLookupByUUIDString', <bound method virConnect.secretLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('secretLookupByUsage', <bound method virConnect.secretLookupByUsage of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('setKeepAlive', <bound method virConnect.setKeepAlive of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('setMemoryParameters', <bound method virConnect.setMemoryParameters of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storagePoolCreateXML', <bound method virConnect.storagePoolCreateXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storagePoolDefineXML', <bound method virConnect.storagePoolDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storagePoolLookupByName', <bound method virConnect.storagePoolLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storagePoolLookupByUUID', <bound method virConnect.storagePoolLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storagePoolLookupByUUIDString', <bound method virConnect.storagePoolLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storageVolLookupByKey', <bound method virConnect.storageVolLookupByKey of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('storageVolLookupByPath', <bound method virConnect.storageVolLookupByPath of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('suspendForDuration', <bound method virConnect.suspendForDuration of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('unregisterCloseCallback', <bound method virConnect.unregisterCloseCallback of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('virConnGetLastError', <bound method virConnect.virConnGetLastError of <libvirt.virConnect object at 0x7f653a08df10>>) |
| ('virConnResetLastError', <bound method virConnect.virConnResetLastError of <libvirt.virConnect object at 0x7f653a08df10>>)] |
</code> | </code> |
| |
Volcado de **domConnect**: | ==== virDomain ==== |
| |
<code> | <code> |
('vcpusFlags', <bound method virDomain.vcpusFlags of <libvirt.virDomain object at 0x7f39740e6750>>)] | ('vcpusFlags', <bound method virDomain.vcpusFlags of <libvirt.virDomain object at 0x7f39740e6750>>)] |
</code> | </code> |
| |
| ==== Varios ==== |
| |
* Obtener la lista de dominios no-activos: | * Obtener la lista de dominios no-activos: |