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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
import shutil, re, os, string
from autotest_lib.client.common_lib import utils, error
class boottool:
def __init__(self, boottool_exec=None):
#variable to indicate if in mode to write entries for Xen
self.xen_mode = False
if boottool_exec:
self.boottool_exec = boottool_exec
else:
autodir = os.environ['AUTODIR']
self.boottool_exec = autodir + '/tools/boottool'
if not self.boottool_exec:
raise error.AutotestError('Failed to set boottool_exec')
def run_boottool(self, params):
return utils.system_output('%s %s' % (self.boottool_exec, params))
def bootloader(self):
return self.run_boottool('--bootloader-probe')
def architecture(self):
return self.run_boottool('--arch-probe')
def list_titles(self):
print self.run_boottool('--info all | grep title')
def print_entry(self, index):
print self.run_boottool('--info=%s' % index)
def get_default(self):
self.run_boottool('--default')
def set_default(self, index):
print self.run_boottool('--set-default=%s' % index)
def enable_xen_mode(self):
self.xen_mode = True
def disable_xen_mode(self):
self.xen_mode = False
def get_xen_mode(self):
return self.xen_mode
# 'kernel' can be an position number or a title
def add_args(self, kernel, args):
parameters = '--update-kernel=%s --args="%s"' % (kernel, args)
#add parameter if this is a Xen entry
if self.xen_mode:
parameters += ' --xen'
print self.run_boottool(parameters)
def add_xen_hypervisor_args(self, kernel, args):
self.run_boottool('--xen --update-xenhyper=%s --xha="%s"') %(kernel, args)
def remove_args(self, kernel, args):
parameters = '--update-kernel=%s --remove-args=%s' % (kernel, args)
#add parameter if this is a Xen entry
if self.xen_mode:
parameters += ' --xen'
print self.run_boottool(parameters)
def remove_xen_hypervisor_args(self, kernel, args):
self.run_boottool('--xen --update-xenhyper=%s --remove-args="%s"') \
% (kernel, args)
def add_kernel(self, path, title='autotest', initrd='', xen_hypervisor='', args=None, root=None, position='end'):
parameters = '--add-kernel=%s --title=%s' % (path, title)
# add an initrd now or forever hold your peace
if initrd:
parameters += ' --initrd=%s' % initrd
# add parameter if this is a Xen entry
if self.xen_mode:
parameters += ' --xen'
if xen_hypervisor:
parameters += ' --xenhyper=%s' % xen_hypervisor
if args:
parameters += ' --args="%s"' % args
if root:
parameters += ' --root="%s"' % root
if position:
parameters += ' --position="%s"' % position
print self.run_boottool(parameters)
def remove_kernel(self, kernel):
print self.run_boottool('--remove-kernel=%s' % kernel)
def boot_once(self, title):
print self.run_boottool('--boot-once --title=%s' % title)
def info(self, index):
return self.run_boottool('--info=%s' % index)
# TODO: backup()
# TODO: set_timeout()
|