def get_platform(): """Check the architecture of the system and return an instance of a Platform subclass to match. If the architecture could not be determined, raise an exception.""" if arch.is_ppc(): ppc_machine = arch.get_ppc_machine() if (ppc_machine == "PMac" and arch.get_ppc_mac_gen() == "NewWorld"): return NewWorldPPC() elif ppc_machine in ["iSeries", "pSeries"]: return IPSeriesPPC() elif ppc_machine == "PowerNV": return PowerNV() elif ppc_machine == "PS3": return PS3() else: raise SystemError("Unsupported PPC machine type: %s" % ppc_machine) elif arch.is_s390(): return S390() elif arch.is_efi(): if arch.is_mactel(): return MacEFI() elif arch.is_aarch64(): return Aarch64EFI() elif arch.is_arm(): return ArmEFI() else: return EFI() elif arch.is_x86(): return X86() elif arch.is_arm(): return ARM() else: raise SystemError("Could not determine system architecture.")
def verify_gpt_biosboot(storage, constraints, report_error, report_warning): """ Verify that GPT boot disk on BIOS system has a BIOS boot partition. :param storage: a storage to check :param constraints: a dictionary of constraints :param report_error: a function for error reporting :param report_warning: a function for warning reporting """ if storage.bootloader and not storage.bootloader.skip_bootloader: stage1 = storage.bootloader.stage1_device if arch.is_x86() and not arch.is_efi() and stage1 and stage1.is_disk \ and getattr(stage1.format, "label_type", None) == "gpt": missing = True for part in [p for p in storage.partitions if p.disk == stage1]: if part.format.type == "biosboot": missing = False break if missing: report_error(_("Your BIOS-based system needs a special " "partition to boot from a GPT disk label. " "To continue, please create a 1MiB " "'biosboot' type partition."))
def verify_gpt_biosboot(storage, constraints, report_error, report_warning): """ Verify that GPT boot disk on BIOS system has a BIOS boot partition. :param storage: a storage to check :param constraints: a dictionary of constraints :param report_error: a function for error reporting :param report_warning: a function for warning reporting """ if storage.bootloader and not storage.bootloader.skip_bootloader: stage1 = storage.bootloader.stage1_device if arch.is_x86() and not arch.is_efi() and stage1 and stage1.is_disk \ and getattr(stage1.format, "label_type", None) == "gpt": missing = True for part in [p for p in storage.partitions if p.disk == stage1]: if part.format.type == "biosboot": missing = False break if missing: report_error( _("Your BIOS-based system needs a special " "partition to boot from a GPT disk label. " "To continue, please create a 1MiB " "'biosboot' type partition."))
def get_platform(): """Check the architecture of the system and return an instance of a Platform subclass to match. If the architecture could not be determined, raise an exception.""" if arch.is_ppc(): ppc_machine = arch.get_ppc_machine() if (ppc_machine == "PMac" and arch.get_ppc_mac_gen() == "NewWorld"): return NewWorldPPC() elif ppc_machine in ["iSeries", "pSeries"]: return IPSeriesPPC() elif ppc_machine == "PS3": return PS3() else: raise SystemError("Unsupported PPC machine type: %s" % ppc_machine) elif arch.is_s390(): return S390() elif arch.is_efi(): if arch.is_mactel(): return MacEFI() elif arch.is_aarch64(): return Aarch64EFI() elif arch.is_arm(): return ArmEFI() else: return EFI() elif arch.is_x86(): return X86() elif arch.is_arm(): return ARM() else: raise SystemError("Could not determine system architecture.")