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      )