def test_user_data_vsphere_mcb_fail(self, m_mount_cb, m_find_devs_with): '''Test user_data_vsphere() where mount_cb fails.''' m_find_devs_with.return_value = ["/dev/mock/cdrom"] m_mount_cb.side_effect = util.MountFailedError("Unable To mount") dsrc = dsac.DataSourceAltCloud({}, None, self.paths) self.assertEqual(False, dsrc.user_data_vsphere()) self.assertEqual(1, m_find_devs_with.call_count) self.assertEqual(1, m_mount_cb.call_count)
def mount_cb(device, callback, data=None, rw=False, mtype=None, sync=True): """ Mount the device, call method 'callback' passing the directory in which it was mounted, then unmount. Return whatever 'callback' returned. If data != None, also pass data to callback. """ mounted = mounts() with util.tempdir() as tmpd: umount = False devname = "/dev/" + device if device in mounted: mountpoint = mounted[device]['mountpoint'] elif devname in mounted: mountpoint = mounted[devname]['mountpoint'] else: try: mountcmd = ['/usr/sbin/mount'] mountopts = [] if rw: mountopts.append('rw') else: mountopts.append('ro') if sync: # This seems like the safe approach to do # (ie where this is on by default) mountopts.append("sync") if mountopts: mountcmd.extend(["-o", ",".join(mountopts)]) if mtype: mountcmd.extend(['-t', mtype]) if "/cd" in devname: mountcmd.append('-vcdrfs') mountcmd.append(devname) else: mountcmd.append(device) mountcmd.append(tmpd) util.subp(mountcmd) umount = tmpd # This forces it to be unmounted (when set) mountpoint = tmpd except (IOError, OSError) as exc: raise util.MountFailedError( ("Failed mounting %s to %s due to: %s") % (device, tmpd, exc)) # Be nice and ensure it ends with a slash if not mountpoint.endswith("/"): mountpoint += "/" with unmounter(umount): if data is None: ret = callback(mountpoint) else: ret = callback(mountpoint, data) return ret
def test_mount_cb_fails(self): '''Test user_data_rhevm() where mount_cb fails.''' self.m_mount_cb.side_effect = util.MountFailedError("Failed Mount") dsrc = dsac.DataSourceAltCloud({}, None, self.paths) self.assertEqual(False, dsrc.user_data_rhevm())