Compare commits

..

No commits in common. '5eeca61e099bd1f4ca02ce24dbdf8217e278dd9f' and '7b9d05f5a8122d7e0c469ca8beccaeb01e2c5950' have entirely different histories.

@ -41,9 +41,8 @@ def nested_out(input, tabs="") -> str:
string += "{}\n".format(input) string += "{}\n".format(input)
elif isinstance(input, dict): elif isinstance(input, dict):
for key, value in input.items(): for key, value in input.items():
string += "{}{}: {}".format( string += "{}{}: {}".format(tabs, key,
tabs, key, nested_out(value, tabs + " ") nested_out(value, tabs + " "))
)
elif isinstance(input, list): elif isinstance(input, list):
for entry in input: for entry in input:
string += "{}\n{}".format(tabs, nested_out(entry, tabs + " ")) string += "{}\n{}".format(tabs, nested_out(entry, tabs + " "))
@ -91,13 +90,10 @@ def run_config(
for need in needed: for need in needed:
if need == "": if need == "":
output( output(
error( error("Can not configure without {}".format(need),
"Can not configure without {}".format(need), "No {}".format(need)))
"No {}".format(need),
)
)
sys.exit(1) sys.exit(1)
config[need] = input("Enter {}: ".format(need)) config[need] = input("Enter {}:".format(need))
if not password: if not password:
try: try:
@ -119,9 +115,10 @@ def run_delete(url: str, jsonout: bool, headers: dict):
output(reply, jsonout) output(reply, jsonout)
def run_list( def run_list(url: str,
url: str, jsonout: bool, headers: dict, ret=False jsonout: bool,
) -> Union[None, str]: headers: dict,
ret=False) -> Union[None, str]:
response = requests.get(url, headers=headers) response = requests.get(url, headers=headers)
string = response.json() string = response.json()
if ret: if ret:
@ -168,19 +165,13 @@ def setup_url(
if ttl and (not rtype or not name or not zone): if ttl and (not rtype or not name or not zone):
output( output(
error( error("ttl only makes sense with rtype, name and zone",
"ttl only makes sense with rtype, name and zone", "Missing parameter"))
"Missing parameter",
)
)
sys.exit(1) sys.exit(1)
if rtype and (not name or not zone): if rtype and (not name or not zone):
output( output(
error( error("rtype only makes sense with name and zone",
"rtype only makes sense with name and zone", "Missing parameter"))
"Missing parameter",
)
)
sys.exit(1) sys.exit(1)
if name and not zone: if name and not zone:
output(error("name only makes sense with a zone", "Missing parameter")) output(error("name only makes sense with a zone", "Missing parameter"))
@ -249,7 +240,7 @@ def main() -> int:
mkdir(config_basepath) mkdir(config_basepath)
if args.command == "config": if args.command == "config":
run_config(config_filename, args.baseurl, args.username, args.password) run_config(args.baseurl, args.username, args.password)
return 0 return 0
if not isfile(config_filename): if not isfile(config_filename):
@ -273,29 +264,23 @@ def main() -> int:
# Route based on command # Route based on command
ttl = None ttl = None
if "ttl" in args: if 'ttl' in args:
ttl = args.ttl ttl = args.ttl
if args.command != "update": if args.command != "update":
args.argument = None args.argument = None
if args.command == "add" and not ttl: if args.command == "add" and not ttl:
if args.zone.endswith("."): if args.zone.endswith('.'):
zname = args.zone zname = args.zone
else: else:
zname = args.zone + "." zname = args.zone + '.'
soa_url = setup_url(baseurl, None, None, zname, "SOA", None, args.zone) soa_url = setup_url(baseurl, None, None, zname, "SOA", None,
args.zone)
soa_json = run_list(soa_url, True, headers, ret=True) soa_json = run_list(soa_url, True, headers, ret=True)
ttl = soa_json[0]["ttl"] ttl = soa_json[0]["ttl"]
try: try:
url = setup_url( url = setup_url(baseurl, args.argument, args.data, args.name,
baseurl, args.rtype, ttl, args.zone)
args.argument,
args.data,
args.name,
args.rtype,
ttl,
args.zone,
)
except AttributeError: except AttributeError:
parser.print_help(sys.stderr) parser.print_help(sys.stderr)
return 1 return 1
@ -311,8 +296,7 @@ def main() -> int:
run_update(url, args.json, headers) run_update(url, args.json, headers)
except (RequestsJSONDecodeError, SimplejsonJSONDecodeError): except (RequestsJSONDecodeError, SimplejsonJSONDecodeError):
output( output(
error("Could not decode api response as JSON", "Could not decode") error("Could not decode api response as JSON", "Could not decode"))
)
return 0 return 0

Loading…
Cancel
Save