def link_location_host_put(link_id, location_id, host_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) hst = loc.get_host(host_id) if not hst: return flask.abort(404) hst.name = utils.filter_str(flask.request.json.get('name')) or 'undefined' hst.timeout = abs(int(flask.request.json.get('timeout') or 0)) or None hst.priority = abs(int(flask.request.json.get('priority') or 1)) or 1 hst.commit(('name', 'timeout', 'priority')) event.Event(type=LINKS_UPDATED) return utils.jsonify(hst.dict())
def link_location_exclude_post(link_id, location_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) exclude_id = utils.ObjectId(flask.request.json.get('exclude_id')) loc.add_exclude(exclude_id) lnk.commit('excludes') event.Event(type=LINKS_UPDATED) return utils.jsonify({ 'location_id': exclude_id, })
def link_put(link_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) lnk.name = utils.filter_str(flask.request.json.get('name')) or 'undefined' status = flask.request.json.get('status') if status in (ONLINE, OFFLINE): if status == ONLINE and lnk.status != ONLINE: lnk.generate_key() lnk.status = status lnk.commit(('name', 'status', 'key')) event.Event(type=LINKS_UPDATED) return utils.jsonify(lnk.dict())
def link_location_route_post(link_id, location_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) try: network = loc.add_route(flask.request.json.get('network')) except NetworkInvalid: return utils.jsonify({ 'error': LINK_NETWORK_INVALID, 'error_msg': LINK_NETWORK_INVALID_MSG, }, 400) loc.commit('routes') event.Event(type=LINKS_UPDATED) return utils.jsonify({ 'id': network, })
def link_location_host_delete(link_id, location_id, host_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) hst = loc.get_host(host_id) if not hst: return flask.abort(404) hst.remove() event.Event(type=LINKS_UPDATED) return utils.jsonify({})
def link_delete(link_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) lnk.remove() event.Event(type=LINKS_UPDATED) return utils.jsonify({})
def link_location_get(link_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: resp = utils.demo_get_cache() if resp: return utils.jsonify(resp) lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) locations = [] for location_dict in lnk.iter_locations_dict(): locations.append(location_dict) if settings.app.demo_mode: utils.demo_set_cache(locations) return utils.jsonify(locations)
def link_location_put(link_id, location_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) loc.name = utils.filter_str(flask.request.json.get('name')) or 'undefined' loc.commit('name') event.Event(type=LINKS_UPDATED) return utils.jsonify(loc.dict())
def link_location_exclude_delete(link_id, location_id, exclude_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) loc.remove_exclude(exclude_id) lnk.commit('excludes') event.Event(type=LINKS_UPDATED) return utils.jsonify({})
def link_location_host_post(link_id, location_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) name = utils.filter_str(flask.request.json.get('name')) or 'undefined' timeout = int(flask.request.json.get('timeout') or 0) or None priority = abs(int(flask.request.json.get('priority') or 1)) or 1 hst = link.Host( link=lnk, location=loc, link_id=lnk.id, location_id=loc.id, name=name, timeout=timeout, priority=priority, ) hst.generate_secret() hst.commit() event.Event(type=LINKS_UPDATED) return utils.jsonify(hst.dict())
def link_location_post(link_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk or lnk.type == DIRECT: return flask.abort(404) name = utils.filter_str(flask.request.json.get('name')) or 'undefined' loc = link.Location( link=lnk, name=name, link_id=lnk.id, ) loc.commit() event.Event(type=LINKS_UPDATED) return utils.jsonify(loc.dict())
def link_location_host_delete(link_id, location_id, host_id): if settings.local.sub_plan != 'enterprise_plus': return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) hst = loc.get_host(host_id) if not hst: return flask.abort(404) hst.remove() event.Event(type=LINKS_UPDATED) return utils.jsonify({})
def link_location_host_post(link_id, location_id): if settings.local.sub_plan != 'enterprise_plus': return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) name = utils.filter_str(flask.request.json.get('name')) or 'undefined' timeout = int(flask.request.json.get('timeout') or 0) or None priority = abs(int(flask.request.json.get('priority') or 1)) or 1 hst = link.Host( link=lnk, location=loc, link_id=lnk.id, location_id=loc.id, name=name, timeout=timeout, priority=priority, ) hst.generate_secret() hst.commit() event.Event(type=LINKS_UPDATED) return utils.jsonify(hst.dict())
def link_location_host_conf_get(link_id, location_id, host_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) hst = loc.get_host(host_id) if not hst: return flask.abort(404) data = hst.dict() data['conf'] = hst.get_static_conf() return utils.jsonify(data)
def link_location_transit_post(link_id, location_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk or lnk.type == DIRECT: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) transit_id = utils.ObjectId(flask.request.json.get('transit_id')) loc.add_transit(transit_id) loc.commit('transits') event.Event(type=LINKS_UPDATED) return utils.jsonify({})
def link_location_peer_delete(link_id, location_id, peer_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk or lnk.type == DIRECT: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) loc.add_exclude(peer_id) lnk.commit('excludes') loc.commit('transit_excludes') event.Event(type=LINKS_UPDATED) return utils.jsonify({})
def link_location_host_put(link_id, location_id, host_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) hst = loc.get_host(host_id) if not hst: return flask.abort(404) hst.name = utils.filter_str(flask.request.json.get('name')) or 'undefined' hst.timeout = abs(int(flask.request.json.get('timeout') or 0)) or None hst.priority = abs(int(flask.request.json.get('priority') or 1)) or 1 hst.backoff = abs(int(flask.request.json.get('backoff') or 0)) or None hst.static = bool(flask.request.json.get('static')) hst.public_address = utils.filter_str( flask.request.json.get('public_address')) hst.local_address = utils.filter_str( flask.request.json.get('local_address')) hst.commit(('name', 'timeout', 'priority', 'backoff', 'static', 'public_address', 'local_address')) event.Event(type=LINKS_UPDATED) return utils.jsonify(hst.dict())
def link_location_host_uri_get(link_id, location_id, host_id): if not settings.local.sub_plan or \ 'enterprise' not in settings.local.sub_plan: return flask.abort(404) if settings.app.demo_mode: return utils.demo_blocked() lnk = link.get_by_id(link_id) if not lnk: return flask.abort(404) loc = lnk.get_location(location_id) if not loc: return flask.abort(404) hst = loc.get_host(host_id) if not hst: return flask.abort(404) data = hst.dict() data['uri'] = hst.get_uri() return utils.jsonify(data)