Skip to content

Commit

Permalink
fix(kafka-connector): destroy connector on reset (#615)
Browse files Browse the repository at this point in the history
fix #614
  • Loading branch information
disrupted authored Mar 6, 2025
1 parent 0b3d80d commit 477b6c6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
2 changes: 2 additions & 0 deletions kpops/components/base_components/kafka_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ def apply_from_inputs(self, name: str, topic: FromTopic) -> NoReturn:
@override
async def reset(self, dry_run: bool) -> None:
"""Reset state. Keep connector."""
await super().reset(dry_run)
await self._resetter.reset(dry_run)

@override
Expand Down Expand Up @@ -265,6 +266,7 @@ def set_error_topic(self, topic: KafkaTopic) -> None:
@override
async def reset(self, dry_run: bool) -> None:
"""Reset state. Keep consumer group and connector."""
await super().reset(dry_run)
self._resetter.values.config.delete_consumer_group = False
await self._resetter.reset(dry_run)

Expand Down
7 changes: 6 additions & 1 deletion tests/components/test_kafka_sink_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,15 @@ async def test_reset_when_dry_run_is_true(
self,
connector: KafkaSinkConnector,
dry_run_handler_mock: MagicMock,
mocker: MockerFixture,
):
mock_destroy = mocker.patch.object(connector, "destroy")
mock_resetter_reset = mocker.spy(connector._resetter, "reset")
dry_run = True
await connector.reset(dry_run=dry_run)

mock_destroy.assert_called_once_with(dry_run)
mock_resetter_reset.assert_called_once_with(dry_run)
dry_run_handler_mock.print_helm_diff.assert_called_once()

async def test_reset_when_dry_run_is_false(
Expand All @@ -236,11 +241,11 @@ async def test_reset_when_dry_run_is_false(
dry_run = False

await connector.reset(dry_run=dry_run)
mock_destroy.assert_not_called()
mock_resetter_reset.assert_called_once_with(dry_run)

mock.assert_has_calls(
[
mocker.call.destroy_connector(dry_run),
mocker.call.helm.add_repo(
"bakdata-kafka-connect-resetter",
"https://bakdata.github.io/kafka-connect-resetter/",
Expand Down
10 changes: 8 additions & 2 deletions tests/components/test_kafka_source_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,15 @@ async def test_reset_when_dry_run_is_true(
self,
connector: KafkaSourceConnector,
dry_run_handler_mock: MagicMock,
mocker: MockerFixture,
):
await connector.reset(dry_run=True)
mock_destroy = mocker.patch.object(connector, "destroy")
mock_resetter_reset = mocker.spy(connector._resetter, "reset")
dry_run = True
await connector.reset(dry_run=dry_run)

mock_destroy.assert_called_once_with(dry_run)
mock_resetter_reset.assert_called_once_with(dry_run)
dry_run_handler_mock.print_helm_diff.assert_called_once()

async def test_reset_when_dry_run_is_false(
Expand All @@ -166,9 +172,9 @@ async def test_reset_when_dry_run_is_false(

dry_run = False
await connector.reset(dry_run)
mock_destroy.assert_not_called()

assert mock.mock_calls == [
mocker.call.destroy_connector(dry_run),
mocker.call.helm.add_repo(
"bakdata-kafka-connect-resetter",
"https://bakdata.github.io/kafka-connect-resetter/",
Expand Down

0 comments on commit 477b6c6

Please sign in to comment.