コード例 #1
0
ファイル: test_api.py プロジェクト: ajarr/manila
    def test_create_with_source_cgsnapshot_id_with_members_error(self):
        snap = fake_cgsnapshot("fake_source_cgsnapshot_id", status=constants.STATUS_AVAILABLE)
        member = stubs.stub_cgsnapshot_member("fake_member_id")
        member_2 = stubs.stub_cgsnapshot_member("fake_member2_id")
        share = stubs.stub_share("fakeshareid")
        fake_share_type_mapping = {"share_type_id": "fake_share_type_id"}
        orig_cg = fake_cg(
            "fakeorigid",
            user_id=self.context.user_id,
            project_id=self.context.project_id,
            share_types=[fake_share_type_mapping],
            status=constants.STATUS_AVAILABLE,
            share_network_id="fake_network_id",
            share_server_id="fake_server_id",
        )

        cg = fake_cg(
            "fakeid",
            user_id=self.context.user_id,
            project_id=self.context.project_id,
            share_types=[fake_share_type_mapping],
            status=constants.STATUS_CREATING,
            share_network_id="fake_network_id",
            share_server_id="fake_server_id",
        )
        expected_values = cg.copy()
        for name in ("id", "created_at", "share_network_id", "share_server_id"):
            expected_values.pop(name, None)
        expected_values["source_cgsnapshot_id"] = snap["id"]
        expected_values["share_types"] = ["fake_share_type_id"]
        expected_values["share_network_id"] = "fake_network_id"
        expected_values["share_server_id"] = "fake_server_id"

        self.mock_object(db_driver, "cgsnapshot_get", mock.Mock(return_value=snap))
        self.mock_object(db_driver, "consistency_group_get", mock.Mock(return_value=orig_cg))
        self.mock_object(db_driver, "share_network_get")
        self.mock_object(db_driver, "share_instance_get", mock.Mock(return_value=share))
        self.mock_object(db_driver, "consistency_group_create", mock.Mock(return_value=cg))
        self.mock_object(share_types, "get_share_type", mock.Mock(return_value={"id": "fake_share_type_id"}))
        self.mock_object(db_driver, "cgsnapshot_members_get_all", mock.Mock(return_value=[member, member_2]))
        self.mock_object(self.share_api, "create", mock.Mock(side_effect=[None, exception.Error]))
        self.mock_object(db_driver, "consistency_group_destroy")

        self.assertRaises(exception.Error, self.api.create, self.context, source_cgsnapshot_id=snap["id"])

        db_driver.consistency_group_create.assert_called_once_with(self.context, expected_values)
        self.assertEqual(2, self.share_api.create.call_count)
        self.assertEqual(1, db_driver.consistency_group_destroy.call_count)
コード例 #2
0
ファイル: test_api.py プロジェクト: ajarr/manila
    def test_create_with_source_cgsnapshot_id_with_member(self):
        snap = fake_cgsnapshot("fake_source_cgsnapshot_id", status=constants.STATUS_AVAILABLE)
        share = stubs.stub_share("fakeshareid")
        member = stubs.stub_cgsnapshot_member("fake_member_id")
        fake_share_type_mapping = {"share_type_id": "fake_share_type_id"}
        orig_cg = fake_cg(
            "fakeorigid",
            user_id=self.context.user_id,
            project_id=self.context.project_id,
            share_types=[fake_share_type_mapping],
            status=constants.STATUS_AVAILABLE,
            share_network_id="fake_network_id",
            share_server_id="fake_server_id",
        )

        cg = fake_cg(
            "fakeid",
            user_id=self.context.user_id,
            project_id=self.context.project_id,
            share_types=[fake_share_type_mapping],
            status=constants.STATUS_CREATING,
            share_network_id="fake_network_id",
            share_server_id="fake_server_id",
        )
        expected_values = cg.copy()
        for name in ("id", "created_at", "fake_network_id", "fake_share_server_id"):
            expected_values.pop(name, None)
        expected_values["source_cgsnapshot_id"] = snap["id"]
        expected_values["share_types"] = ["fake_share_type_id"]
        expected_values["share_network_id"] = "fake_network_id"
        expected_values["share_server_id"] = "fake_server_id"

        self.mock_object(db_driver, "cgsnapshot_get", mock.Mock(return_value=snap))
        self.mock_object(db_driver, "consistency_group_get", mock.Mock(return_value=orig_cg))
        self.mock_object(db_driver, "consistency_group_create", mock.Mock(return_value=cg))
        self.mock_object(share_types, "get_share_type", mock.Mock(return_value={"id": "fake_share_type_id"}))
        self.mock_object(db_driver, "share_network_get")
        self.mock_object(db_driver, "share_instance_get", mock.Mock(return_value=share))
        self.mock_object(db_driver, "cgsnapshot_members_get_all", mock.Mock(return_value=[member]))
        self.mock_object(self.share_api, "create")

        self.api.create(self.context, source_cgsnapshot_id=snap["id"])

        db_driver.consistency_group_create.assert_called_once_with(self.context, expected_values)
        self.assertTrue(self.share_api.create.called)
        self.share_rpcapi.create_consistency_group.assert_called_once_with(self.context, cg, orig_cg["host"])