1 |
wellsi |
1.1 |
--- anaconda-13.21.195/textw/partition_text.py 2012-11-26 12:42:03.000000000 -0800 |
2 |
|
|
+++ updates/textw/partition_text.py 2013-10-28 07:49:56.000000000 -0700 |
3 |
|
|
@@ -57,106 +57,18 @@ |
4 |
|
|
|
5 |
|
|
def __call__(self, screen, anaconda): |
6 |
|
|
self.anaconda = anaconda |
7 |
|
|
- |
8 |
|
|
- while 1: |
9 |
|
|
- g = GridFormHelp(screen, _("Partitioning Type"), "autopart", 1, 6) |
10 |
|
|
- |
11 |
|
|
- txt = TextboxReflowed(65, _("Installation requires partitioning of your hard drive. The default layout is suitable for most users. Select what space to use and which drives to use as the install target.")) |
12 |
|
|
- g.add(txt, 0, 0, (0, 0, 0, 0)) |
13 |
|
|
- |
14 |
|
|
- opts = ((_("Use entire drive"), CLEARPART_TYPE_ALL), |
15 |
|
|
- (_("Replace existing Linux system"), CLEARPART_TYPE_LINUX), |
16 |
|
|
- (_("Use free space"), CLEARPART_TYPE_NONE)) |
17 |
|
|
- typebox = Listbox(height = len(opts), scroll = 0) |
18 |
|
|
- for (txt, val) in opts: |
19 |
|
|
- typebox.append(txt, val) |
20 |
|
|
- |
21 |
|
|
- if anaconda.id.storage.clearPartType is None: |
22 |
|
|
- preselection = CLEARPART_TYPE_LINUX |
23 |
|
|
- else: |
24 |
|
|
- preselection = anaconda.id.storage.clearPartType |
25 |
|
|
- typebox.setCurrent(preselection) |
26 |
|
|
- |
27 |
|
|
- g.add(typebox, 0, 1, (0, 1, 0, 0)) |
28 |
|
|
- |
29 |
|
|
- # list of drives to select which to clear |
30 |
|
|
- subgrid = Grid(1, 2) |
31 |
|
|
- subgrid.setField(TextboxReflowed(55, _("Which drive(s) do you want to " |
32 |
|
|
- "use for this installation?")), |
33 |
|
|
- 0, 0) |
34 |
|
|
- drivelist = CheckboxTree(height=2, scroll=1) |
35 |
|
|
- subgrid.setField(drivelist, 0, 1) |
36 |
|
|
- g.add(subgrid, 0, 2, (0, 1, 0, 0)) |
37 |
|
|
- |
38 |
|
|
- bb = ButtonBar(screen, [ TEXT_OK_BUTTON, TEXT_BACK_BUTTON ]) |
39 |
|
|
- g.add(bb, 0, 5, (0,1,0,0)) |
40 |
|
|
- |
41 |
|
|
- |
42 |
|
|
- typebox.setCallback(self.typeboxChange, (typebox, drivelist)) |
43 |
|
|
- self.drivelist = drivelist |
44 |
|
|
- |
45 |
|
|
- g.addHotKey("F2") |
46 |
|
|
- screen.pushHelpLine (_("<Space>,<+>,<-> selection | <F2> Add drive | <F12> next screen")) |
47 |
|
|
- |
48 |
|
|
- # restore the drive list each time |
49 |
|
|
- disks = anaconda.id.storage.partitioned |
50 |
|
|
- cleardrives = anaconda.id.storage.clearPartDisks |
51 |
|
|
- |
52 |
|
|
- for disk in disks: |
53 |
|
|
- model = disk.model |
54 |
|
|
- |
55 |
|
|
- if not cleardrives or len(cleardrives) < 1: |
56 |
|
|
- selected = 1 |
57 |
|
|
- else: |
58 |
|
|
- if disk.name in cleardrives: |
59 |
|
|
- selected = 1 |
60 |
|
|
- else: |
61 |
|
|
- selected = 0 |
62 |
|
|
- |
63 |
|
|
- sizestr = "%8.0f MB" % (disk.size,) |
64 |
|
|
- diskdesc = "%6s %s (%s)" % (disk.name, sizestr, model[:23],) |
65 |
|
|
- |
66 |
|
|
- drivelist.append(diskdesc, selected = selected) |
67 |
|
|
- |
68 |
|
|
- rc = g.run() |
69 |
|
|
- |
70 |
|
|
- if len(self.drivelist.getSelection()) > 0: |
71 |
|
|
- sel = map(lambda s: s.split()[0], self.drivelist.getSelection()) |
72 |
|
|
- else: |
73 |
|
|
- sel = [] |
74 |
|
|
- partmethod_ans = typebox.current() |
75 |
|
|
- res = bb.buttonPressed(rc) |
76 |
|
|
- |
77 |
|
|
- self.clearDrivelist() |
78 |
|
|
- screen.popHelpLine() |
79 |
|
|
- screen.popWindow() |
80 |
|
|
- |
81 |
|
|
- if rc == "F2": |
82 |
|
|
- addDialog = addDriveDialog(anaconda) |
83 |
|
|
- if addDialog.addDriveDialog(screen) != INSTALL_BACK: |
84 |
|
|
- anaconda.id.storage.reset() |
85 |
|
|
- anaconda.id.bootloader.updateDriveList() |
86 |
|
|
- continue |
87 |
|
|
- |
88 |
|
|
- if res == TEXT_BACK_CHECK: |
89 |
|
|
- return INSTALL_BACK |
90 |
|
|
- |
91 |
|
|
- if anaconda.id.storage.checkNoDisks(): |
92 |
|
|
- continue |
93 |
|
|
- |
94 |
|
|
- if len(sel) < 1: |
95 |
|
|
- mustHaveSelectedDrive(anaconda.intf) |
96 |
|
|
- continue |
97 |
|
|
- |
98 |
|
|
- anaconda.dispatch.skipStep("autopartitionexecute", skip = 0) |
99 |
|
|
- anaconda.id.storage.doAutoPart = True |
100 |
|
|
- anaconda.id.storage.clearPartType = partmethod_ans |
101 |
|
|
- anaconda.id.storage.clearPartDisks = sel |
102 |
|
|
- break |
103 |
|
|
- |
104 |
|
|
- # ask to review autopartition layout - but only if it's not custom partitioning |
105 |
|
|
+ anaconda.dispatch.skipStep("autopartitionexecute", skip = 0) |
106 |
|
|
+ anaconda.id.storage.doAutoPart = True |
107 |
|
|
+ anaconda.id.storage.clearPartType = CLEARPART_TYPE_ALL |
108 |
|
|
+ anaconda.id.storage.clearPartDisks = map(lambda s: s.name, anaconda.id.storage.partitioned) |
109 |
|
|
anaconda.dispatch.skipStep("partition", skip = 1) |
110 |
|
|
anaconda.dispatch.skipStep("bootloader", skip = 1) |
111 |
|
|
+ anaconda.dispatch.skipStep("bootloadersetup", skip = 0) |
112 |
|
|
+ anaconda.dispatch.skipStep("bootloaderadvanced", skip = 1) |
113 |
|
|
+ anaconda.dispatch.skipStep("instbootloader", skip = 0) |
114 |
|
|
+ anaconda.id.bootloader.doUpgradeOnly = 1 |
115 |
|
|
+ anaconda.id.bootloader.useGrubVal = 1 |
116 |
|
|
+ #anaconda.id.bootloader.setDevice(self.bootDev) |
117 |
|
|
|
118 |
|
|
return INSTALL_OK |
119 |
|
|
|
120 |
|
|
--- anaconda-13.21.195.upstream/text.py 2012-11-26 12:42:03.000000000 -0800 |
121 |
|
|
+++ updates/text.py 2013-10-28 16:02:23.000000000 -0700 |
122 |
|
|
@@ -448,7 +448,6 @@ |
123 |
|
|
signal.signal(signal.SIGINT, signal.SIG_IGN) |
124 |
|
|
signal.signal(signal.SIGTSTP, signal.SIG_IGN) |
125 |
|
|
self.screen = SnackScreen() |
126 |
|
|
- self._initLabelAnswers = {} |
127 |
|
|
self._inconsistentLVMAnswers = {} |
128 |
|
|
|
129 |
|
|
def __del__(self): |
130 |
|
|
@@ -467,54 +466,12 @@ |
131 |
|
|
return True |
132 |
|
|
|
133 |
|
|
def resetInitializeDiskQuestion(self): |
134 |
|
|
- self._initLabelAnswers = {} |
135 |
|
|
+ pass |
136 |
|
|
|
137 |
|
|
def questionInitializeDisk(self, path, description, size, details=""): |
138 |
|
|
- |
139 |
|
|
- retVal = False # The less destructive default |
140 |
|
|
- |
141 |
|
|
if not path: |
142 |
|
|
- return retVal |
143 |
|
|
- |
144 |
|
|
- # we are caching answers so that we don't |
145 |
|
|
- # ask in each storage.reset() again |
146 |
|
|
- if path in self._initLabelAnswers: |
147 |
|
|
- log.info("UI not asking about disk initialization, " |
148 |
|
|
- "using cached answer: %s" % self._initLabelAnswers[path]) |
149 |
|
|
- return self._initLabelAnswers[path] |
150 |
|
|
- elif "all" in self._initLabelAnswers: |
151 |
|
|
- log.info("UI not asking about disk initialization, " |
152 |
|
|
- "using cached answer: %s" % self._initLabelAnswers["all"]) |
153 |
|
|
- return self._initLabelAnswers["all"] |
154 |
|
|
- |
155 |
|
|
- rc = self.messageWindow(_("Warning"), |
156 |
|
|
- _("Error processing drive:\n\n" |
157 |
|
|
- "%(path)s\n%(size)-0.fMB\n%(description)s\n\n" |
158 |
|
|
- "This device may need to be reinitialized.\n\n" |
159 |
|
|
- "REINITIALIZING WILL CAUSE ALL DATA TO BE LOST!\n\n" |
160 |
|
|
- "This action may also be applied to all other disks " |
161 |
|
|
- "needing reinitialization.%(details)s") |
162 |
|
|
- % {'path': path, 'size': size, |
163 |
|
|
- 'description': description, 'details': details}, |
164 |
|
|
- type="custom", |
165 |
|
|
- custom_buttons = [ _("_Ignore"), |
166 |
|
|
- _("Ignore _all"), |
167 |
|
|
- _("_Re-initialize"), |
168 |
|
|
- _("Re-ini_tialize all") ], |
169 |
|
|
- custom_icon="question") |
170 |
|
|
- if rc == 0: |
171 |
|
|
- retVal = False |
172 |
|
|
- elif rc == 1: |
173 |
|
|
- path = "all" |
174 |
|
|
- retVal = False |
175 |
|
|
- elif rc == 2: |
176 |
|
|
- retVal = True |
177 |
|
|
- elif rc == 3: |
178 |
|
|
- path = "all" |
179 |
|
|
- retVal = True |
180 |
|
|
- |
181 |
|
|
- self._initLabelAnswers[path] = retVal |
182 |
|
|
- return retVal |
183 |
|
|
+ return False |
184 |
|
|
+ return True |
185 |
|
|
|
186 |
|
|
def resetReinitInconsistentLVMQuestion(self): |
187 |
|
|
self._inconsistentLVMAnswers = {} |