From cb1afe1f9dfa1b017cb917d49507384ca4be476f Mon Sep 17 00:00:00 2001 From: Edvard Rejthar Date: Thu, 23 Apr 2026 16:03:50 +0200 Subject: [PATCH] fix (smtp_batch): CLI overwriting params --- CHANGELOG.md | 4 +++- intelmq/bots/outputs/smtp_batch/output.py | 13 ++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e98bcc42..77cba765b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,7 +32,9 @@ Please refer to the [NEWS](NEWS.md) for a list of changes which have an affect o #### Experts #### Outputs -- `intelmq.bots.outputs.smtp_batch.output`: Ignore parameter `bot_id` for parsing parameters (PR#2692 by Lukas Heindl, fixes #2666). +- `intelmq.bots.outputs.smtp_batch.output`: + - Ignore parameter `bot_id` for parsing parameters (PR#2692 by Lukas Heindl, fixes #2666). + - Fix CLI overwriting params over the defaults (PR#2699 by Edvard Rejthar). ### Documentation - Updates to Contrib and Overview pages (PR#2672 by Sebastian Wagner). diff --git a/intelmq/bots/outputs/smtp_batch/output.py b/intelmq/bots/outputs/smtp_batch/output.py index edffa6890..f07c2ba7b 100644 --- a/intelmq/bots/outputs/smtp_batch/output.py +++ b/intelmq/bots/outputs/smtp_batch/output.py @@ -1,19 +1,20 @@ # SPDX-FileCopyrightText: 2022 CSIRT.cz # SPDX-License-Identifier: AGPL-3.0-or-later import csv -from dataclasses import dataclass import datetime import json import os import sys -from tempfile import NamedTemporaryFile import time -from typing import Any, Iterable, Optional, Dict, List import zipfile +from argparse import Namespace from base64 import b64decode from collections import OrderedDict -from io import StringIO +from dataclasses import dataclass from hashlib import sha256 +from io import StringIO +from tempfile import NamedTemporaryFile +from typing import Any, Dict, Iterable, List, Optional from redis.exceptions import TimeoutError @@ -132,7 +133,9 @@ def init(self): @classmethod def run(cls, parsed_args=None): if not parsed_args: - parsed_args = cls._create_argparser().parse_args() + # filter out None values as to not rewrite the defaults + namespace = cls._create_argparser().parse_args() + parsed_args = Namespace(**{k: v for k, v in vars(namespace).items() if v is not None}) if parsed_args.cli: instance = cls(parsed_args.bot_id)