Exemplo n.º 1
0
 def test_set_logging_err(self):
     v = Volume("host", "vol")
     v.fs = 12345
     _m_set_logging = Mock(return_value=-1)
     with patch("gluster.gfapi.api.glfs_set_logging", _m_set_logging):
         self.assertRaises(LibgfapiException, v.set_logging, "/dev/null", 7)
         _m_set_logging.assert_called_once_with(v.fs, None, 7)
Exemplo n.º 2
0
    def test_mount_error(self):
        # glfs_new() failed
        _m_glfs_new = Mock(return_value=None)
        v = Volume("host", "vol")
        with patch("gluster.gfapi.api.glfs_new", _m_glfs_new):
            self.assertRaises(LibgfapiException, v.mount)
            self.assertFalse(v.fs)
            self.assertFalse(v.mounted)
            _m_glfs_new.assert_called_once_with("vol")

        # glfs_set_volfile_server() failed
        _m_set_vol = Mock(return_value=-1)
        v = Volume("host", "vol")
        with patch("gluster.gfapi.api.glfs_set_volfile_server", _m_set_vol):
            self.assertRaises(LibgfapiException, v.mount)
            self.assertFalse(v.mounted)
            _m_glfs_new.assert_called_once_with("vol")
            _m_set_vol.assert_called_once_with(v.fs, v.protocol, v.host,
                                               v.port)

        # glfs_init() failed
        _m_glfs_init = Mock(return_value=-1)
        v = Volume("host", "vol")
        with patch("gluster.gfapi.api.glfs_init", _m_glfs_init):
            self.assertRaises(LibgfapiException, v.mount)
            self.assertFalse(v.mounted)
            _m_glfs_init.assert_called_once_with(v.fs)
Exemplo n.º 3
0
 def test_set_logging_err(self):
     v = Volume("host", "vol")
     v.fs = 12345
     _m_set_logging = Mock(return_value=-1)
     with patch("gluster.gfapi.api.glfs_set_logging", _m_set_logging):
         self.assertRaises(LibgfapiException, v.set_logging, "/dev/null", 7)
         _m_set_logging.assert_called_once_with(v.fs, None, 7)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 7
0
 def test_umount_error(self):
     v = Volume("host", "vol")
     v.mount()
     _m_glfs_fini = Mock(return_value=-1)
     with patch("gluster.gfapi.api.glfs_fini", _m_glfs_fini):
         self.assertRaises(LibgfapiException, v.umount)
         _m_glfs_fini.assert_called_once_with(v.fs)
         # Should still be mounted as umount failed.
         self.assertTrue(v.mounted)
Exemplo n.º 8
0
 def test_umount_error(self):
     v = Volume("host", "vol")
     v.mount()
     _m_glfs_fini = Mock(return_value=-1)
     with patch("gluster.gfapi.api.glfs_fini", _m_glfs_fini):
         self.assertRaises(LibgfapiException, v.umount)
         _m_glfs_fini.assert_called_once_with(v.fs)
         # Should still be mounted as umount failed.
         self.assertTrue(v.mounted)
Exemplo n.º 9
0
    def test_set_logging(self):
        _m_set_logging = Mock()

        # Called after mount()
        v = Volume("host", "vol")
        with patch("gluster.gfapi.api.glfs_set_logging", _m_set_logging):
            v.mount()
            v.set_logging("/path/whatever", 7)
            self.assertEqual(v.log_file, "/path/whatever")
            self.assertEqual(v.log_level, 7)
Exemplo n.º 10
0
 def test_mount_multiple(self):
     _m_glfs_new = Mock()
     v = Volume("host", "vol")
     with patch("gluster.gfapi.api.glfs_new", _m_glfs_new):
         # Mounting for first time
         v.mount()
         _m_glfs_new.assert_called_once_with("vol")
         _m_glfs_new.reset_mock()
         for i in range(0, 5):
             v.mount()
             self.assertFalse(_m_glfs_new.called)
             self.assertTrue(v.mounted)
Exemplo n.º 11
0
    def test_mount_err(self):
        # Volume does not exist
        fake_volname = str(uuid4().hex)[:10]
        vol = Volume(HOST, fake_volname)
        self.assertRaises(LibgfapiException, vol.mount)
        self.assertFalse(vol.mounted)

        # Invalid host - glfs_set_volfile_server will fail
        fake_hostname = str(uuid4().hex)[:10]
        vol = Volume(fake_hostname, VOLNAME)
        self.assertRaises(LibgfapiException, vol.mount)
        self.assertFalse(vol.mounted)
Exemplo n.º 12
0
    def setUpClass(cls):
        cls._saved_glfs_new = gluster.gfapi.api.glfs_new
        gluster.gfapi.api.glfs_new = _mock_glfs_new

        cls._saved_glfs_set_volfile_server = \
            gluster.gfapi.api.glfs_set_volfile_server
        gluster.gfapi.api.glfs_set_volfile_server = \
            _mock_glfs_set_volfile_server

        cls._saved_glfs_init = gluster.gfapi.api.glfs_init
        gluster.gfapi.api.glfs_init = _mock_glfs_init

        cls._saved_glfs_fini = gluster.gfapi.api.glfs_fini
        gluster.gfapi.api.glfs_fini = _mock_glfs_fini

        cls._saved_glfs_close = gluster.gfapi.api.glfs_close
        gluster.gfapi.api.glfs_close = _mock_glfs_close

        cls._saved_glfs_closedir = gluster.gfapi.api.glfs_closedir
        gluster.gfapi.api.glfs_closedir = _mock_glfs_closedir

        cls._saved_glfs_set_logging = gluster.gfapi.api.glfs_set_logging
        gluster.gfapi.api.glfs_set_logging = _mock_glfs_set_logging

        cls.vol = Volume("mockhost", "test")
        cls.vol.fs = 12345
        cls.vol._mounted = True
Exemplo n.º 13
0
 def test_initialization_success(self):
     v = Volume("host", "vol", "tcp", 9876)
     self.assertEqual(v.host, "host")
     self.assertEqual(v.volname, "vol")
     self.assertEqual(v.protocol, "tcp")
     self.assertEqual(v.port, 9876)
     self.assertFalse(v.mounted)
Exemplo n.º 14
0
 def setUpClass(cls):
     cls.vol = Volume(HOST, VOLNAME)
     ret = cls.vol.mount()
     if ret == 0:
         # Cleanup volume
         cls.vol.rmtree("/", ignore_errors=True)
     cls.testfile = "testfile"
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
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
Exemplo n.º 17
0
 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()
Exemplo n.º 18
0
 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)
Exemplo n.º 19
0
 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_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)
Exemplo n.º 21
0
 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()
Exemplo n.º 22
0
    def test_set_logging(self):
        _m_set_logging = Mock()

        # Called after mount()
        v = Volume("host", "vol")
        with patch("gluster.gfapi.api.glfs_set_logging", _m_set_logging):
            v.mount()
            v.set_logging("/path/whatever", 7)
            self.assertEqual(v.log_file, "/path/whatever")
            self.assertEqual(v.log_level, 7)
Exemplo n.º 23
0
 def test_mount_multiple(self):
     _m_glfs_new = Mock()
     v = Volume("host", "vol")
     with patch("gluster.gfapi.api.glfs_new", _m_glfs_new):
         # Mounting for first time
         v.mount()
         _m_glfs_new.assert_called_once_with("vol")
         _m_glfs_new.reset_mock()
         for i in range(0, 5):
             v.mount()
             self.assertFalse(_m_glfs_new.called)
             self.assertTrue(v.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()
Exemplo n.º 25
0
 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)
Exemplo n.º 27
0
 def setUpClass(cls):
     cls.vol = Volume(HOST, VOLNAME)
     cls.vol.mount()
     # Cleanup volume
     cls.vol.rmtree("/", ignore_errors=True)
Exemplo n.º 28
0
 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)