def publish_token_request()

in src/influxDBTelemetryPublisher.py [0:0]


def publish_token_request(ipc_publisher_client, publish_topic) -> None:
    """
    Publish a token request to the specified publish topic.

    Parameters
    ----------
        ipc_publisher_client(awsiot.greengrasscoreipc.client): the Greengrass IPC client
        publish_topic(str): the topic to publish the request on

    Returns
    -------
        None
    """

    request = PublishToTopicRequest()
    request.topic = publish_topic
    publish_message = PublishMessage()
    publish_message.json_message = JsonMessage(message={"action": "RetrieveToken",  "accessLevel": "RW"})
    request.publish_message = publish_message
    publish_operation = ipc_publisher_client.new_publish_to_topic()
    try:
        publish_operation.activate(request)
        futureResponse = publish_operation.get_response()
        futureResponse.result(TIMEOUT)
    except concurrent.futures.TimeoutError as e:
        logging.error('Timeout occurred while publishing to topic: {}'.format(publish_topic), exc_info=True)
        raise e
    except UnauthorizedError as e:
        logging.error('Unauthorized error while publishing to topic: {}'.format(publish_topic), exc_info=True)
        raise e
    except Exception as e:
        logging.error('Exception while publishing to topic: {}'.format(publish_topic), exc_info=True)
        raise e