mirror of https://github.com/MISP/PyMISP
Added some getters and setters for taxonomies, warninglists, noticelists and tags & documentation
parent
1445a9908d
commit
cda68b3f44
140
pymisp/api.py
140
pymisp/api.py
|
@ -226,7 +226,7 @@ class PyMISP(object):
|
|||
try:
|
||||
json_response = response.json()
|
||||
except ValueError:
|
||||
# It the server didn't return a JSON blob, we've a problem.
|
||||
# If the server didn't return a JSON blob, we've a problem.
|
||||
raise PyMISPError(everything_broken.format(response.request.headers, response.request.body, response.text))
|
||||
|
||||
errors = []
|
||||
|
@ -1676,63 +1676,199 @@ class PyMISP(object):
|
|||
# ############## Tags ##################
|
||||
|
||||
def get_tags_list(self):
|
||||
"""Get the list of existing tags"""
|
||||
"""Get the list of existing tags."""
|
||||
url = urljoin(self.root_url, '/tags')
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)['Tag']
|
||||
|
||||
def get_tag(self, tag_id):
|
||||
"""Get a tag by id."""
|
||||
url = urljoin(self.root_url, '/tags/view/{}'.format(tag_id))
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def _set_tag_parameters(self, name, colour, exportable, hide_tag, org_id, count, user_id, numerical_value,
|
||||
attribute_count, old_tag):
|
||||
tag = old_tag
|
||||
if name is not None:
|
||||
tag['name'] = name
|
||||
if colour is not None:
|
||||
tag['colour'] = colour
|
||||
if exportable is not None:
|
||||
tag['exportable'] = exportable
|
||||
if hide_tag is not None:
|
||||
tag['hide_tag'] = hide_tag
|
||||
if org_id is not None:
|
||||
tag['org_id'] = org_id
|
||||
if count is not None:
|
||||
tag['count'] = count
|
||||
if user_id is not None:
|
||||
tag['user_id'] = user_id
|
||||
if numerical_value is not None:
|
||||
tag['numerical_value'] = numerical_value
|
||||
if attribute_count is not None:
|
||||
tag['attribute_count'] = attribute_count
|
||||
|
||||
return {'Tag': tag}
|
||||
|
||||
def edit_tag(self, tag_id, name=None, colour=None, exportable=None, hide_tag=None, org_id=None, count=None,
|
||||
user_id=None, numerical_value=None, attribute_count=None):
|
||||
"""Edit only the provided parameters of a tag."""
|
||||
old_tag = self.get_tag(tag_id)
|
||||
new_tag = self._set_tag_parameters(name, colour, exportable, hide_tag, org_id, count, user_id,
|
||||
numerical_value, attribute_count, old_tag)
|
||||
url = urljoin(self.root_url, '/tags/edit/{}'.format(tag_id))
|
||||
response = self._prepare_request('POST', url, json.dumps(new_tag))
|
||||
return self._check_response(response)
|
||||
|
||||
def edit_tag_json(self, json_file, tag_id):
|
||||
"""Edit the tag using a json file."""
|
||||
with open(json_file, 'rb') as f:
|
||||
jdata = json.load(f)
|
||||
url = urljoin(self.root_url, '/tags/edit/{}'.format(tag_id))
|
||||
response = self._prepare_request('POST', url, json.dumps(jdata))
|
||||
return self._check_response(response)
|
||||
|
||||
def enable_tag(self, tag_id):
|
||||
"""Enable a tag by id."""
|
||||
response = self.edit_tag(tag_id, hide_tag=False)
|
||||
return response
|
||||
|
||||
def disable_tag(self, tag_id):
|
||||
"""Disable a tag by id."""
|
||||
response = self.edit_tag(tag_id, hide_tag=True)
|
||||
return response
|
||||
|
||||
# ############## Taxonomies ##################
|
||||
|
||||
def get_taxonomies_list(self):
|
||||
"""Get all the taxonomies."""
|
||||
url = urljoin(self.root_url, '/taxonomies')
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def get_taxonomy(self, taxonomy_id):
|
||||
"""Get a taxonomy by id."""
|
||||
url = urljoin(self.root_url, '/taxonomies/view/{}'.format(taxonomy_id))
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def update_taxonomies(self):
|
||||
"""Update all the taxonomies."""
|
||||
url = urljoin(self.root_url, '/taxonomies/update')
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def enable_taxonomy(self, taxonomy_id):
|
||||
"""Enable a taxonomy by id."""
|
||||
url = urljoin(self.root_url, '/taxonomies/enable/{}'.format(taxonomy_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def disable_taxonomy(self, taxonomy_id):
|
||||
"""Disable a taxonomy by id."""
|
||||
url = urljoin(self.root_url, '/taxonomies/disable/{}'.format(taxonomy_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def get_taxonomy_tags_list(self, taxonomy_id):
|
||||
"""Get all the tags of a taxonomy by id."""
|
||||
url = urljoin(self.root_url, '/taxonomies/view/{}'.format(taxonomy_id))
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)["entries"]
|
||||
|
||||
def enable_taxonomy_tags(self, taxonomy_id):
|
||||
"""Enable all the tags of a taxonomy by id."""
|
||||
url = urljoin(self.root_url, '/taxonomies/addTag/{}'.format(taxonomy_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def disable_taxonomy_tags(self, taxonomy_id):
|
||||
"""Disable all the tags of a taxonomy by id."""
|
||||
url = urljoin(self.root_url, '/taxonomies/disableTag/{}'.format(taxonomy_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
|
||||
# ############## WarningLists ##################
|
||||
|
||||
def get_warninglists(self):
|
||||
"""Get all the warninglists."""
|
||||
url = urljoin(self.root_url, '/warninglists')
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def get_warninglist(self, warninglist_id):
|
||||
"""Get a warninglist by id."""
|
||||
url = urljoin(self.root_url, '/warninglists/view/{}'.format(warninglist_id))
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def update_warninglists(self):
|
||||
"""Update all the warninglists."""
|
||||
url = urljoin(self.root_url, '/warninglists/update')
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def enable_warninglist(self, warninglist_id):
|
||||
"""Enable a warninglist by id."""
|
||||
url = urljoin(self.root_url, '/warninglists/enableWarninglist/{}/true'.format(warninglist_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def disable_warninglist(self, warninglist_id):
|
||||
"""Disable a warninglist by id."""
|
||||
url = urljoin(self.root_url, '/warninglists/enableWarninglist/{}'.format(warninglist_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
# ############## NoticeLists ##################
|
||||
|
||||
def get_noticelists(self):
|
||||
"""Get all the noticelists."""
|
||||
url = urljoin(self.root_url, '/noticelists')
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def get_noticelist(self, noticelist_id):
|
||||
"""Get a noticelist by id."""
|
||||
url = urljoin(self.root_url, '/noticelists/view/{}'.format(noticelist_id))
|
||||
response = self._prepare_request('GET', url)
|
||||
|
||||
def update_noticelists(self):
|
||||
"""Update all the noticelists."""
|
||||
url = urljoin(self.root_url, '/noticelists/update')
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def enable_noticelist(self, noticelist_id):
|
||||
"""Enable a noticelist by id."""
|
||||
url = urljoin(self.root_url, '/noticelists/enableNoticelist/{}/true'.format(noticelist_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def disable_noticelist(self, noticelist_id):
|
||||
"""Disable a noticelist by id."""
|
||||
url = urljoin(self.root_url, '/noticelists/enableNoticelist/{}'.format(noticelist_id))
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
||||
# ############## Galaxies/Clusters ##################
|
||||
|
||||
def get_galaxies(self):
|
||||
"""Get all the galaxies."""
|
||||
url = urljoin(self.root_url, '/galaxies')
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def get_galaxy(self, galaxy_id):
|
||||
"""Get a galaxy by id."""
|
||||
url = urljoin(self.root_url, '/galaxies/view/{}'.format(galaxy_id))
|
||||
response = self._prepare_request('GET', url)
|
||||
return self._check_response(response)
|
||||
|
||||
def update_galaxies(self):
|
||||
"""Update all the galaxies."""
|
||||
url = urljoin(self.root_url, '/galaxies/update')
|
||||
response = self._prepare_request('POST', url)
|
||||
return self._check_response(response)
|
||||
|
|
Loading…
Reference in New Issue