summaryrefslogtreecommitdiffstats
path: root/modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php
blob: 4203f93100459c1df85ef73ae1438c9948950f16 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

class Localboot
{

	const PROPERTY_KEY = 'serversetup.localboot';

	const BOOT_METHODS = [
		'PCBIOS' => [
			'EXIT' => 'exit 1',
			'COMBOOT' => 'set netX/209:string localboot.cfg ||
set netX/210:string http://${serverip}/tftp/sl-bios/ ||
chain -ar /tftp/sl-bios/lpxelinux.0',
			'SANBOOT' => 'sanboot --no-describe',
		],
		'EFI' => [
			'EXIT' => 'exit 1',
			'COMBOOT' => 'set netX/209:string localboot.cfg ||
set netX/210:string http://${serverip}/tftp/sl-efi64/ ||
chain -ar /tftp/sl-efi64/syslinux.efi',
		],
	];

	public static function getDefault()
	{
		$ret = explode(',', Property::get(self::PROPERTY_KEY, 'SANBOOT,EXIT'));
		if (empty($ret)) {
			$ret = ['SANBOOT', 'EXIT'];
		} elseif (count($ret) < 2) {
			$ret[] = 'EXIT';
		}
		if (null === self::BOOT_METHODS['PCBIOS'][$ret[0]]) {
			$ret[0] = 'SANBOOT';
		}
		if (null === self::BOOT_METHODS['EFI'][$ret[1]]) {
			$ret[1] = 'EXIT';
		}
		return ['PCBIOS' => $ret[0], 'EFI' => $ret[1]];
	}

	public static function setDefault($pcbios, $efi)
	{
		Property::set(self::PROPERTY_KEY, "$pcbios,$efi");
	}

}