summaryrefslogtreecommitdiff
path: root/vmdebootstrap
diff options
context:
space:
mode:
authorNeil Williams <codehelp@debian.org>2014-12-30 21:34:05 +0000
committerNeil Williams <codehelp@debian.org>2015-01-02 10:39:35 +0000
commit827ae8e56e5669ac0488e0876e672adb8ead4d47 (patch)
treea8ffb6af0612b638f61ff6b1c3905f768535cd12 /vmdebootstrap
parent075e61745a15d15cda9fa756127f7136b813a3ac (diff)
downloadvmdebootstrap-827ae8e56e5669ac0488e0876e672adb8ead4d47.tar.gz
Allow chown to operate with tarballs
Ensure apt has usable lists by running update in configure_apt. Fix typo in installed_packages.
Diffstat (limited to 'vmdebootstrap')
-rwxr-xr-xvmdebootstrap24
1 files changed, 16 insertions, 8 deletions
diff --git a/vmdebootstrap b/vmdebootstrap
index 500fa77..b66a84e 100755
--- a/vmdebootstrap
+++ b/vmdebootstrap
@@ -164,7 +164,7 @@ class VmDebootstrap(cliapp.Application): # pylint: disable=too-many-public-meth
'Install and configure grub2 - disables extlinux.')
self.settings.boolean(
['sparse'],
- 'Dont fill the image with zeros to keep a sparse disk image',
+ 'Do not fill the image with zeros to keep a sparse disk image',
default=False)
self.settings.boolean(
['pkglist'],
@@ -341,8 +341,8 @@ class VmDebootstrap(cliapp.Application): # pylint: disable=too-many-public-meth
self.message('Installing MBR')
self.runcmd(['install-mbr', self.settings['image']])
else:
- msg = "mbr enabled but /sbin/install-mbr not found"
- " - please install the mbr package."
+ msg = "mbr enabled but /sbin/install-mbr not found" \
+ " - please install the mbr package."
raise cliapp.AppException(msg)
def setup_kpartx(self):
@@ -360,7 +360,9 @@ class VmDebootstrap(cliapp.Application): # pylint: disable=too-many-public-meth
for line in out.splitlines()
if line.startswith('add map ')]
if len(devices) != parts:
- raise cliapp.AppException('Surprising number of partitions')
+ msg = 'Surprising number of partitions'
+ logging.debug("%s: devices=%s parts=%s", msg, devices, parts)
+ raise cliapp.AppException(msg)
root = '/dev/mapper/%s' % devices[rootindex]
if self.settings['bootsize']:
boot = '/dev/mapper/%s' % devices[bootindex]
@@ -701,16 +703,20 @@ append initrd=%(initrd)s root=UUID=%(uuid)s ro %(kserial)s
def chown(self):
# Change image owner after completed build
+ if self.settings['image']:
+ filename = self.settings['image']
+ elif self.settings['tarball']:
+ filename = self.settings['tarball']
+ else:
+ return
self.message("Changing owner to %s" % self.settings["owner"])
- subprocess.call(["chown",
- self.settings["owner"],
- self.settings["image"]])
+ subprocess.call(["chown", self.settings["owner"], filename])
def list_installed_pkgs(self, rootdir):
# output the list of installed packages for sources identification
self.message("Creating a list of installed binary package names")
out = self.runcmd(['chroot', rootdir,
- 'dpkg-query', '-W' "-f='${Package}.deb\n'"])
+ 'dpkg-query', '-W', "-f='${Package}.deb\n'"])
with open('dpkg.list', 'w') as dpkg:
dpkg.write(out)
@@ -730,6 +736,8 @@ append initrd=%(initrd)s root=UUID=%(uuid)s ro %(kserial)s
line = '#deb-src %s %s main\n' % (mirror, self.settings['distribution'])
f.write(line)
f.close()
+ # ensure the apt sources have valid lists
+ self.runcmd(['chroot', rootdir, 'apt-get', 'update'])
if __name__ == '__main__':
VmDebootstrap(version=__version__).run()