def remove_tc(server_id: int, port_num: int): kwargs = { "server_id": server_id, "port_num": port_num, } print(f"Sending tc_runner task, kwargs: {kwargs}") celery_app.send_task("tasks.tc.tc_runner", kwargs=kwargs)
def trigger_tc(port: Port): kwargs = { "server_id": port.server.id, "port_num": port.num, "egress_limit": port.config.get("egress_limit"), "ingress_limit": port.config.get("ingress_limit"), } print(f"Sending tc_runner task, kwargs: {kwargs}") celery_app.send_task("tasks.tc.tc_runner", kwargs=kwargs)
def send_iptables(rule: PortForwardRule): kwargs = { "port_id": rule.port.id, "server_id": rule.port.server.id, "local_port": rule.port.num, "update_status": True, "remote_address": rule.config.get("remote_address"), "remote_port": rule.config.get("remote_port"), "forward_type": rule.config.get("type", "ALL").upper() } print(f"Sending iptables_runner task, kwargs: {kwargs}") celery_app.send_task("tasks.iptables.iptables_runner", kwargs=kwargs)
def apply_port_limits(db: Session, port: Port, action: LimitActionEnum): action_to_speed = { LimitActionEnum.SPEED_LIMIT_10K: 10, LimitActionEnum.SPEED_LIMIT_100K: 100, LimitActionEnum.SPEED_LIMIT_1M: 1000, LimitActionEnum.SPEED_LIMIT_10M: 10000, LimitActionEnum.SPEED_LIMIT_30M: 30000, LimitActionEnum.SPEED_LIMIT_100M: 100000, LimitActionEnum.SPEED_LIMIT_1G: 1000000, } db.refresh(port) if action == LimitActionEnum.NO_ACTION: return elif action == LimitActionEnum.DELETE_RULE: if not port.forward_rule: return delete_forward_rule(db, port.server_id, port.id) celery_app.send_task( "tasks.clean.clean_port_runner", kwargs={"server_id": port.server.id, "port_num": port.num}, ) elif action in action_to_speed: if ( port.config["egress_limit"] != action_to_speed[action] or port.config["ingress_limit"] != action_to_speed[action] ): port.config["egress_limit"] = action_to_speed[action] port.config["ingress_limit"] = action_to_speed[action] db.add(port) db.commit() tc_runner.apply_async( kwargs={ "server_id": port.server.id, "port_num": port.num, "egress_limit": port.config.get("egress_limit"), "ingress_limit": port.config.get("ingress_limit"), }, priority=0, ) else: print(f"No action found {action} for port (id: {port.id})")
def trigger_port_clean(server: Server, port: Port, update_traffic: bool = True): print(f"Sending clean.clean_port_runner task") celery_app.send_task( "tasks.clean.clean_port_runner", kwargs={"server_id": server.id, "port_num": port.num, "update_traffic": update_traffic}, )
def trigger_server_clean(server: Server): print(f"Sending clean.clean_runner task") celery_app.send_task( "tasks.clean.clean_runner", kwargs={"server": ServerEdit(**server.__dict__).dict()}, )
def trigger_server_connect(server_id: int, init: bool = False, **kwargs): kwargs["server_id"] = server_id kwargs["sync_scripts"] = init kwargs["init_iptables"] = init print(f"Sending server.server_runner task") celery_app.send_task("tasks.server.server_runner", kwargs=kwargs)
def trigger_iptables_reset(port: Port): kwargs = {"server_id": port.server.id, "port_num": port.num} print(f"Sending iptables.iptables_reset_runner task") celery_app.send_task("tasks.iptables.iptables_reset_runner", kwargs=kwargs)
def trigger_ansible_hosts(): print(f"Sending ansible_hosts_runner task") celery_app.send_task("tasks.ansible.ansible_hosts_runner")
def clean_finished_handler(runner): celery_app.send_task("tasks.ansible.ansible_hosts_runner")
def home(): result = celery_app.send_task('tasks.add', [1, 2]) result.ready() return str(result.get())
async def run_task(task_name: str, kwargs: t.Dict): celery_app.send_task(f"tasks.{task_name}", kwargs=kwargs) return {"message": "ok"}