Ejemplo n.º 1
0
    def test_create_volume_with_options(self):
        testvol = {
            'project_id': 'testprjid',
            'name': 'testvol',
            'size': 1,
            'id': 'deadbeef-8068-11e4-98c0-5254008ea111',
            'volume_type_id': 'drbdmanage',
            'created_at': timeutils.utcnow()
        }

        self.configuration.safe_get = self._fake_safe_get_with_options
        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.drbdmanage_devs_on_controller = False
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_volume(testvol)

        self.assertEqual("create_resource", dmd.odm.calls[0][0])

        self.assertEqual("set_drbdsetup_props", dmd.odm.calls[1][0])
        self.assertEqual("reso", dmd.odm.calls[1][1]["type"])
        self.assertEqual("300", dmd.odm.calls[1][1]["auto-promote-timeout"])

        self.assertEqual("set_drbdsetup_props", dmd.odm.calls[2][0])
        self.assertEqual("neto", dmd.odm.calls[2][1]["type"])
        self.assertEqual("30", dmd.odm.calls[2][1]["ko-count"])

        self.assertEqual("list_volumes", dmd.odm.calls[3][0])
        self.assertEqual("create_volume", dmd.odm.calls[4][0])
        self.assertEqual(1048576, dmd.odm.calls[4][2])
        self.assertEqual("auto_deploy", dmd.odm.calls[5][0])
        self.assertEqual(7, len(dmd.odm.calls))
Ejemplo n.º 2
0
    def test_create_volume_from_snapshot_larger_size(self):
        snap = {
            'project_id': 'testprjid',
            'name': 'testvol',
            'volume_size': 1,
            'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
            'volume_type_id': 'drbdmanage',
            'created_at': timeutils.utcnow()
        }

        newvol = {'size': 5, 'id': 'ca253fd0-8068-11e4-98c0-5254008ea111'}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_volume_from_snapshot(newvol, snap)
        self.assertEqual("list_snapshots", dmd.odm.calls[0][0])
        self.assertEqual("restore_snapshot", dmd.odm.calls[1][0])
        self.assertEqual("run_external_plugin", dmd.odm.calls[2][0])

        # resize image checks
        self.assertEqual("list_volumes", dmd.odm.calls[3][0])
        self.assertEqual(newvol['id'], dmd.odm.calls[3][3]["aux:cinder-id"])
        self.assertEqual("resize_volume", dmd.odm.calls[4][0])
        self.assertEqual("res", dmd.odm.calls[4][1])
        self.assertEqual(2, dmd.odm.calls[4][2])
        self.assertEqual(-1, dmd.odm.calls[4][3])
        self.assertEqual(5242880, dmd.odm.calls[4][4])
    def test_create_cloned_volume(self):
        srcvol = {
            'project_id': 'testprjid',
            'name': 'testvol',
            'size': 1,
            'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
            'volume_type_id': 'drbdmanage',
            'created_at': timeutils.utcnow()
        }

        newvol = {'id': 'ca253fd0-8068-11e4-98c0-5254008ea111'}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_cloned_volume(newvol, srcvol)
        self.assertEqual("list_volumes", dmd.odm.next_call())
        self.assertEqual("list_assignments", dmd.odm.next_call())
        self.assertEqual("create_snapshot", dmd.odm.next_call())
        self.assertEqual("run_external_plugin", dmd.odm.next_call())
        self.assertEqual("list_snapshots", dmd.odm.next_call())
        self.assertEqual("restore_snapshot", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("run_external_plugin", dmd.odm.next_call())
        self.assertEqual("list_snapshots", dmd.odm.next_call())
        self.assertEqual("remove_snapshot", dmd.odm.next_call())
    def test_create_volume_controller_all_vols(self):
        testvol = {
            'project_id': 'testprjid',
            'name': 'testvol',
            'size': 1,
            'id': 'deadbeef-8068-11e4-98c0-5254008ea111',
            'volume_type_id': 'drbdmanage',
            'created_at': timeutils.utcnow()
        }

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.drbdmanage_devs_on_controller = True
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_volume(testvol)
        self.assertEqual("create_resource", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("list_volumes", dmd.odm.next_call())
        self.assertEqual("create_volume", dmd.odm.next_call())
        self.assertEqual(1048576, dmd.odm.call_parm(2))
        self.assertEqual("auto_deploy", dmd.odm.next_call())
        self.assertEqual("run_external_plugin", dmd.odm.next_call())
        self.assertEqual("assign", dmd.odm.next_call())
        self.assertEqual(9, dmd.odm.call_count())
Ejemplo n.º 5
0
    def test_delete_snapshot(self):
        testsnap = {'id': 'ca253fd0-8068-11e4-98c0-5254008ea111'}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.delete_snapshot(testsnap)
        self.assertEqual("list_snapshots", dmd.odm.calls[0][0])
        self.assertEqual("remove_snapshot", dmd.odm.calls[1][0])
Ejemplo n.º 6
0
    def test_create_snapshot(self):
        testsnap = {'id': 'ca253fd0-8068-11e4-98c0-5254008ea111',
                    'volume_id': 'ba253fd0-8068-11e4-98c0-5254008ea111'}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_snapshot(testsnap)
        self.assertEqual("list_volumes", dmd.odm.next_call())
        self.assertEqual("list_assignments", dmd.odm.next_call())
        self.assertEqual("create_snapshot", dmd.odm.next_call())
        self.assertIn('node', dmd.odm.call_parm(3))
Ejemplo n.º 7
0
    def test_unit_conversions(self):
        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)

        self.assertEqual(1048576, dmd._vol_size_to_dm(1))
        self.assertEqual(1, dmd._vol_size_to_cinder(1048576))

        self.assertEqual(5368709120, dmd._vol_size_to_dm(5120))
        self.assertEqual(5120, dmd._vol_size_to_cinder(5368709120))

        self.assertEqual(10737418240, dmd._vol_size_to_dm(10240))
        self.assertEqual(10240, dmd._vol_size_to_cinder(10737418240))
Ejemplo n.º 8
0
    def test_local_path(self):
        testvol = {'project_id': 'testprjid',
                   'name': 'testvol',
                   'size': 1,
                   'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
                   'volume_type_id': 'drbdmanage',
                   'created_at': timeutils.utcnow()}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        data = dmd.local_path(testvol)
        self.assertTrue(data.startswith("/dev/drbd"))
Ejemplo n.º 9
0
    def test_delete_volume(self):
        testvol = {'project_id': 'testprjid',
                   'name': 'testvol',
                   'size': 1,
                   'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
                   'volume_type_id': 'drbdmanage',
                   'created_at': timeutils.utcnow()}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.delete_volume(testvol)
        self.assertEqual("list_volumes", dmd.odm.next_call())
        self.assertEqual(testvol['id'], dmd.odm.call_parm(3)["aux:cinder-id"])
        self.assertEqual("remove_volume", dmd.odm.next_call())
Ejemplo n.º 10
0
    def test_create_volume_from_snapshot(self):
        snap = {
            'project_id': 'testprjid',
            'name': 'testvol',
            'volume_size': 1,
            'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
            'volume_type_id': 'drbdmanage',
            'created_at': timeutils.utcnow()
        }

        newvol = {'id': 'ca253fd0-8068-11e4-98c0-5254008ea111'}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_volume_from_snapshot(newvol, snap)
        self.assertEqual("list_snapshots", dmd.odm.calls[0][0])
        self.assertEqual("restore_snapshot", dmd.odm.calls[1][0])
        self.assertEqual("run_external_plugin", dmd.odm.calls[2][0])
Ejemplo n.º 11
0
    def test_extend_volume(self):
        testvol = {'project_id': 'testprjid',
                   'name': 'testvol',
                   'size': 1,
                   'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
                   'volume_type_id': 'drbdmanage',
                   'created_at': timeutils.utcnow()}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.extend_volume(testvol, 5)
        self.assertEqual("list_volumes", dmd.odm.calls[0][0])
        self.assertEqual(testvol['id'], dmd.odm.calls[0][3]["aux:cinder-id"])
        self.assertEqual("resize_volume", dmd.odm.calls[1][0])
        self.assertEqual("res", dmd.odm.calls[1][1])
        self.assertEqual(2, dmd.odm.calls[1][2])
        self.assertEqual(-1, dmd.odm.calls[1][3])
        self.assertEqual(5242880, dmd.odm.calls[1][4])
Ejemplo n.º 12
0
    def test_create_volume(self):
        testvol = {'project_id': 'testprjid',
                   'name': 'testvol',
                   'size': 1,
                   'id': 'deadbeef-8068-11e4-98c0-5254008ea111',
                   'volume_type_id': 'drbdmanage',
                   'created_at': timeutils.utcnow()}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.drbdmanage_devs_on_controller = False
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_volume(testvol)
        self.assertEqual("create_resource", dmd.odm.calls[0][0])
        self.assertEqual("list_volumes", dmd.odm.calls[1][0])
        self.assertEqual("create_volume", dmd.odm.calls[2][0])
        self.assertEqual(1048576, dmd.odm.calls[2][2])
        self.assertEqual("auto_deploy", dmd.odm.calls[3][0])
        self.assertEqual(len(dmd.odm.calls), 4)
    def test_create_cloned_volume_larger_size(self):
        srcvol = {
            'project_id': 'testprjid',
            'name': 'testvol',
            'size': 1,
            'id': 'ba253fd0-8068-11e4-98c0-5254008ea111',
            'volume_type_id': 'drbdmanage',
            'created_at': timeutils.utcnow()
        }

        newvol = {'size': 5, 'id': 'ca253fd0-8068-11e4-98c0-5254008ea111'}

        dmd = drv.DrbdManageIscsiDriver(configuration=self.configuration)
        dmd.odm = DrbdManageFakeDriver()
        dmd.create_cloned_volume(newvol, srcvol)
        self.assertEqual("list_volumes", dmd.odm.next_call())
        self.assertEqual("list_assignments", dmd.odm.next_call())
        self.assertEqual("create_snapshot", dmd.odm.next_call())
        self.assertEqual("run_external_plugin", dmd.odm.next_call())
        self.assertEqual("list_snapshots", dmd.odm.next_call())
        self.assertEqual("restore_snapshot", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("set_drbdsetup_props", dmd.odm.next_call())
        self.assertEqual("run_external_plugin", dmd.odm.next_call())

        # resize image checks
        self.assertEqual("list_volumes", dmd.odm.next_call())
        self.assertEqual(newvol['id'], dmd.odm.call_parm(3)["aux:cinder-id"])
        self.assertEqual("resize_volume", dmd.odm.next_call())
        self.assertEqual("res", dmd.odm.call_parm(1))
        self.assertEqual(2, dmd.odm.call_parm(2))
        self.assertEqual(-1, dmd.odm.call_parm(3))
        self.assertEqual(5242880, dmd.odm.call_parm(4))

        self.assertEqual("run_external_plugin", dmd.odm.next_call())

        self.assertEqual("list_snapshots", dmd.odm.next_call())
        self.assertEqual("remove_snapshot", dmd.odm.next_call())