def _statvfs_data(vol): gvol = Volume("localhost", vol["name"]) gvol.mount() statvfs_data = gvol.statvfs("/") gvol.umount() data = { "volume": vol["name"], "status": vol["status"], "type": vol["type"], "num_bricks": vol["num_bricks"], "size": ((statvfs_data.f_blocks - (statvfs_data.f_bfree - statvfs_data.f_bavail)) * statvfs_data.f_bsize), "avail": statvfs_data.f_bavail * statvfs_data.f_bsize, "itotal": (statvfs_data.f_files - (statvfs_data.f_ffree - statvfs_data.f_favail)), "iavail": statvfs_data.f_favail } data["used"] = data["size"] - data["avail"] data["iused"] = data["itotal"] - data["iavail"] data["pcent"] = 0 data["ipcent"] = 0 if data["size"] > 0: data["pcent"] = data["used"] * 100 / data["size"] if data["itotal"] > 0: data["ipcent"] = data["iused"] * 100 / data["itotal"] data['pcent'] = "%s%%" % data['pcent'] data['ipcent'] = "%s%%" % data['ipcent'] return data
def test_mount_umount_success(self): v = Volume("host", "vol") v.mount() self.assertTrue(v.mounted) self.assertTrue(v.fs) v.umount() self.assertFalse(v.mounted) self.assertFalse(v.fs)
def test_mount_multiple_hosts(self): _m_set_vol = Mock(return_value=0) with patch("gluster.gfapi.api.glfs_set_volfile_server", _m_set_vol): hosts = ["host1", "host2"] v = Volume(hosts, "vol") v.mount() self.assertEqual(_m_set_vol.call_count, len(hosts)) v.umount()
def test_unix_socket_mount(self): if not os.access(GLUSTERD_SOCK_FILE, os.R_OK | os.W_OK): raise SkipTest("Unix socket file %s not accessible" % GLUSTERD_SOCK_FILE) vol = Volume(GLUSTERD_SOCK_FILE, VOLNAME, proto="unix") vol.mount() self.assertTrue(vol.mounted) vol.umount() self.assertFalse(vol.mounted)
def test_get_volume_id(self): vol = Volume(HOST, VOLNAME) vol.mount() self.assertTrue(vol.mounted) self.assertTrue(vol.volid == None) volid = vol.get_volume_id() self.assertTrue(volid != None) try: volid = uuid.UUID(str(volid)) except ValueError: self.fail("Invalid UUID") self.assertTrue(vol.volid != None) vol.umount()
def test_set_logging(self): # Create volume object instance vol = Volume(HOST, VOLNAME) # Call set_logging before mount() log_file = "/tmp/%s" % (uuid4().hex) vol.set_logging(log_file, 7) # Mount the volume vol.mount() self.assertTrue(vol.mounted) self.assertEqual(vol.log_file, log_file) self.assertEqual(vol.log_level, 7) # Check that log has been created and exists self.assertTrue(os.path.exists(log_file)) # Change the logging after mounting log_file2 = "/tmp/%s" % (uuid4().hex) vol.set_logging(log_file2, 7) self.assertEqual(vol.log_file, log_file2) # Unmount the volume vol.umount() self.assertFalse(vol.mounted)
def test_mount_umount_default(self): # Create volume object instance vol = Volume(HOST, VOLNAME) # Check attribute init self.assertEqual(vol.log_file, "/dev/null") self.assertEqual(vol.log_level, 7) self.assertEqual(vol.hosts[0], HOST) self.assertEqual(vol.volname, VOLNAME) self.assertEqual(vol.port, 24007) self.assertFalse(vol.mounted) # Mount the volume vol.mount() # Check mounted property self.assertTrue(vol.mounted) # Unmount the volume vol.umount() # Check mounted property again self.assertFalse(vol.mounted) # Do a double umount - should not crash or raise exception vol.umount() self.assertFalse(vol.mounted) # Do a double mount - should not crash or raise exception vol.mount() vol.mount() self.assertTrue(vol.mounted) # Unmount the volume vol.umount() self.assertFalse(vol.mounted)
def test_mount_umount_default(self): # Create volume object instance vol = Volume(HOST, VOLNAME) # Check attribute init self.assertEqual(vol.log_file, None) self.assertEqual(vol.log_level, 7) self.assertEqual(vol.host, HOST) self.assertEqual(vol.volname, VOLNAME) self.assertEqual(vol.port, 24007) self.assertFalse(vol.mounted) # Mount the volume vol.mount() # Check mounted property self.assertTrue(vol.mounted) # Unmount the volume vol.umount() # Check mounted property again self.assertFalse(vol.mounted) # Do a double umount - should not crash or raise exception vol.umount() self.assertFalse(vol.mounted) # Do a double mount - should not crash or raise exception vol.mount() vol.mount() self.assertTrue(vol.mounted) # Unmount the volume vol.umount() self.assertFalse(vol.mounted)
def test_unix_socket_mount(self): vol = Volume(GLUSTERD_SOCK_FILE, VOLNAME, proto="unix") vol.mount() self.assertTrue(vol.mounted) vol.umount() self.assertFalse(vol.mounted)