You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.0 KiB

import sys
import uuid
from splunk.models.message import Message
class Messenger:
@classmethod
def createMessage(cls, text, key, msgid=None, namespace='SA-Hydra', owner='nobody', suppress=False):
'''Creates a UI message.
@param text: The message text.
@param key: A sessionKey for the Splunk session
@param msgid: A unique identifier to use for identifying the message. One will
be created if not provided as a parameter.
@param namespace: A Splunk namespace for the message.
@param owner: A Splunk owner for the message.
@param suppress: A boolean variable. If passed as true, It will suppress the message.
@return: A unique identifier that can be used to remove the message,
or None in the event that the message couldn't be created.
'''
if not suppress:
msgid = msgid or str(uuid.uuid4())
message = Message(namespace, owner, msgid, sessionKey=key)
message.value = text
success = message.passive_save()
if success:
return msgid
else:
# Message creation failed.
pass
else:
# Message suppressed from the UI; send to STDOUT only
sys.stdout.write(text + '\n')
return None
def deleteMessage(self, namespace, owner, msgid, key):
'''Deletes a UI message.
@param namespace: A Splunk namespace for the message.
@param owner: A Splunk owner for the message.
@param msgid: A unique identifier to use for identifying the message. One will
be created if not provided as a parameter.
@param key: A sessionKey for the Splunk session
@return: True, False, or None indicating success/failure/nonexistent message ID, respectively.
'''
message = Message.get(Message.build_id(msgid, namespace, owner), sessionKey=key)
return message.delete()