fix: normalizing the outputs

pull/271/head
Raphaël Vinot 2018-08-28 17:30:07 -04:00
parent f4c0b92305
commit 8b8459ce53
8 changed files with 31 additions and 25 deletions

View File

@ -57,6 +57,14 @@ class Analysis(Enum):
completed = 2 completed = 2
def _int_to_str(d):
# transform all integer back to string
for k, v in d.items():
if isinstance(v, (int, float)) and not isinstance(v, bool):
d[k] = str(v)
return d
class MISPEncode(JSONEncoder): class MISPEncode(JSONEncoder):
def default(self, obj): def default(self, obj):
@ -151,6 +159,7 @@ class AbstractMISP(collections.MutableMapping):
else: else:
val = self._datetime_to_timestamp(val) val = self._datetime_to_timestamp(val)
to_return[attribute] = val to_return[attribute] = val
to_return = _int_to_str(to_return)
return to_return return to_return
def jsonable(self): def jsonable(self):
@ -214,7 +223,7 @@ class AbstractMISP(collections.MutableMapping):
"""Convert a datetime.datetime object to a timestamp (int)""" """Convert a datetime.datetime object to a timestamp (int)"""
if isinstance(d, (int, str)) or (sys.version_info < (3, 0) and isinstance(d, unicode)): if isinstance(d, (int, str)) or (sys.version_info < (3, 0) and isinstance(d, unicode)):
# Assume we already have a timestamp # Assume we already have a timestamp
return d return int(d)
if sys.version_info >= (3, 3): if sys.version_info >= (3, 3):
return int(d.timestamp()) return int(d.timestamp())
else: else:

View File

@ -247,7 +247,6 @@ class MISPAttribute(AbstractMISP):
to_return = super(MISPAttribute, self).to_dict() to_return = super(MISPAttribute, self).to_dict()
if to_return.get('data'): if to_return.get('data'):
to_return['data'] = base64.b64encode(self.data.getvalue()).decode() to_return['data'] = base64.b64encode(self.data.getvalue()).decode()
to_return = _int_to_str(to_return)
return to_return return to_return
def _prepare_new_malware_sample(self): def _prepare_new_malware_sample(self):
@ -573,9 +572,7 @@ class MISPEvent(AbstractMISP):
if to_return.get('publish_timestamp'): if to_return.get('publish_timestamp'):
to_return['publish_timestamp'] = self._datetime_to_timestamp(self.publish_timestamp) to_return['publish_timestamp'] = self._datetime_to_timestamp(self.publish_timestamp)
to_return = _int_to_str(to_return) return {'Event': _int_to_str(to_return)}
to_return = {'Event': to_return}
return to_return
def add_proposal(self, shadow_attribute=None, **kwargs): def add_proposal(self, shadow_attribute=None, **kwargs):
"""Alias for add_shadow_attribute""" """Alias for add_shadow_attribute"""

View File

@ -37,12 +37,12 @@
} }
], ],
"description": "Whois records information for a domain name or an IP address.", "description": "Whois records information for a domain name or an IP address.",
"distribution": 5, "distribution": "5",
"meta-category": "network", "meta-category": "network",
"name": "whois", "name": "whois",
"sharing_group_id": 0, "sharing_group_id": "0",
"template_uuid": "429faea1-34ff-47af-8a00-7c62d3be5a6a", "template_uuid": "429faea1-34ff-47af-8a00-7c62d3be5a6a",
"template_version": 10, "template_version": "10",
"uuid": "a" "uuid": "a"
} }
], ],

View File

@ -26,12 +26,12 @@
} }
], ],
"description": "File object describing a file with meta-information", "description": "File object describing a file with meta-information",
"distribution": 5, "distribution": "5",
"meta-category": "file", "meta-category": "file",
"name": "file", "name": "file",
"sharing_group_id": 0, "sharing_group_id": "0",
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215", "template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
"template_version": 13, "template_version": "13",
"uuid": "a" "uuid": "a"
}, },
{ {
@ -46,12 +46,12 @@
} }
], ],
"description": "url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.", "description": "url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.",
"distribution": 5, "distribution": "5",
"meta-category": "network", "meta-category": "network",
"name": "url", "name": "url",
"sharing_group_id": 0, "sharing_group_id": "0",
"template_uuid": "60efb77b-40b5-4c46-871b-ed1ed999fce5", "template_uuid": "60efb77b-40b5-4c46-871b-ed1ed999fce5",
"template_version": 6, "template_version": "6",
"uuid": "b" "uuid": "b"
} }
] ]

View File

@ -18,12 +18,12 @@
} }
], ],
"description": "File object describing a file with meta-information", "description": "File object describing a file with meta-information",
"distribution": 5, "distribution": "5",
"meta-category": "file", "meta-category": "file",
"name": "file", "name": "file",
"sharing_group_id": 0, "sharing_group_id": "0",
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215", "template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
"template_version": 13, "template_version": "13",
"uuid": "a" "uuid": "a"
}, },
{ {
@ -43,12 +43,12 @@
} }
], ],
"description": "File object describing a file with meta-information", "description": "File object describing a file with meta-information",
"distribution": 5, "distribution": "5",
"meta-category": "file", "meta-category": "file",
"name": "file", "name": "file",
"sharing_group_id": 0, "sharing_group_id": "0",
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215", "template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
"template_version": 13, "template_version": "13",
"uuid": "b" "uuid": "b"
} }
] ]

View File

@ -21,13 +21,13 @@
} }
], ],
"description": "TestTemplate.", "description": "TestTemplate.",
"distribution": 5, "distribution": "5",
"meta-category": "file", "meta-category": "file",
"misp_objects_path_custom": "tests/mispevent_testfiles", "misp_objects_path_custom": "tests/mispevent_testfiles",
"name": "test_object_template", "name": "test_object_template",
"sharing_group_id": 0, "sharing_group_id": "0",
"template_uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589", "template_uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589",
"template_version": 1, "template_version": "1",
"uuid": "a" "uuid": "a"
} }
], ],

View File

@ -1,5 +1,5 @@
{ {
"timestamp": 11111111, "timestamp": "11111111",
"type": "bar", "type": "bar",
"value": "1" "value": "1"
} }

View File

@ -21,7 +21,7 @@
"misp-attribute": "text" "misp-attribute": "text"
} }
}, },
"version": 1, "version": "1",
"description": "TestTemplate.", "description": "TestTemplate.",
"meta-category": "file", "meta-category": "file",
"uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589", "uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589",