Source code for inet_nm.cli_decommission
import argparse
import sys
import inet_nm.check as chk
import inet_nm.commissioner as cmr
import inet_nm.config as cfg
[docs]
def main():
"""CLI to commission a USB board."""
parser = argparse.ArgumentParser(description="Decommission USB boards")
cfg.config_arg(parser)
parser.add_argument(
"-a", "--all", help="Remove all selected nodes", action="store_true"
)
parser.add_argument(
"-m", "--missing", help="Select missing nodes", action="store_true"
)
args = parser.parse_args()
nodes_cfg = cfg.NodesConfig(args.config)
nodes_cfg.check_file(writable=True)
saved_nodes = nodes_cfg.load()
if args.missing:
nodes_to_remove = chk.check_nodes(saved_nodes, missing=True)
else:
nodes_to_remove = chk.check_nodes(saved_nodes, all_nodes=True, used=True)
nodes = saved_nodes
if args.all:
for node in nodes_to_remove:
nodes = cmr.remove_node_to_nodes(nodes, node)
else:
try:
selected_node = cmr.select_available_node(nodes_to_remove)
nodes = cmr.remove_node_to_nodes(nodes, selected_node)
print("Removed node:")
print(f" UID: {selected_node.uid}")
print(f" PID: {selected_node.product_id}")
print(f" VID: {selected_node.vendor_id}")
print(f" SN: {selected_node.serial}")
except ValueError:
print("No available nodes found")
sys.exit(1)
nodes_cfg.save(nodes)
print(f"Updated {nodes_cfg.file_path}")
if __name__ == "__main__":
main()