argparser Argument wird nur im Debugmodus akzeptiert

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Hallo,

ich schreibe gerade ein Monitoring script bei dem ich den Argpasrser für CLI Parameter verwenden will. Das hat bei dem Skript auch soweit ganz gut funktioniert. Nun habe ich weiter Argumente dazu geschrieben, die dann komplett als nichtexistent qutitiert werden. Starte ich das Script mit dem Debugger funktioniert die ausführung und das Argument -k wird akzeptiert.

Code: Alles auswählen


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-k", "--ksqldb", help="Monitoring for ksqldb ", type=bool)
    parser.add_argument(
        "-B", "--broker", help="Number of a Kafka Broker", type=int)
    parser.add_argument(
        "-N", "--brokers", help="Numbers of Kafka Brokers", type=int)
    parser.add_argument(
        "-Z", "--zookeeper", help="Numbers of a Kafka Zookeper", type=int)
    parser.add_argument(
        "-z", "--zookeepers", help="Numbers of Kafka Zookeper", type=int)
    parser.add_argument("-r", "--registry", help="Monitoring the kafka schema registry", type=bool)
    parser.add_argument("-M", "--metric", help="Name of Metric", type=str)
    parser.add_argument("-w", "--warning", help="warning threshold")
    parser.add_argument("-c", "--critical", help="critical threshold")
    print("###############")
    args = parser.parse_args()
    print(vars(args))
für bei ausführung

Code: Alles auswählen

python /home/nrpe/check_kafka.py -k True
usage: check_kafka.py [-h] [-B BROKER] [-N BROKERS] [-Z ZOOKEEPER]
                      [-z ZOOKEEPERS] [-r REGISTRY] [-M METRIC] [-w WARNING]
                      [-c CRITICAL]
check_kafka.py: error: unrecognized arguments: -k True
zu

Code: Alles auswählen

check_kafka.py: error: unrecognized arguments: -k True
Führe sich das gleiche scipt mit dem debugger aus:

Code: Alles auswählen

python -m pdb check_kafka.py -k True
regiert das Script wie erwartet und ich bekomme die gewünschte Ausgabe

Ich bin da etwas ratlos

VG
Benutzeravatar
__blackjack__
User
Beiträge: 14054
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@nieselfriem: Ein offensichtlicher Unterschied bei den beiden Aufrufen ist /home/nrpe/check_kafka.py vs. check_kafka.py — sicher dass das beides das *selbe* Skript startet?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Ach schei..... Oh man, da habe ich mich gerade der Peinlichkeit preisgegeben.

Danke ;)
Antworten