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': 'a
pplication/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': 'eyJhbGciOiJIUzI1N
iJ9.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 received
2019-02-15 13:02:20,247 DEBUG [actions_component] STOMP listener: message for actions.233.domaintools
2019-02-15 13:02:20,249 DEBUG [actions_component] Got Message: MESSAGE frame [headers={'timestamp': '1550264531111', 'reply-to': '/queue/acks.233.domaintools', 'persistent': 'true', 'Co3C
ontentType': 'application/json', 'message-id': 'ID:partnerlab-42560-1546612026534-3:2:2716:1:1', 'Co3MessagePayload': 'FunctionDataDTO', 'priority': '4', 'subscription': 'actions.233.doma
intools', 'ack': 'ID:partnerlab-40690-1546611986322-412:7', 'JMSXUserID': 'SYSTEM', 'destination': '/queue/actions.233.domaintools', 'correlation-id': 'invid:9146', 'Co3ContextToken': 'ey
JhbGciOiJIUzI1NiJ9.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-beat
Thanks,
-Tony
P.S. - If this is not the best place to post help requests, please advise.
------------------------------
Anthony Bufort
------------------------------