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