waku.py
1 # Python Imports 2 import logging 3 from typing import Union 4 5 from pydantic import NonNegativeInt 6 7 # Project Imports 8 from src.deployments.pod_api_requester.configs import Target 9 from src.deployments.pod_api_requester.pod_api_requester import _DEFAULTS, pod_api_request, wrap_arg 10 11 logger = logging.getLogger(__name__) 12 13 14 async def waku_publish( 15 namespace: str, 16 target: Union[Target, str], 17 content_topic: str = "/my-app/1/dst/proto", 18 cluster_id: NonNegativeInt = 2, 19 port: NonNegativeInt = 8645, 20 msg_size_kbytes: NonNegativeInt = 10, 21 ) -> dict: 22 return await pod_api_request( 23 namespace=namespace, 24 service_name=_DEFAULTS["service_name"], 25 app=_DEFAULTS["app"], 26 url_template="http://{target_ip}:{node_port}/waku/relay", 27 data={ 28 "target": wrap_arg(target), 29 "content_topic": content_topic, 30 "cluster_id": cluster_id, 31 "port": port, 32 "msg_size_kbytes": msg_size_kbytes, 33 }, 34 )