~ubuntu-branches/ubuntu/maverick/vm-builder/maverick

« back to all changes in this revision

Viewing changes to VMBuilder/plugins/ubuntu/distro.py

  • Committer: Bazaar Package Importer
  • Author(s): Soren Hansen
  • Date: 2010-02-24 23:52:03 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20100224235203-v513a24nfv66160q
Tags: 0.12.1-0ubuntu1
New upstream, bugfix-only release. (LP: #303882, #523589, #261702,
#284620, #527240, #527253)

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#
19
19
import logging
20
20
import os
21
 
import socket
22
 
import types
23
21
import shutil
24
22
import VMBuilder
25
23
from   VMBuilder           import register_distro, Distro
42
40
        group = self.setting_group('Package options')
43
41
        group.add_setting('addpkg', type='list', metavar='PKG', help='Install PKG into the guest (can be specfied multiple times).')
44
42
        group.add_setting('removepkg', type='list', metavar='PKG', help='Remove PKG from the guest (can be specfied multiple times)')
 
43
        group.add_setting('seedfile', metavar="SEEDFILE", help='Seed the debconf database with the contents of this seed file before installing packages')
45
44
 
46
45
        group = self.setting_group('General OS options')
47
46
        self.host_arch = run_cmd('dpkg', '--print-architecture').rstrip()
101
100
            self.set_setting_default('components',  components.split(','))
102
101
 
103
102
    def get_locale(self):
 
103
        lang = os.getenv('LANG')
 
104
        # People's $LANG looks different since lucid, but locale-gen still
 
105
        # wants the old format.
 
106
        if lang.endswith('utf8'):
 
107
            return lang[:-4] + 'UTF-8'
104
108
        return os.getenv('LANG')
105
109
 
106
110
    def preflight_check(self):
131
135
 
132
136
        self.context.virtio_net = self.use_virtio_net()
133
137
 
 
138
        # check if the seedfile exists if one is to be used
 
139
        seedfile = self.context.get_setting('seedfile')
 
140
        if seedfile and not os.path.exists(seedfile):
 
141
            raise VMBuilderUserError("Seedfile '%s' does not exist" % seedfile)
 
142
 
134
143
        lang = self.get_setting('lang')
135
144
        if lang:
136
145
            try:
137
146
                run_cmd('locale-gen', '%s' % lang)
138
 
            except VMBuilderException, e:
 
147
            except VMBuilderException:
139
148
                raise VMBuilderUserError("Unrecognised locale: '%s'" % (lang, ))
140
149
 
141
150
# FIXME
200
209
        self.suite.install_kernel(destdir)
201
210
 
202
211
    def install_bootloader(self, chroot_dir, disks):
 
212
        root_dev = VMBuilder.disk.bootpart(disks).get_grub_id()
 
213
 
203
214
        tmpdir = '/tmp/vmbuilder-grub'
204
215
        os.makedirs('%s%s' % (chroot_dir, tmpdir))
205
216
        self.context.add_clean_cb(self.install_bootloader_cleanup)
212
223
            devmap.write("(hd%d) %s\n" % (id, new_filename))
213
224
        devmap.close()
214
225
        self.suite.install_grub(chroot_dir)
215
 
        self.run_in_target('grub', '--device-map=%s' % devmapfile, '--batch',  stdin='''root (hd0,0)
 
226
        self.run_in_target('grub', '--device-map=%s' % devmapfile, '--batch',  stdin='''root %s
216
227
setup (hd0)
217
 
EOT''') 
 
228
EOT''' % root_dev) 
218
229
        self.suite.install_menu_lst(disks)
219
230
        self.install_bootloader_cleanup(chroot_dir)
220
231