def network_config(args): # pylint: disable-msg=W0613 """ GET /network_config Just returns the network configuration """ if not NETLOCK.acquire_read(NET_LOCK_TIMEOUT): raise HttpReqError(503, "unable to take NETLOCK for reading after %s seconds" % NET_LOCK_TIMEOUT) try: netconf = xivo_config.load_current_configuration() return yaml_json.stringify_keys(netconf) finally: NETLOCK.release()
def modify_network_config(args): """ POST /modify_network_config XXX """ if not _val_modify_network_config(args): raise HttpReqError(415, "invalid arguments for command") try: check_conf = json_ops.compile_conj(args['rel']) except ValueError: raise HttpReqError(415, "invalid relation") if not NETLOCK.acquire_write(NET_LOCK_TIMEOUT): raise HttpReqError(503, "unable to take NETLOCK for writing after %s seconds" % NET_LOCK_TIMEOUT) try: current_config = xivo_config.load_current_configuration() if not check_conf(args['old'], current_config): raise HttpReqError(409, "Conflict between state wanted by client and current state") finally: NETLOCK.release()