Hello,
Needing some help here. Getting the following error message whenever I test my function and not sure what could be causing it.
2019-02-15 09:32:55,080 ERROR [actions_component] type object 'FunctionMessage' has no attribute 'name'Traceback (most recent call last): File "c:\study\python\pycharmprojects\poc\dt_poc\venv\lib\site-packages\resilient_circuits\actions_component.py", line 421, in on_stomp_message log_dir=self.logging_directory) File "c:\study\python\pycharmprojects\poc\dt_poc\venv\lib\site-packages\resilient_circuits\action_message.py", line 243, in __init__ self._log_message(log_dir) File "c:\study\python\pycharmprojects\poc\dt_poc\venv\lib\site-packages\resilient_circuits\action_message.py", line 110, in _log_message filename = "_".join((self.__class__.name, self.displayname,AttributeError: type object 'FunctionMessage' has no attribute 'name'The function:
# -*- coding: utf-8 -*-
# pragma pylint: disable=unused-argument, no-self-use
"""Function implementation"""
import logging
from resilient_circuits import ResilientComponent, function, handler, StatusMessage, FunctionResult, FunctionError
import dt_poc.util.selftest as selftest
class FunctionComponent(ResilientComponent):
"""Component that implements Resilient function 'fn_record_domaintools_domain_risk_score"""
def __init__(self, opts):
"""constructor provides access to the configuration options"""
super(FunctionComponent, self).__init__(opts)
self.options = opts.get("dt_poc", {})
selftest.selftest_function(opts)
@handler("reload")
def _reload(self, event, opts):
"""Configuration options have changed, save new values"""
self.options = opts.get("dt_poc", {})
@function("fn_record_domaintools_domain_risk_score")
def _fn_record_domaintools_domain_risk_score_function(self, event, *args, **kwargs):
"""Function: """
try:
# Get the function parameters:
domaintools_domain_name = kwargs.get("domaintools_domain_name") # text
log = logging.getLogger(__name__)
log.info("domaintools_domain_name: %s", domaintools_domain_name)
# PUT YOUR FUNCTION IMPLEMENTATION CODE HERE
# yield StatusMessage("starting...")
# yield StatusMessage("done...")
results = {
"value": "xyz"
}
# Produce a FunctionResult with the results
yield FunctionResult(results)
except Exception:
yield FunctionError()
This is all very out-of-the-box (not much customization yet, as you can see), so something fundamental must be the issue.
I am on resilient-circuits 32.0.0
The full log:
2019-02-15 13:02:20,236 DEBUG [client] Received MESSAGE frame [headers={'timestamp': '1550264531111', 'reply-to': '/queue/acks.233.domaintools', 'persistent': 'true', 'Co3ContentType': 'application/json', 'message-id': 'ID:partnerlab-42560-1546612026534-3:2:2716:1:1', 'Co3MessagePayload': 'FunctionDataDTO', 'priority': '4', 'subscription': 'actions.233.domaintools', 'ack': 'ID:partnerlab-40690-1546611986322-412:7', 'JMSXUserID': 'SYSTEM', 'destination': '/queue/actions.233.domaintools', 'correlation-id': 'invid:9146', 'Co3ContextToken': 'eyJhbGciOiJIUzI1NiJ9.bnVsbA.nPkoA3LJlnkErRnptTlIXX3fJ7rWVzzHRSPiM_JbnHU', 'expires': '0'}, body=b'{"function":{"creato...', version=1.2]<Message[stomp] ()>2019-02-15 13:02:20,245 DEBUG [stomp_component] Stomp message received2019-02-15 13:02:20,247 DEBUG [actions_component] STOMP listener: message for actions.233.domaintools2019-02-15 13:02:20,249 DEBUG [actions_component] Got Message: MESSAGE frame [headers={'timestamp': '1550264531111', 'reply-to': '/queue/acks.233.domaintools', 'persistent': 'true', 'Co3ContentType': 'application/json', 'message-id': 'ID:partnerlab-42560-1546612026534-3:2:2716:1:1', 'Co3MessagePayload': 'FunctionDataDTO', 'priority': '4', 'subscription': 'actions.233.domaintools', 'ack': 'ID:partnerlab-40690-1546611986322-412:7', 'JMSXUserID': 'SYSTEM', 'destination': '/queue/actions.233.domaintools', 'correlation-id': 'invid:9146', 'Co3ContextToken': 'eyJhbGciOiJIUzI1NiJ9.bnVsbA.nPkoA3LJlnkErRnptTlIXX3fJ7rWVzzHRSPiM_JbnHU', 'expires': '0'}, body=b'{"function":{"creato...', version=1.2]2019-02-15 13:02:20,253 DEBUG [action_message] Source: <Actions/* 2056:MainThread (queued=0) [S]>2019-02-15 13:02:20,255 DEBUG [action_message] Headers: { "timestamp": "1550264531111", "reply-to": "/queue/acks.233.domaintools", "persistent": "true", "Co3ContentType": "application/json", "message-id": "ID:partnerlab-42560-1546612026534-3:2:2716:1:1", "Co3MessagePayload": "FunctionDataDTO", "priority": "4", "subscription": "actions.233.domaintools", "ack": "ID:partnerlab-40690-1546611986322-412:7", "JMSXUserID": "SYSTEM", "destination": "/queue/actions.233.domaintools", "correlation-id": "invid:9146", "Co3ContextToken": "eyJhbGciOiJIUzI1NiJ9.bnVsbA.nPkoA3LJlnkErRnptTlIXX3fJ7rWVzzHRSPiM_JbnHU", "expires": "0"}2019-02-15 13:02:20,259 DEBUG [action_message] Message: { "function": { "creator": null, "description": null, "display_name": "fn Record DomainTools Domain Risk Score", "id": 394, "name": "fn_record_domaintools_domain_risk_score", "uuid": null, "version": null, "view_items": [], "workflows": [] }, "groups": [], "inputs": { "domaintools_domain_name": "test.com" }, "principal": { "display_name": "Tony Bufort", "id": 108, "name": "tbufort@domaintools.com", "type": "user" }, "workflow": { "actions": [], "description": null, "name": "Workflow Record DomainTools Domain Risk Score", "object_type": { "name": "artifact", "id": 4 }, "programmatic_name": "workflow_record_domaintools_domain_risk_score", "uuid": null, "workflow_id": 320 }, "workflow_instance": { "workflow": { "actions": [], "description": null, "name": "Workflow Record DomainTools Domain Risk Score", "object_type": { "name": "artifact", "id": 4 }, "programmatic_name": "workflow_record_domaintools_domain_risk_score", "uuid": null, "workflow_id": 320 }, "workflow_instance_id": 1718 }}2019-02-15 13:02:20,263 ERROR [actions_component] type object 'FunctionMessage' has no attribute 'name'Traceback (most recent call last): File "c:\study\python\pycharmprojects\poc\dt_poc\venv\lib\site-packages\resilient_circuits\actions_component.py", line 421, in on_stomp_message log_dir=self.logging_directory) File "c:\study\python\pycharmprojects\poc\dt_poc\venv\lib\site-packages\resilient_circuits\action_message.py", line 243, in __init__ self._log_message(log_dir) File "c:\study\python\pycharmprojects\poc\dt_poc\venv\lib\site-packages\resilient_circuits\action_message.py", line 110, in _log_message filename = "_".join((self.__class__.name, self.displayname,AttributeError: type object 'FunctionMessage' has no attribute 'name'2019-02-15 13:02:20,268 DEBUG [client] Received heart-beat<Message_success[stomp] (<Message[stomp] ()>, None )><ServerHeartbeat[*] ()><ServerHeartbeat_success[*] (<ServerHeartbeat[*] ()>, None )>2019-02-15 13:02:40,036 DEBUG [client] Received heart-beatThanks,
-Tony
P.S. - If this is not the best place to post help requests, please advise.
------------------------------
Anthony Bufort
------------------------------