Untitled diff
36 removals
100 lines
30 additions
100 lines
#!/usr/bin/python3
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import (QWidget, QLabel,
from PyQt5.QtWidgets import (QWidget, QLabel,
QComboBox, QApplication)
QComboBox, QApplication)
import sys
import sys
import ovirtsdk4 as sdk
import ovirtsdk4 as sdk
import ovirtsdk4.types as types
import ovirtsdk4.types as types
CONN = None
CONN = None
def get_connection():
def get_connection():
global CONN
global CONN
if CONN:
if CONN:
return CONN
return CONN
CONN = sdk.Connection(
CONN = sdk.Connection(
url='https://localhost.somedomain.intern/ovirt-engine/api',
url='https://localhost.somedomain.intern/ovirt-engine/api',
username='admin@internal',
username='admin@internal',
password='somepass',
password='somepass',
insecure=True,
insecure=True,
)
)
return CONN
return CONN
def get_hosts():
def get_hosts():
connection = get_connection()
connection = get_connection()
try:
host_service = connection.system_service().hosts_service()
host_service = connection.system_service().hosts_service()
hosts = host_service.list()
hosts = host_service.list()
return [host.name for host in hosts]
return [host.name for host in hosts]
except: pass
#connection.close()
def get_vms():
def get_vms():
connection = get_connection()
connection = get_connection()
vms_service = connection.system_service().vms_service()
vms_service = connection.system_service().vms_service()
vms = vms_service.list()
vms = vms_service.list()
disks_service = connection.system_service().disks_service()
disks_service = connection.system_service().disks_service()
if len(vms) > 0:
if len(vms) > 0:
for virtual_machine in vms:
for virtual_machine in vms:
vm_service = vms_service.vm_service(virtual_machine.id)
vm_service = vms_service.vm_service(virtual_machine.id)
try:
return [virtual_machine.name for virtual_machine in vms]
return [virtual_machine.name for virtual_machine in vms]
except: pass
# connection.close()
def get_vm_host():
def get_host_vms(host_name):
connection = get_connection()
connection = get_connection()
host_service = connection.system_service().hosts_service()
vms_service = connection.system_service().vms_service()
hosts = host_service.list()
vms = vms_service.list(search=host_name, case_sensitive=False)
for host in hosts:
vms_service = connection.system_service().vms_service()
return [vm.name for vm in vms]
vms = vms_service.list(search=host.name, case_sensitive=False)
return [vm.name for vm in vms]
def get_all_vms():
vms = {}
for host_name in get_hosts:
vms[host_name] = get_host_vms(host_name)
return vms
class Example(QWidget):
class Example(QWidget):
def __init__(self):
def __init__(self):
super().__init__()
super().__init__()
self.initUI()
self.initUI()
def initUI(self):
def initUI(self):
self.lbl = QLabel("Select a Host", self)
self.lbl = QLabel("Select a Host", self)
combo = QComboBox(self)
self.combo = QComboBox(self)
selectvm = QComboBox(self)
self.combo.addItem("Select a Host")
combo.addItem("Select a Host")
self.combo.addItems(get_hosts())
combo.addItems(get_hosts())
self.combo.move(50, 50)
combo.move(50, 50)
self.combo.activated[str].connect(self.onActivated)
self.lbl.move(50, 150)
self.lbl.move(50, 150)
selectvm.addItems(get_vm_host())
self.selectvm = QComboBox(self)
selectvm.move(50, 100)
self.selectvm.addItems(get_vm_host())
self.selectvm.move(50, 100)
self.lbl.move(10, 250)
self.lbl.move(10, 250)
combo.activated[str].connect(self.onActivated)
self.setGeometry(300, 500, 600, 400)
self.setGeometry(300, 500, 600, 400)
self.setWindowTitle('VM migration tool')
self.setWindowTitle('VM migration tool')
self.show()
self.show()
def onActivated(self, text):
def onActivated(self, host_name):
self.lbl.setText(host_name)
self.lbl.setText(text)
self.lbl.adjustSize()
self.lbl.adjustSize()
self.selectvm.clear()
self.selectvm.addItems(get_host_vms(host_name))
if __name__ == '__main__':
if __name__ == '__main__':
app = QApplication(sys.argv)
app = QApplication(sys.argv)
ex = Example()
ex = Example()
sys.exit(app.exec_())
sys.exit(app.exec_())