create: move generate_name to Guest

This will be used by virt-install.
Tweak the logic a bit to not have 'generic' in the name
This commit is contained in:
Cole Robinson 2019-06-11 11:51:27 -04:00
parent 387614c641
commit 078348fbbf
3 changed files with 34 additions and 28 deletions

View File

@ -111,7 +111,7 @@ class NewVM(uiutils.UITestCase):
newvm.find_fuzzy("Finish", "button").click()
# Delete it from the VM window
vmwindow = self.app.root.find_fuzzy("generic on", "frame")
vmwindow = self.app.root.find_fuzzy("vm1 on", "frame")
vmwindow.find("Virtual Machine", "menu").click()
vmwindow.find("Delete", "menu item").click()
@ -284,7 +284,7 @@ class NewVM(uiutils.UITestCase):
self.forward(newvm)
newvm.find_fuzzy("Finish", "button").click()
self.app.root.find_fuzzy("generic-ppc64 on", "frame")
self.app.root.find_fuzzy("vm-ppc64 on", "frame")
self.assertFalse(newvm.showing)
@ -336,7 +336,7 @@ class NewVM(uiutils.UITestCase):
newvm.find_fuzzy("Finish", "button").click()
time.sleep(1)
self.app.root.find_fuzzy("generic on", "frame")
self.app.root.find_fuzzy("vm1 on", "frame")
self.assertFalse(newvm.showing)

View File

@ -1271,7 +1271,8 @@ class vmmCreate(vmmGObjectUI):
fs_dir = [os.environ['HOME'],
'.local/share/libvirt/filesystems/']
fs = fs_dir + [self._generate_default_name(None)]
default_name = virtinst.Guest.generate_name(self._guest)
fs = fs_dir + [default_name]
self.widget("install-oscontainer-fs").set_text(os.path.join(*fs))
@ -1479,29 +1480,6 @@ class vmmCreate(vmmGObjectUI):
return False
return True
def _generate_default_name(self, osobj):
force_num = False
if self._guest.os.is_container():
basename = "container"
force_num = True
elif not osobj:
basename = "vm"
force_num = True
else:
basename = osobj.name
if self._guest.os.arch != self.conn.caps.host.cpu.arch:
basename += "-%s" % _pretty_arch(self._guest.os.arch)
force_num = False
def cb(n):
return virtinst.generatename.check_libvirt_collision(
self.conn.get_backend().lookupByName, n)
return virtinst.generatename.generate_name(basename, cb,
start_num=force_num and 1 or 2, force_num=force_num,
sep=not force_num and "-" or "")
def _validate_install_page(self):
instmethod = self._get_config_install_page()
installer = None
@ -1658,7 +1636,7 @@ class vmmCreate(vmmGObjectUI):
self._guest.os.kernel_args = kargs
try:
name = self._generate_default_name(self._guest.osinfo)
name = virtinst.Guest.generate_name(self._guest)
self.widget("create-vm-name").set_text(name)
self._guest.validate_name(self._guest.conn, name)
self._guest.name = name

View File

@ -137,6 +137,34 @@ class Guest(XMLBuilder):
logging.error("Failed to generate non-conflicting UUID")
@staticmethod
def generate_name(guest):
def _pretty_arch(_a):
if _a == "armv7l":
return "arm"
return _a
force_num = False
basename = guest.osinfo.name
if guest.osinfo.name == "generic":
force_num = True
if guest.os.is_container():
basename = "container"
else:
basename = "vm"
if guest.os.arch != guest.conn.caps.host.cpu.arch:
basename += "-%s" % _pretty_arch(guest.os.arch)
force_num = False
def cb(n):
return generatename.check_libvirt_collision(
guest.conn.lookupByName, n)
return generatename.generate_name(basename, cb,
start_num=force_num and 1 or 2, force_num=force_num,
sep=not force_num and "-" or "")
@staticmethod
def get_recommended_machine(capsinfo):
"""