diff --git a/update_i42_domain.py b/update_i42_domain.py index 0fbeced5d5c1fd9c55f7774afb161d9746b833fd..70a9e5a72f0de780de25ffef874cffc2a95d6332 100755 --- a/update_i42_domain.py +++ b/update_i42_domain.py @@ -1,16 +1,21 @@ #! /usr/bin/python3 # -*- coding: utf-8 -*- -from conf import * +try: + from conf import * +except: + pass + import requests import argparse import logging +import sys # A parancssori paramĂŠter rugalmasabb, mint a config, ezĂŠrt felĂźlĂrhatja. parser = argparse.ArgumentParser( - description="FrissĂtĂŠsi kĂŠrĂŠst indĂt a konfigurĂĄciĂłs fĂĄjlban megadott adatokkal " + description="FrissĂtĂŠsi kĂŠrĂŠst indĂt a konfigurĂĄciĂłs fĂĄjlban megadott adatokkal " "az i42.hu alĂĄ esĹ regisztrĂĄlt domain rekord(ok) frissĂtĂŠsĂŠre. " - "Parancssori paramĂŠterek is megadhatĂłk, ezek felĂźlĂrjĂĄk a konfig fĂĄjl beĂĄllĂtĂĄsait.") + "Parancssori paramĂŠterek is megadhatĂłk, ezek felĂźlĂrjĂĄk a konfig fĂĄjl beĂĄllĂtĂĄsait.") parser.add_argument("-4", "--ipv4_only", action="store_true", help="Csak IPv4-en prĂłbĂĄl meg frissĂtĂŠsi kĂŠrĂŠst kĂźldeni.") parser.add_argument("-6", "--ipv6_only", action="store_true", @@ -19,6 +24,8 @@ parser.add_argument("-p", "--prefix", action="store", help="FrissĂtendĹ prefix megadĂĄsa.") parser.add_argument("-l", "--log-file", action="store", help="LogfĂĄjl megadĂĄsa, amibe a log Ăźzenetek ki fognak ĂrĂłdni.") +parser.add_argument("-t","--token",action="store", + help="Token, amit az oldalon generĂĄltĂĄl.") parser.add_argument("-v", "--validate", action="store_true", help="A megadott adatokkal validĂĄlĂĄsi kĂŠrĂŠst kĂźld. " + "Ez a kĂŠrĂŠs nem frissĂti az ip cĂm(ek)et. " + @@ -28,55 +35,86 @@ parser.add_argument("-v", "--validate", action="store_true", args = parser.parse_args() if args.ipv4_only: - UPDATE_IP_VERSION = 4 + UPDATE_IP_VERSION = 4 elif args.ipv6_only: - UPDATE_IP_VERSION = 6 + UPDATE_IP_VERSION = 6 if args.prefix != None: - MY_PREFIX = args.prefix + MY_PREFIX = args.prefix + +if args.token != None: + MY_TOKEN = args.token # LogolĂĄs beĂĄllĂtĂĄsa if args.log_file != None: - LOG_FILE = args.log_file -log_format = "%(levelname)s: %(message)s" -if len(LOG_FILE) > 0: - log_format = "%(asctime)s - " + log_format + LOG_FILE = args.log_file +log_format = "%(asctime)s - %(levelname)s: %(message)s" +try: + LOG_FILE +except NameError: + #TODO OS detect + LOG_FILE = '/home/segal/i42updater.log' logging.basicConfig(filename=LOG_FILE, level=logging.INFO, format=log_format) +try: + UPDATE_IP_VERSION +except NameError: + UPDATE_IP_VERSION = 0 + if UPDATE_IP_VERSION != 0: - logging.info("Csak IPv%d kĂŠrĂŠs megadva." % UPDATE_IP_VERSION) + logging.info("Csak IPv%d kĂŠrĂŠs megadva." % UPDATE_IP_VERSION) + # KĂźldendĹ adat ĂśsszeĂĄllĂtĂĄsa +try: + MY_TOKEN +except NameError: + logging.error("Token megadĂĄsa kĂśtelezĹ") + sys.exit() +try: + if MY_PREFIX.split('.')[-2:] == ('i42','hu'): + MY_PREFIX = str(MY_PREFIX.split('.')[:-2]) +except NameError: + logging.error("Prefix megadĂĄsa kĂśtelezĹ.") + sys.exit() + data_v6 = data_v4 = {"token" : MY_TOKEN, "prefix": MY_PREFIX} host = "https://updaterv%d.i42.hu:10053" server_v4 = host % 4 server_v6 = host % 6 -if len(MY_IP_V4) > 0: - data_v4["ip_address"] = MY_IP_V4 - -if len(MY_IP_V6) > 0: - data_v6["ip_address"] = MY_IP_V6 +try: + data_v4["ip_address"] = MY_IP_V4 +except NameError: + pass +try: + data_v6["ip_address"] = MY_IP_V6 +except NameError: + pass if args.validate: - data_v4["validate"] = 1 - data_v6["validate"] = 1 + data_v4["validate"] = 1 + data_v6["validate"] = 1 # KĂźldĂŠs for (server, data, version) in [(server_v4, data_v4, 4), (server_v6, data_v6, 6)]: - try: - if (UPDATE_IP_VERSION in (4, 6)) and (UPDATE_IP_VERSION != version): - continue - response = requests.post(server, data, timeout=30) # TODO Ne logoljon mĂĄr bele!!! + try: + if (UPDATE_IP_VERSION in (4, 6)) and (UPDATE_IP_VERSION != version): + continue + response = requests.post(server, data, timeout=30) # TODO Ne logoljon mĂĄr bele!!! + + if 400 <= response.status_code < 600: + raise requests.HTTPError(response.text, response=response) + + logging.info(response.text) - if 400 <= response.status_code < 600: - raise requests.HTTPError(response.text, response=response) + except requests.HTTPError as ex: + logging.error(ex) + sys.exit() - logging.info(response.text) + except requests.ConnectionError as ex: + logging.error("HibĂĄs URL cĂmet adtĂĄl meg, vagy a kĂŠrĂŠs timeout-olt. " + "Lehet, hogy IPv%d protokollon nem tudsz kommunikĂĄlni." % version) + sys.exit() - except requests.HTTPError as ex: - logging.error(ex) - except requests.ConnectionError as ex: - logging.error("HibĂĄs URL cĂmet adtĂĄl meg, vagy a kĂŠrĂŠs timeout-olt. " - "Lehet, hogy IPv%d protokollon nem tudsz kommunikĂĄlni." % version)