zerotier-members: improve ux of console output
This commit is contained in:
@@ -90,6 +90,8 @@ def list_members(args: argparse.Namespace) -> None:
|
|||||||
networks = ZEROTIER_STATE_DIR / "controller.d" / "network" / network_id / "member"
|
networks = ZEROTIER_STATE_DIR / "controller.d" / "network" / network_id / "member"
|
||||||
if not networks.exists():
|
if not networks.exists():
|
||||||
return
|
return
|
||||||
|
if not args.no_headers:
|
||||||
|
print(f"{'Member ID':<10} {'Ipv6 Address':<39} {'Authorized'}")
|
||||||
for member in networks.iterdir():
|
for member in networks.iterdir():
|
||||||
with member.open() as f:
|
with member.open() as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
@@ -98,16 +100,14 @@ def list_members(args: argparse.Namespace) -> None:
|
|||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
msg = f"error: {member} does not contain an id"
|
msg = f"error: {member} does not contain an id"
|
||||||
raise ClanError(msg) from e
|
raise ClanError(msg) from e
|
||||||
print(
|
ip = str(compute_zerotier_ip(network_id, member_id))
|
||||||
member_id,
|
authorized = str(data.get("authorized", False))
|
||||||
compute_zerotier_ip(network_id, data["id"]),
|
print(f"{member_id:<10} {ip:<39} {authorized}")
|
||||||
data.get("authorized", False)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser(description="Manage zerotier members")
|
||||||
subparser = parser.add_subparsers(dest="command")
|
subparser = parser.add_subparsers(dest="command", required=True)
|
||||||
parser_allow = subparser.add_parser("allow", help="Allow a member to join")
|
parser_allow = subparser.add_parser("allow", help="Allow a member to join")
|
||||||
parser_allow.add_argument(
|
parser_allow.add_argument(
|
||||||
"--member-ip",
|
"--member-ip",
|
||||||
@@ -118,6 +118,9 @@ def main() -> None:
|
|||||||
parser_allow.set_defaults(func=allow_member)
|
parser_allow.set_defaults(func=allow_member)
|
||||||
|
|
||||||
parser_list = subparser.add_parser("list", help="List members")
|
parser_list = subparser.add_parser("list", help="List members")
|
||||||
|
parser_list.add_argument(
|
||||||
|
"--no-headers", action="store_true", help="Do not print headers"
|
||||||
|
)
|
||||||
parser_list.set_defaults(func=list_members)
|
parser_list.set_defaults(func=list_members)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|||||||
Reference in New Issue
Block a user