def list_nodes(args):
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    nodes = m.config.get_nodes({})
    for node in nodes:
        del (node["_id"])
        print dumps(node)
    return
def add_index(args):
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    fields = loads(args.fields)
    m.config.add_index(
        db_type=args.db_type,
        fields=fields,
        background=bool(strtobool(args.background)),  #bool
        unique=bool(strtobool(args.unique)),
        sparse=bool(strtobool(args.sparse)),
        text=bool(strtobool(args.text)))
    if bool(strtobool(args.rebuild)):
        build_index(args)
    return
def add_node(args):
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    m.config.add_node(uid=args.uid,
                      name=args.name,
                      db_type=args.db_type,
                      db_tags=loads(args.db_tags),
                      capability=args.capability,
                      host=args.host,
                      port=args.port,
                      max_size=args.max_size,
                      ssl=bool(strtobool(args.ssl)),
                      passwd_file=args.passwd_file)
    return
def remove_index():
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    fields = loads(args.fields)
    m.remove_index(args.db_type, fields)
    return
def build_index(args):
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    m.ensure_indexes(args.collection,
                     m.config.get_indexes(args.db_type),
                     db_type=args.db_type)
    return
def set_db_tags(args):
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    tags = loads(args.db_tags)
    m.config.set_node_tags(args.uid, tags)
    return
def remove_node(args):
    m = Maintenence(args.config_host, args.config_port, args.config_ssl)
    m.config.remove_node(args.db_type, args.uid)
    return