Exemple #1
0
    def test_create_configdrive_vfat(self):
        imagefile = None
        try:
            self.mox.StubOutWithMock(utils, 'mkfs')
            self.mox.StubOutWithMock(utils, 'execute')
            self.mox.StubOutWithMock(utils, 'trycmd')

            utils.mkfs('vfat', mox.IgnoreArg(),
                       label='config-2').AndReturn(None)
            utils.trycmd('mount', '-o', mox.IgnoreArg(), mox.IgnoreArg(),
                         mox.IgnoreArg(),
                         run_as_root=True).AndReturn((None, None))
            utils.execute('umount', mox.IgnoreArg(),
                          run_as_root=True).AndReturn(None)

            self.mox.ReplayAll()

            with configdrive.ConfigDriveBuilder() as c:
                c._add_file('this/is/a/path/hello', 'This is some content')
                (fd, imagefile) = tempfile.mkstemp(prefix='cd_vfat_')
                os.close(fd)
                c._make_vfat(imagefile)

            # Check cleanup
            self.assertFalse(os.path.exists(c.tempdir))

            # NOTE(mikal): we can't check for a VFAT output here because the
            # filesystem creation stuff has been mocked out because it
            # requires root permissions

        finally:
            if imagefile:
                utils.delete_if_exists(imagefile)
Exemple #2
0
    def test_create_configdrive_iso(self):
        imagefile = None

        try:
            self.mox.StubOutWithMock(utils, 'execute')

            utils.execute('genisoimage', '-o', mox.IgnoreArg(), '-ldots',
                          '-allow-lowercase', '-allow-multidot', '-l',
                          '-publisher', mox.IgnoreArg(), '-quiet', '-J', '-r',
                          '-V', 'config-2', mox.IgnoreArg(), attempts=1,
                          run_as_root=False).AndReturn(None)

            self.mox.ReplayAll()

            c = configdrive.ConfigDriveBuilder()
            c._add_file('this/is/a/path/hello', 'This is some content')
            (fd, imagefile) = tempfile.mkstemp(prefix='cd_iso_')
            os.close(fd)
            c._make_iso9660(imagefile)
            c.cleanup()

            # Check cleanup
            self.assertFalse(os.path.exists(c.tempdir))

        finally:
            if imagefile:
                utils.delete_if_exists(imagefile)
Exemple #3
0
    def test_create_configdrive_iso(self):
        imagefile = None

        try:
            self.mox.StubOutWithMock(utils, 'execute')

            utils.execute('genisoimage', '-o', mox.IgnoreArg(), '-ldots',
                          '-allow-lowercase', '-allow-multidot', '-l',
                          '-publisher', mox.IgnoreArg(), '-quiet', '-J', '-r',
                          '-V', 'config-2', mox.IgnoreArg(), attempts=1,
                          run_as_root=False).AndReturn(None)

            self.mox.ReplayAll()

            with configdrive.ConfigDriveBuilder() as c:
                c._add_file('this/is/a/path/hello', 'This is some content')
                (fd, imagefile) = tempfile.mkstemp(prefix='cd_iso_')
                os.close(fd)
                c._make_iso9660(imagefile)

            # Check cleanup
            self.assertFalse(os.path.exists(c.tempdir))

        finally:
            if imagefile:
                utils.delete_if_exists(imagefile)
Exemple #4
0
    def cleanup(self):
        if self.imagefile:
            utils.delete_if_exists(self.imagefile)

        try:
            shutil.rmtree(self.tempdir)
        except OSError, e:
            LOG.error(_('Could not remove tmpdir: %s'), str(e))
Exemple #5
0
    def cleanup(self):
        if self.imagefile:
            utils.delete_if_exists(self.imagefile)

        try:
            shutil.rmtree(self.tempdir)
        except OSError, e:
            LOG.error(_('Could not remove tmpdir: %s'), str(e))
Exemple #6
0
 def _can_fallocate(self):
     """Check once per class, whether fallocate(1) is available,
        and that the instances directory supports fallocate(2).
     """
     can_fallocate = getattr(self.__class__, "can_fallocate", None)
     if can_fallocate is None:
         _out, err = utils.trycmd("fallocate", "-n", "-l", "1", self.path + ".fallocate_test")
         utils.delete_if_exists(self.path + ".fallocate_test")
         can_fallocate = not err
         self.__class__.can_fallocate = can_fallocate
         if not can_fallocate:
             LOG.error("Unable to preallocate_images=%s at path: %s" % (CONF.preallocate_images, self.path))
     return can_fallocate
Exemple #7
0
 def _can_fallocate(self):
     """Check once per class, whether fallocate(1) is available,
        and that the instances directory supports fallocate(2).
     """
     can_fallocate = getattr(self.__class__, 'can_fallocate', None)
     if can_fallocate is None:
         _out, err = utils.trycmd('fallocate', '-n', '-l', '1',
                                  self.path + '.fallocate_test')
         utils.delete_if_exists(self.path + '.fallocate_test')
         can_fallocate = not err
         self.__class__.can_fallocate = can_fallocate
         if not can_fallocate:
             LOG.error('Unable to preallocate_images=%s at path: %s' %
                       (CONF.preallocate_images, self.path))
     return can_fallocate
Exemple #8
0
 def _can_fallocate(self):
     """Check once per class, whether fallocate(1) is available,
        and that the instances directory supports fallocate(2).
     """
     can_fallocate = getattr(self.__class__, 'can_fallocate', None)
     if can_fallocate is None:
         _out, err = utils.trycmd('fallocate', '-n', '-l', '1',
                                  self.path + '.fallocate_test')
         utils.delete_if_exists(self.path + '.fallocate_test')
         can_fallocate = not err
         self.__class__.can_fallocate = can_fallocate
         if not can_fallocate:
             LOG.error('Unable to preallocate_images=%s at path: %s' %
                       (CONF.preallocate_images, self.path))
     return can_fallocate
Exemple #9
0
    def test_create_configdrive_vfat(self):
        imagefile = None
        try:
            self.mox.StubOutWithMock(virtutils, 'mkfs')
            self.mox.StubOutWithMock(utils, 'execute')
            self.mox.StubOutWithMock(utils, 'trycmd')

            virtutils.mkfs('vfat', mox.IgnoreArg(),
                           label='config-2').AndReturn(None)
            utils.trycmd('mount',
                         '-o',
                         'loop',
                         mox.IgnoreArg(),
                         mox.IgnoreArg(),
                         run_as_root=True).AndReturn((None, None))
            utils.trycmd('chown',
                         mox.IgnoreArg(),
                         mox.IgnoreArg(),
                         run_as_root=True).AndReturn((None, None))
            utils.execute('umount', mox.IgnoreArg(),
                          run_as_root=True).AndReturn(None)

            self.mox.ReplayAll()

            c = configdrive.ConfigDriveBuilder()
            c._add_file('this/is/a/path/hello', 'This is some content')
            (fd, imagefile) = tempfile.mkstemp(prefix='cd_vfat_')
            os.close(fd)
            c._make_vfat(imagefile)
            c.cleanup()

            # Check cleanup
            self.assertFalse(os.path.exists(c.tempdir))

            # NOTE(mikal): we can't check for a VFAT output here because the
            # filesystem creation stuff has been mocked out because it
            # requires root permissions

        finally:
            if imagefile:
                utils.delete_if_exists(imagefile)