예제 #1
0
    def test_mount_egain(self):
        try:
            tmpdir = mkdtemp()
            root = os.path.join(tmpdir, 'mnt/gluster-object')
            drive = 'test'

            _init_mock_variables(tmpdir)
            assert gfs.mount(root, drive)
            fcntl.lockf = mock_fcntl_lockf
            assert gfs.mount(root, drive)
        finally:
            shutil.rmtree(tmpdir)
예제 #2
0
    def test_mount_egain(self):
        try:
            tmpdir = mkdtemp()
            root   = os.path.join(tmpdir, 'mnt/gluster-object')
            drive  = 'test'

            _init_mock_variables(tmpdir)
            assert gfs.mount(root, drive)
            fcntl.lockf  = mock_fcntl_lockf
            assert gfs.mount(root, drive)
        finally:
            shutil.rmtree(tmpdir)
예제 #3
0
def gluster_check_mount(root, drive):
    # FIXME: Potential performance optimization here to not call the original
    # check mount which makes two stat calls. We could do what they do with
    # just one.
    if __check_mount(root, drive):
        return True

    return Glusterfs.mount(root, drive)
예제 #4
0
def gluster_check_mount(root, drive):
    # FIXME: Potential performance optimization here to not call the original
    # check mount which makes two stat calls. We could do what they do with
    # just one.
    if __check_mount(root, drive):
        return True

    return Glusterfs.mount(root, drive)
예제 #5
0
    def test_invalid_drive_name(self):
        try:
            tmpdir = mkdtemp()
            root = os.path.join(tmpdir, 'mnt/gluster-object')
            drive = 'te st'

            _init_mock_variables(tmpdir)
            self.assertFalse(gfs.mount(root, drive))
        finally:
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #6
0
    def test_mount(self):
        try:
            tmpdir = mkdtemp()
            root   = os.path.join(tmpdir, 'mnt/gluster-object')
            drive  = 'test'

            _init_mock_variables(tmpdir)
            assert gfs.mount(root, drive)
        finally:
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #7
0
    def test_busy_wait_timeout(self):
        os.path.ismount = mock_os_path_ismount_false

        # setup time mock
        real_time_sleep = time.sleep
        time.sleep = mock_time_sleep

        try:
            self.assertFalse(gfs._busy_wait("/"))
        finally:
            time.sleep = real_time_sleep
예제 #8
0
    def test_mount_get_export_list_err(self):
        try:
            tmpdir = mkdtemp()
            root = os.path.join(tmpdir, 'mnt/gluster-object')
            drive = 'test3'

            _init_mock_variables(tmpdir)
            gfs._get_export_list = mock_get_export_list
            assert not gfs.mount(root, drive)
        finally:
            shutil.rmtree(tmpdir)
예제 #9
0
    def test_busy_wait_timeout(self):
        os.path.ismount = mock_os_path_ismount_false

        # setup time mock
        real_time_sleep = time.sleep
        time.sleep = mock_time_sleep

        try:
            self.assertFalse(gfs._busy_wait("/"))
        finally:
            time.sleep = real_time_sleep
예제 #10
0
    def test_mount_get_export_list_err(self):
        try:
            tmpdir = mkdtemp()
            root   = os.path.join(tmpdir, 'mnt/gluster-object')
            drive  = 'test3'

            _init_mock_variables(tmpdir)
            gfs._get_export_list = mock_get_export_list
            assert not gfs.mount(root, drive)
        finally:
            shutil.rmtree(tmpdir)
예제 #11
0
    def test_get_drive_mount_point_name_unique_id_None(self):
        """
        Using the public method mount to test _get_drive_mount_point_name
        """
        try:
            tmpdir = mkdtemp()
            root = os.path.join(tmpdir, 'mnt/gluster-object')
            drive = 'test'

            _init_mock_variables(tmpdir)
            gfs._allow_mount_per_server = True
            self.assertTrue(gfs.mount(root, drive))
        finally:
            gfs._allow_mount_per_server = False
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #12
0
    def test_already_mounted(self):
        try:
            tmpdir = mkdtemp()
            root   = os.path.join(tmpdir, 'mnt/gluster-object')
            drive  = 'test'

            _init_mock_variables(tmpdir)
            def mock_do_ismount(path):
                return True

            with mock.patch("gluster.swift.common.Glusterfs.do_ismount",
                mock_do_ismount):
                self.assertTrue(gfs.mount(root, drive))
        finally:
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #13
0
    def test_get_drive_mount_point_name_unique_id_None(self):
        """
        Using the public method mount to test _get_drive_mount_point_name
        """
        try:
            tmpdir = mkdtemp()
            root   = os.path.join(tmpdir, 'mnt/gluster-object')
            drive  = 'test'

            _init_mock_variables(tmpdir)
            gfs._allow_mount_per_server = True
            self.assertTrue(gfs.mount(root, drive))
        finally:
            gfs._allow_mount_per_server = False
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #14
0
    def test_already_mounted(self):
        try:
            tmpdir = mkdtemp()
            root = os.path.join(tmpdir, 'mnt/gluster-object')
            drive = 'test'

            _init_mock_variables(tmpdir)

            def mock_do_ismount(path):
                return True

            with mock.patch("gluster.swift.common.Glusterfs.do_ismount",
                            mock_do_ismount):
                self.assertTrue(gfs.mount(root, drive))
        finally:
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #15
0
    def test_get_export_list(self):
        try:
            tmpdir = mkdtemp()
            root = os.path.join(tmpdir, 'mnt/gluster-object')
            drive = 'test'

            # undo mocking of _get_export_list
            tmp_get_export_list = gfs._get_export_list
            _init_mock_variables(tmpdir)
            gfs._get_export_list = tmp_get_export_list

            def mock_os_popen(cmd):
                mock_string = """
                Volume Name: test
                Type: Distribute
                Volume ID: 361cfe52-75c0-4a76-88af-0092a92270b5
                Status: Started
                Number of Bricks: 1
                Transport-type: tcp
                Bricks:
                Brick1: myhost:/export/brick/test

                Volume Name: test2
                Type: Distribute
                Volume ID: a6df4e2b-6040-4e19-96f1-b8d8c0a29528
                Status: Started
                Number of Bricks: 1
                Transport-type: tcp
                Bricks:
                Brick1: myhost:/export/brick/test2
                """
                return StringIO.StringIO(mock_string)

            # mock os_popen
            with mock.patch('os.popen', mock_os_popen):
                self.assertTrue(gfs.mount(root, drive))
        finally:
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #16
0
    def test_get_export_list(self):
        try:
            tmpdir = mkdtemp()
            root   = os.path.join(tmpdir, 'mnt/gluster-object')
            drive  = 'test'

            # undo mocking of _get_export_list
            tmp_get_export_list = gfs._get_export_list
            _init_mock_variables(tmpdir)
            gfs._get_export_list = tmp_get_export_list

            def mock_os_popen(cmd):
                mock_string = """
                Volume Name: test
                Type: Distribute
                Volume ID: 361cfe52-75c0-4a76-88af-0092a92270b5
                Status: Started
                Number of Bricks: 1
                Transport-type: tcp
                Bricks:
                Brick1: myhost:/export/brick/test

                Volume Name: test2
                Type: Distribute
                Volume ID: a6df4e2b-6040-4e19-96f1-b8d8c0a29528
                Status: Started
                Number of Bricks: 1
                Transport-type: tcp
                Bricks:
                Brick1: myhost:/export/brick/test2
                """
                return StringIO.StringIO(mock_string)

            # mock os_popen
            with mock.patch('os.popen', mock_os_popen):
                self.assertTrue(gfs.mount(root, drive))
        finally:
            _reset_mock_variables()
            shutil.rmtree(tmpdir)
예제 #17
0
 def test_busy_wait(self):
     self.assertTrue(gfs._busy_wait("/"))
예제 #18
0
 def test_mount_get_export_list_err(self):
     gfs._get_export_list = mock_get_export_list
     assert not gfs.mount(None, 'drive')
     _reset_mock_variables()
예제 #19
0
 def test_busy_wait(self):
     self.assertTrue(gfs._busy_wait("/"))