Ejemplo n.º 1
0
    def testCopy(self):
        """
        Test that regular copying works.
        """
        # Prepare source
        data = "Everything starts somewhere, " + \
               "though many physicists disagree." + \
               "But people have always been dimly aware of the " + \
               "problem with the start of things." + \
               "They wonder how the snowplough driver gets to work, or " + \
               "how the makers of dictionaries look up the spelling of words."
        # (C) Terry Pratchet - Small Gods

        # Makes sure we round up to a complete block size
        data *= 512

        with temporaryPath(perms=0o666, data=data) as srcPath:
            with temporaryPath(perms=0o666) as dstPath:
                # Copy
                rc, out, err = misc.ddWatchCopy(srcPath, dstPath,
                                                None, len(data))

                # Get copied data
                readData = open(dstPath).read()

        # Comapre
        self.assertEquals(readData, data)
Ejemplo n.º 2
0
    def testCopy(self):
        """
        Test that regular copying works.
        """
        # Prepare source
        data = "Everything starts somewhere, " + \
               "though many physicists disagree." + \
               "But people have always been dimly aware of the " + \
               "problem with the start of things." + \
               "They wonder how the snowplough driver gets to work, or " + \
               "how the makers of dictionaries look up the spelling of words."
        # (C) Terry Pratchet - Small Gods

        # Makes sure we round up to a complete block size
        data *= 512

        with temporaryPath(perms=0o666, data=data) as srcPath:
            with temporaryPath(perms=0o666) as dstPath:
                # Copy
                rc, out, err = misc.ddWatchCopy(srcPath, dstPath,
                                                None, len(data))

                # Get copied data
                readData = open(dstPath).read()

        # Comapre
        self.assertEquals(readData, data)
Ejemplo n.º 3
0
 def testCopyUserModeToGroup(self):
     with temporaryPath() as path:
         for initialMode, expectedMode in self.modesList:
             os.chmod(path, initialMode)
             fileUtils.copyUserModeToGroup(path)
             self.assertEquals(os.stat(path).st_mode & self.MODE_MASK,
                               expectedMode)
Ejemplo n.º 4
0
    def testUpdateRead(self):
        data = """
        Aliquet. Aliquam eni ac nullam iaculis cras ante, adipiscing. Enim
        eget egestas pretium. Ultricies. Urna cubilia in, hac. Curabitur.
        Nibh. Purus ridiculus natoque sed id. Feugiat lacus quam, arcu
        maecenas nec egestas. Hendrerit duis nunc eget dis lacus porttitor per
        sodales class diam condimentum quisque condimentum nisi ligula.
        Dapibus blandit arcu nam non ac feugiat diam, dictumst. Ante eget
        fames eu penatibus in, porta semper accumsan adipiscing tellus in
        sagittis. Est parturient parturient mi fermentum commodo, per
        fermentum. Quis duis velit at quam risus mi. Facilisi id fames.
        Turpis, conubia rhoncus. Id. Elit eni tellus gravida, ut, erat morbi.
        Euismod, enim a ante vestibulum nibh. Curae curae primis vulputate
        adipiscing arcu ipsum suspendisse quam hymenaeos primis accumsan
        vestibulum.
        """
        self.assertTrue(len(data) > 512)

        with temporaryPath() as srcPath:
            with fileUtils.open_ex(srcPath, "wd") as f:
                f.write(data[:512])

            with fileUtils.open_ex(srcPath, "r+d") as f:
                f.seek(512)
                f.write(data[512:])

            with fileUtils.open_ex(srcPath, "r") as f:
                self.assertEquals(f.read(len(data)), data)
Ejemplo n.º 5
0
    def testUpdateRead(self):
        data = """
        Aliquet. Aliquam eni ac nullam iaculis cras ante, adipiscing. Enim
        eget egestas pretium. Ultricies. Urna cubilia in, hac. Curabitur.
        Nibh. Purus ridiculus natoque sed id. Feugiat lacus quam, arcu
        maecenas nec egestas. Hendrerit duis nunc eget dis lacus porttitor per
        sodales class diam condimentum quisque condimentum nisi ligula.
        Dapibus blandit arcu nam non ac feugiat diam, dictumst. Ante eget
        fames eu penatibus in, porta semper accumsan adipiscing tellus in
        sagittis. Est parturient parturient mi fermentum commodo, per
        fermentum. Quis duis velit at quam risus mi. Facilisi id fames.
        Turpis, conubia rhoncus. Id. Elit eni tellus gravida, ut, erat morbi.
        Euismod, enim a ante vestibulum nibh. Curae curae primis vulputate
        adipiscing arcu ipsum suspendisse quam hymenaeos primis accumsan
        vestibulum.
        """
        self.assertTrue(len(data) > 512)

        with temporaryPath() as srcPath:
            with fileUtils.open_ex(srcPath, "wd") as f:
                f.write(data[:512])

            with fileUtils.open_ex(srcPath, "r+d") as f:
                f.seek(512)
                f.write(data[512:])

            with fileUtils.open_ex(srcPath, "r") as f:
                self.assertEquals(f.read(len(data)), data)
Ejemplo n.º 6
0
 def testCopyUserModeToGroup(self):
     with temporaryPath() as path:
         for initialMode, expectedMode in self.modesList:
             os.chmod(path, initialMode)
             fileUtils.copyUserModeToGroup(path)
             self.assertEquals(
                 os.stat(path).st_mode & self.MODE_MASK, expectedMode)
Ejemplo n.º 7
0
    def testSmallWrites(self):
        data = """
        Aliquet habitasse tellus. Fringilla faucibus tortor parturient
        consectetuer sodales, venenatis platea habitant. Hendrerit nostra nunc
        odio. Primis porttitor consequat enim ridiculus. Taciti nascetur,
        nibh, convallis sit, cum dis mi. Nonummy justo odio cursus, ac hac
        curabitur nibh. Tellus. Montes, ut taciti orci ridiculus facilisis
        nunc. Donec. Risus adipiscing habitant donec vehicula non vitae class,
        porta vitae senectus. Nascetur felis laoreet integer, tortor ligula.
        Pellentesque vestibulum cras nostra. Ut sollicitudin posuere, per
        accumsan curabitur id, nisi fermentum vel, eget netus tristique per,
        donec, curabitur senectus ut fusce. A. Mauris fringilla senectus et
        eni facilisis magna inceptos eu, cursus habitant fringilla neque.
        Nibh. Elit facilisis sed, elit, nostra ve torquent dictumst, aenean
        sapien quam, habitasse in. Eu tempus aptent, diam, nisi risus
        pharetra, ac, condimentum orci, consequat mollis. Cras lacus augue
        ultrices proin fermentum nibh sed urna. Ve ipsum ultrices curae,
        feugiat faucibus proin et elementum vivamus, lectus. Torquent. Tempus
        facilisi. Cras suspendisse euismod consectetuer ornare nostra. Fusce
        amet cum amet diam.
        """
        self.assertTrue(len(data) > 512)

        with temporaryPath() as srcPath:
            with fileUtils.open_ex(srcPath, "dw") as f:
                f.write(data[:512])
                f.write(data[512:])

            with fileUtils.open_ex(srcPath, "r") as f:
                self.assertEquals(f.read(len(data)), data)
Ejemplo n.º 8
0
    def testSmallWrites(self):
        data = """
        Aliquet habitasse tellus. Fringilla faucibus tortor parturient
        consectetuer sodales, venenatis platea habitant. Hendrerit nostra nunc
        odio. Primis porttitor consequat enim ridiculus. Taciti nascetur,
        nibh, convallis sit, cum dis mi. Nonummy justo odio cursus, ac hac
        curabitur nibh. Tellus. Montes, ut taciti orci ridiculus facilisis
        nunc. Donec. Risus adipiscing habitant donec vehicula non vitae class,
        porta vitae senectus. Nascetur felis laoreet integer, tortor ligula.
        Pellentesque vestibulum cras nostra. Ut sollicitudin posuere, per
        accumsan curabitur id, nisi fermentum vel, eget netus tristique per,
        donec, curabitur senectus ut fusce. A. Mauris fringilla senectus et
        eni facilisis magna inceptos eu, cursus habitant fringilla neque.
        Nibh. Elit facilisis sed, elit, nostra ve torquent dictumst, aenean
        sapien quam, habitasse in. Eu tempus aptent, diam, nisi risus
        pharetra, ac, condimentum orci, consequat mollis. Cras lacus augue
        ultrices proin fermentum nibh sed urna. Ve ipsum ultrices curae,
        feugiat faucibus proin et elementum vivamus, lectus. Torquent. Tempus
        facilisi. Cras suspendisse euismod consectetuer ornare nostra. Fusce
        amet cum amet diam.
        """
        self.assertTrue(len(data) > 512)

        with temporaryPath() as srcPath:
            with fileUtils.open_ex(srcPath, "dw") as f:
                f.write(data[:512])
                f.write(data[512:])

            with fileUtils.open_ex(srcPath, "r") as f:
                self.assertEquals(f.read(len(data)), data)
Ejemplo n.º 9
0
 def testRead(self):
     data = """Vestibulum. Libero leo nostra, pede nunc eu. Pellentesque
     platea lacus morbi nisl montes ve. Ac. A, consectetuer erat, justo eu.
     Elementum et, phasellus fames et rutrum donec magnis eu bibendum. Arcu,
     ante aliquam ipsum ut facilisis ad."""
     with temporaryPath(data=data) as srcPath:
         # two nested withs to be py2.6 friendly.
         with fileUtils.open_ex(srcPath, "dr") as f:
             self.assertEquals(f.read(), data)
Ejemplo n.º 10
0
 def testRead(self):
     data = """Vestibulum. Libero leo nostra, pede nunc eu. Pellentesque
     platea lacus morbi nisl montes ve. Ac. A, consectetuer erat, justo eu.
     Elementum et, phasellus fames et rutrum donec magnis eu bibendum. Arcu,
     ante aliquam ipsum ut facilisis ad."""
     with temporaryPath(data=data) as srcPath:
         # two nested withs to be py2.6 friendly.
         with fileUtils.open_ex(srcPath, "dr") as f:
             self.assertEquals(f.read(), data)
Ejemplo n.º 11
0
 def testWrite(self):
     data = """In ut non platea egestas, quisque magnis nunc nostra ac etiam
     suscipit nec integer sociosqu. Fermentum. Ante orci luctus, ipsum
     ullamcorper enim arcu class neque inceptos class. Ut, sagittis
     torquent, commodo facilisi."""
     with temporaryPath() as srcPath:
         with fileUtils.open_ex(srcPath, "dw") as f:
             f.write(data)
         with fileUtils.open_ex(srcPath, "r") as f:
             self.assertEquals(f.read(len(data)), data)
Ejemplo n.º 12
0
 def testWrite(self):
     data = """In ut non platea egestas, quisque magnis nunc nostra ac etiam
     suscipit nec integer sociosqu. Fermentum. Ante orci luctus, ipsum
     ullamcorper enim arcu class neque inceptos class. Ut, sagittis
     torquent, commodo facilisi."""
     with temporaryPath() as srcPath:
         with fileUtils.open_ex(srcPath, "dw") as f:
             f.write(data)
         with fileUtils.open_ex(srcPath, "r") as f:
             self.assertEquals(f.read(len(data)), data)
Ejemplo n.º 13
0
    def testNames(self):
        # I convert to some id because I have no
        # idea what users are defined and what
        # there IDs are apart from root
        tmpId = 666
        with temporaryPath() as srcPath:
            fileUtils.chown(srcPath, tmpId, tmpId)
            stat = os.stat(srcPath)
            self.assertTrue(stat.st_uid == stat.st_gid == tmpId)

            fileUtils.chown(srcPath, "root", "root")
            stat = os.stat(srcPath)
            self.assertTrue(stat.st_uid == stat.st_gid == 0)
Ejemplo n.º 14
0
    def testNames(self):
        # I convert to some id because I have no
        # idea what users are defined and what
        # there IDs are apart from root
        tmpId = 666
        with temporaryPath() as srcPath:
            fileUtils.chown(srcPath, tmpId, tmpId)
            stat = os.stat(srcPath)
            self.assertTrue(stat.st_uid == stat.st_gid == tmpId)

            fileUtils.chown(srcPath, "root", "root")
            stat = os.stat(srcPath)
            self.assertTrue(stat.st_uid == stat.st_gid == 0)
Ejemplo n.º 15
0
    def testValidInput(self):
        """
        Test if method works when given a valid file.
        """
        #create
        writeData = ("Trust me, I know what self-loathing is,"
                     "but to kill myself? That would put a damper on my "
                     "search for answers. Not at all productive.")
        # (C) Jhonen Vasquez - Johnny the Homicidal Maniac
        with temporaryPath(data=writeData) as path:
            #read
            readData = misc.readfile(path)

        self.assertEquals(writeData, readData[0])
Ejemplo n.º 16
0
    def testNonAlignedCopy(self, sudo=False):
        """
        Test that copying a file with odd length works.
        """

        data = '- "What\'re quantum mechanics?"' + \
               '- "I don\'t know. People who repair quantums, I suppose."'
        # (C) Terry Pratchet - Small Gods

        # Make sure the length is appropriate
        if (len(data) % 512) == 0:
            data += "!"

        with temporaryPath(perms=0o666, data=data) as srcPath:
            with temporaryPath(perms=0o666) as dstPath:
                # Copy
                rc, out, err = misc.ddWatchCopy(srcPath, dstPath,
                                                None, len(data))

                # Get copied data
                readData = open(dstPath).read()

        # Compare
        self.assertEquals(readData, data)
Ejemplo n.º 17
0
    def testNonAlignedCopy(self, sudo=False):
        """
        Test that copying a file with odd length works.
        """

        data = '- "What\'re quantum mechanics?"' + \
               '- "I don\'t know. People who repair quantums, I suppose."'
        # (C) Terry Pratchet - Small Gods

        # Make sure the length is appropriate
        if (len(data) % 512) == 0:
            data += "!"

        with temporaryPath(perms=0o666, data=data) as srcPath:
            with temporaryPath(perms=0o666) as dstPath:
                # Copy
                rc, out, err = misc.ddWatchCopy(srcPath, dstPath,
                                                None, len(data))

                # Get copied data
                readData = open(dstPath).read()

        # Compare
        self.assertEquals(readData, data)
Ejemplo n.º 18
0
    def testVmWithCdrom(self, pathLocation):
        customization = {'vmId': '77777777-ffff-3333-bbbb-222222222222',
                         'devices': [],
                         'vmName':
                         'testVmWithCdrom_%s' % pathLocation,
                         'display': 'vnc'}

        # echo -n testPayload | md5sum
        # d37e46c24c78b1aed33496107afdb44b
        vmPayloadName = ('/var/run/vdsm/payload/%s.'
                         'd37e46c24c78b1aed33496107afdb44b'
                         '.img' % customization['vmId'])

        cdrom = {'index': '2', 'iface': 'ide', 'specParams':
                 {}, 'readonly': 'true', 'path':
                 '', 'device': 'cdrom', 'shared':
                 'false', 'type': 'disk'}

        with temporaryPath(0o666) as path:
            cdromPaths = {'self': {'path': path, 'specParams':
                                   {'path': '/dev/null'}},
                          'specParams': {'path': '', 'specParams':
                                         {'path': path}},
                          'vmPayload': {'path': '', 'specParams':
                                        {'path': '',
                                         'vmPayload': {'volId': 'testConfig',
                                                       'file': {'testPayload':
                                                                ''}}}}}
            cdrom.update(cdromPaths[pathLocation])
            customization['devices'].append(cdrom)

            with RunningVm(self.vdsm, customization) as vm:
                self._waitForStartup(vm, 10)

                status, msg, stats = self.vdsm.getVmList(vm)
                self.assertEqual(status, SUCCESS, msg)
                for device in stats['devices']:
                    if device['device'] == 'cdrom':
                        if 'vmPayload' in cdrom['specParams']:
                            cdrom['path'] = vmPayloadName
                        self.assertEqual(device['path'], cdrom['path'])
                        self.assertEqual(device['specParams']['path'],
                                         cdrom['specParams']['path'])
Ejemplo n.º 19
0
 def testSeekRead(self):
     data = """
     Habitasse ipsum at fusce litora metus, placerat dui purus aenean ante,
     ve. Pede hymenaeos ut primis cum, rhoncus, lectus, nunc. Vestibulum
     curabitur vitae etiam magna auctor velit, mi tempus vivamus orci eros.
     Pellentesque curabitur risus fermentum eget. Elementum curae, donec
     nisl egestas ve, ut odio eu nunc elit felis primis id. Ridiculus metus
     morbi nulla erat, amet nisi. Amet ligula nisi, id penatibus risus in.
     Purus velit duis. Aenean eget, pellentesque eu rhoncus arcu et
     consectetuer laoreet, augue nisi dictum lacinia urna. Fermentum
     torquent. Ut interdum vivamus duis. Felis consequat nec pede. Orci
     sollicitudin parturient orci felis. Enim, diam velit sapien
     condimentum fames semper nibh. Integer at, egestas pede consectetuer
     ac augue pharetra dolor non placerat quisque id cursus ultricies.
     Ligula mi senectus sit. Habitasse. Integer sollicitudin dapibus cum
     quam.
     """
     self.assertTrue(len(data) > 512)
     with temporaryPath(data=data) as srcPath:
         # two nested withs to be py2.6 friendly.
         with fileUtils.open_ex(srcPath, "dr") as f:
             f.seek(512)
             self.assertEquals(f.read(), data[512:])
Ejemplo n.º 20
0
 def testSeekRead(self):
     data = """
     Habitasse ipsum at fusce litora metus, placerat dui purus aenean ante,
     ve. Pede hymenaeos ut primis cum, rhoncus, lectus, nunc. Vestibulum
     curabitur vitae etiam magna auctor velit, mi tempus vivamus orci eros.
     Pellentesque curabitur risus fermentum eget. Elementum curae, donec
     nisl egestas ve, ut odio eu nunc elit felis primis id. Ridiculus metus
     morbi nulla erat, amet nisi. Amet ligula nisi, id penatibus risus in.
     Purus velit duis. Aenean eget, pellentesque eu rhoncus arcu et
     consectetuer laoreet, augue nisi dictum lacinia urna. Fermentum
     torquent. Ut interdum vivamus duis. Felis consequat nec pede. Orci
     sollicitudin parturient orci felis. Enim, diam velit sapien
     condimentum fames semper nibh. Integer at, egestas pede consectetuer
     ac augue pharetra dolor non placerat quisque id cursus ultricies.
     Ligula mi senectus sit. Habitasse. Integer sollicitudin dapibus cum
     quam.
     """
     self.assertTrue(len(data) > 512)
     with temporaryPath(data=data) as srcPath:
         # two nested withs to be py2.6 friendly.
         with fileUtils.open_ex(srcPath, "dr") as f:
             f.seek(512)
             self.assertEquals(f.read(), data[512:])
Ejemplo n.º 21
0
 def testStringAsDrive(self):
     with temporaryPath() as f:
         volPath = self.cif.prepareVolumePath(f)
         self.assertEquals(volPath, f)
Ejemplo n.º 22
0
 def test(self):
     targetId = 666
     with temporaryPath() as srcPath:
         fileUtils.chown(srcPath, targetId, targetId)
         stat = os.stat(srcPath)
         self.assertTrue(stat.st_uid == stat.st_gid == targetId)
Ejemplo n.º 23
0
 def test(self):
     targetId = 666
     with temporaryPath() as srcPath:
         fileUtils.chown(srcPath, targetId, targetId)
         stat = os.stat(srcPath)
         self.assertTrue(stat.st_uid == stat.st_gid == targetId)
Ejemplo n.º 24
0
    def testVmWithCdrom(self, pathLocation):
        customization = {
            'vmId': '77777777-ffff-3333-bbbb-222222222222',
            'devices': [],
            'vmName': 'testVmWithCdrom_%s' % pathLocation,
            'display': 'vnc'
        }

        # echo -n testPayload | md5sum
        # d37e46c24c78b1aed33496107afdb44b
        vmPayloadName = ('/var/run/vdsm/payload/%s.'
                         'd37e46c24c78b1aed33496107afdb44b'
                         '.img' % customization['vmId'])

        cdrom = {
            'index': '2',
            'iface': 'ide',
            'specParams': {},
            'readonly': 'true',
            'path': '',
            'device': 'cdrom',
            'shared': 'false',
            'type': 'disk'
        }

        with temporaryPath(0o666) as path:
            cdromPaths = {
                'self': {
                    'path': path,
                    'specParams': {
                        'path': '/dev/null'
                    }
                },
                'specParams': {
                    'path': '',
                    'specParams': {
                        'path': path
                    }
                },
                'vmPayload': {
                    'path': '',
                    'specParams': {
                        'path': '',
                        'vmPayload': {
                            'volId': 'testConfig',
                            'file': {
                                'testPayload': ''
                            }
                        }
                    }
                }
            }
            cdrom.update(cdromPaths[pathLocation])
            customization['devices'].append(cdrom)

            with RunningVm(self.vdsm, customization) as vm:
                self._waitForStartup(vm, 10)

                status, msg, stats = self.vdsm.getVmList(vm)
                self.assertEqual(status, SUCCESS, msg)
                for device in stats['devices']:
                    if device['device'] == 'cdrom':
                        if 'vmPayload' in cdrom['specParams']:
                            cdrom['path'] = vmPayloadName
                        self.assertEqual(device['path'], cdrom['path'])
                        self.assertEqual(device['specParams']['path'],
                                         cdrom['specParams']['path'])
Ejemplo n.º 25
0
 def testStringAsDrive(self):
     with temporaryPath() as f:
         volPath = self.cif.prepareVolumePath(f)
         self.assertEquals(volPath, f)