def delete_eru_node(request): eru_container_id = request.form['id'] if request.form['type'] == 'node': models.node.delete_eru_instance(eru_container_id) else: models.proxy.delete_eru_instance(eru_container_id) rm_containers([eru_container_id])
def _rm_containers(cids): rm_containers(cids) for c in cids: try: models.node.delete_eru_instance(c) except ValueError as e: logging.exception(e)
def create_eru_proxy(request): container_info = None try: cluster = models.cluster.get_by_id(int(request.form['cluster_id'])) if cluster is None or len(cluster.nodes) == 0: raise ValueError('no such cluster') port = int(request.form.get('port', 8889)) if not 8000 <= port <= 9999: raise ValueError('invalid port') container_info = deploy_proxy( request.form['pod'], int(request.form['threads']), request.form.get('read_slave') == 'rs', request.form['netmode'], host=request.form.get('host'), port=port) models.proxy.create_eru_instance( container_info['address'], port, cluster.id, container_info['container_id']) _set_proxy_remote(container_info['address'], port, cluster.nodes[0].host, cluster.nodes[0].port) return base.json_result(container_info) except IntegrityError: if container_info is not None: rm_containers([container_info['container_id']]) raise ValueError('exists') except BaseException as exc: logging.exception(exc) raise
def delete_eru_node(request): eru_container_id = request.form['id'] if request.form['type'] == 'node': models.node.delete_eru_instance(eru_container_id) else: models.proxy.delete_eru_instance(eru_container_id) file_ipc.write_nodes_proxies_from_db() rm_containers([eru_container_id])
def create_eru_node(request): container_info = None try: port = int(request.form.get('port', 6379)) if not 6000 <= port <= 7999: raise ValueError('invalid port') container_info = deploy_node( request.form['pod'], request.form['aof'] == 'y', request.form['netmode'], request.form['cluster'] == 'y', host=request.form.get('host'), port=port) models.node.create_eru_instance(container_info['address'], port, container_info['container_id']) return base.json_result(container_info) except IntegrityError: if container_info is not None: rm_containers([container_info['container_id']]) raise ValueError('exists') except BaseException as exc: logging.exception(exc) raise
def create_eru_proxy(request): def set_remotes(proxy_addr, proxy_port, redis_host, redis_port): time.sleep(1) t = Talker(proxy_addr, proxy_port) try: t.talk('setremotes', redis_host, redis_port) finally: t.close() container_info = None try: cluster = models.cluster.get_by_id(int(request.form['cluster_id'])) if cluster is None or len(cluster.nodes) == 0: raise ValueError('no such cluster') port = int(request.form.get('port', 8889)) if not 8000 <= port <= 9999: raise ValueError('invalid port') container_info = deploy_proxy( request.form['pod'], int(request.form['threads']), request.form.get('read_slave') == 'rs', request.form['netmode'], host=request.form.get('host'), port=port) models.proxy.create_eru_instance( container_info['address'], port, cluster.id, container_info['container_id']) threading.Thread(target=set_remotes, args=( container_info['address'], port, cluster.nodes[0].host, cluster.nodes[0].port)).start() return base.json_result(container_info) except IntegrityError: if container_info is not None: rm_containers([container_info['container_id']]) raise ValueError('exists') except BaseException as exc: logging.exception(exc) raise