114
def sort_helper(tosort):
115
"""Helps properly sorting os dictionary entires"""
114
def sort_helper(tosort, sortpref=None):
116
Helps properly sorting os dictionary entires
121
sortpref = sortpref or []
120
for key in tosort.keys():
121
if tosort[key].get("skip"):
123
# Make sure we are sorting by 'sortby' if specified, and group distros
124
# by their 'distro' tag first and foremost
125
for key, osinfo in tosort.items():
126
if osinfo.get("skip"):
124
sortby = tosort[key].get("sortby")
129
sortby = osinfo.get("sortby")
127
key_mappings[sortby] = key
132
retlist.append(key_mappings[key])
132
sortby_mappings[sortby] = key
134
distro = osinfo.get("distro") or "zzzzzzz"
135
if distro not in distro_mappings:
136
distro_mappings[distro] = []
137
distro_mappings[distro].append(sortby)
139
# We want returned lists to be sorted descending by 'distro', so we get
140
# debian5, debian4, fedora14, fedora13
142
# debian4, debian5, fedora13, fedora14
143
for distro_list in distro_mappings.values():
145
distro_list.reverse()
147
sorted_distro_list = distro_mappings.keys()
148
sorted_distro_list.sort()
150
for prefer in sortpref:
151
if not prefer in sorted_distro_list:
153
sorted_distro_list.remove(prefer)
154
sorted_distro_list.insert(0, prefer)
156
for distro in sorted_distro_list:
157
distro_list = distro_mappings[distro]
158
for key in distro_list:
159
orig_key = sortby_mappings[key]
160
retlist.append(orig_key)
170
198
defaults = DEFAULTS[key]
171
199
dictval = defaults
173
if var and OS_TYPES[os_type]["variants"][var].has_key(key):
201
if var and key in OS_TYPES[os_type]["variants"][var]:
174
202
dictval = OS_TYPES[os_type]["variants"][var][key]
175
elif OS_TYPES[os_type].has_key(key):
203
elif key in OS_TYPES[os_type]:
176
204
dictval = OS_TYPES[os_type][key]
178
206
return parse_key_entry(conn, hv_type, dictval, defaults)
184
212
defaults = DEFAULTS["devices"]
186
214
for devs in [os_devs, defaults]:
187
if not devs.has_key(device_key):
215
if device_key not in devs:
190
218
return parse_key_entry(conn, hv_type, devs[device_key][param],
290
324
NET : VIRTIO_NET,
293
"debianetch": { "label": "Debian Etch", "distro": "debian" },
327
"debianetch": { "label": "Debian Etch", "distro": "debian",
328
"sortby": "debian4" },
294
329
"debianlenny": { "label": "Debian Lenny", "distro": "debian",
296
332
DISK : VIRTIO_DISK,
297
333
NET : VIRTIO_NET,
299
335
"debiansqueeze": { "label": "Debian Squeeze", "distro": "debian",
301
338
DISK : VIRTIO_DISK,
302
339
NET : VIRTIO_NET,
324
361
DISK : VIRTIO_DISK,
325
362
NET : VIRTIO_NET,
327
"ubuntulucid": { "label": "Ubuntu 10.04 (Lucid Lynx)",
364
"ubuntulucid": { "label": "Ubuntu 10.4 (Lucid Lynx)",
330
367
DISK : VIRTIO_DISK,
331
368
NET : VIRTIO_NET,
333
"ubuntumaverick": { "label": "Ubuntu 10.10 (Maverick Meerkat)",
371
"label": "Ubuntu 10.10 (Maverick Meerkat)",
378
"label": "Ubuntu 11.04 (Natty Narwhal)",
339
384
"generic24": { "label": "Generic 2.4.x kernel" },
340
385
"generic26": { "label": "Generic 2.6.x kernel" },
341
386
"virtio26": { "sortby": "genericvirtio26",
357
402
VIDEO : VGA_VIDEO,
360
"winxp":{ "label": "Microsoft Windows XP (x86)",
405
"winxp": { "label": "Microsoft Windows XP",
406
"sortby": "mswin5", "distro" : "win",
362
408
(support.SUPPORT_CONN_HV_SKIP_DEFAULT_ACPI, False),
365
411
(support.SUPPORT_CONN_HV_SKIP_DEFAULT_ACPI, False),
368
"winxp64":{ "label": "Microsoft Windows XP (x86_64)" },
414
"winxp64": { "label": "Microsoft Windows XP (x86_64)",
415
"sortby": "mswin564", "distro": "win"},
369
416
"win2k": { "label": "Microsoft Windows 2000",
417
"sortby" : "mswin4", "distro": "win",
371
419
(support.SUPPORT_CONN_HV_SKIP_DEFAULT_ACPI, False),
374
422
(support.SUPPORT_CONN_HV_SKIP_DEFAULT_ACPI, False),
377
"win2k3": { "label": "Microsoft Windows 2003" },
378
"win2k8": { "label": "Microsoft Windows 2008" },
379
"vista": { "label": "Microsoft Windows Vista" },
380
"win7": { "label": "Microsoft Windows 7" }
425
"win2k3": { "label": "Microsoft Windows Server 2003",
426
"sortby" : "mswinserv2003", "distro": "winserv"},
427
"win2k8": { "label": "Microsoft Windows Server 2008",
428
"sortby": "mswinserv2008", "distro": "winserv" },
429
"vista": { "label": "Microsoft Windows Vista",
430
"sortby": "mswin6", "distro": "win" },
431
"win7": { "label": "Microsoft Windows 7",
432
"sortby": "mswin7", "distro": "win"}
406
"freebsd6": { "label": "Free BSD 6.x" ,
458
"freebsd6": { "label": "FreeBSD 6.x" ,
407
459
# http://www.nabble.com/Re%3A-Qemu%3A-bridging-on-FreeBSD-7.0-STABLE-p15919603.html
409
461
NET : { "model" : [ (HV_ALL, "ne2k_pci") ] }
411
"freebsd7": { "label": "Free BSD 7.x" ,
463
"freebsd7": { "label": "FreeBSD 7.x" ,
413
465
NET : { "model" : [ (HV_ALL, "ne2k_pci") ] }
415
"openbsd4": { "label": "Open BSD 4.x" ,
467
"freebsd8": { "label": "FreeBSD 8.x" ,
469
NET : { "model" : [ (HV_ALL, "e1000") ] }
471
"openbsd4": { "label": "OpenBSD 4.x" ,
416
472
# http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/OpenbsdOnQemu
417
473
# https://www.redhat.com/archives/et-mgmt-tools/2008-June/msg00018.html
430
486
"netware6": { "label": "Novell Netware 6", "pv_cdrom_install": True, },
431
487
"generic": { "label": "Generic" },
435
491
# Back compatibility entries
436
492
solaris_compat = OS_TYPES["unix"]["variants"]