Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def from_ui(self, uri):
"""Retrieve a Carbon Black Enterprise Response object based on URL from the Carbon Black Enterprise Response
web user interface.
For example, calling this function with
``https://server/#/analyze/00000001-0000-0554-01d1-3bc4553b8c9f/1`` as the ``uri`` argument will return a new
:py:class: cbapi.response.models.Process class initialized with the process GUID from the URL.
:param str uri: Web browser URL from the Cb web interface
:return: the appropriate model object for the URL provided
:raises ApiError: if the URL does not correspond to a recognized model object
"""
o = urllib.parse.urlparse(uri)
if self._parsed_url.scheme != o.scheme \
or self._parsed_url.hostname != o.hostname \
or self._parsed_url.port != o.port:
raise ApiError("Invalid URL provided")
frag = o.fragment.lstrip('/')
parts = frag.split('/')
if len(parts) < 2:
raise ApiError("URL endpoint does not include a unique ID: %s" % uri)
if frag.startswith('analyze'):
(analyze, procid, segment) = parts[:3]
return self.select(Process, procid, int(segment))
elif frag.startswith('binary'):
(binary, md5) = parts[:2]
return self.select(Binary, md5)
def set_ignored(self, ignored_flag=True):
qt = (("cb.urlver", "1"), ("q", self._query))
search_query = "&".join(("{0}={1}".format(k, urllib.parse.quote(v)) for k, v in qt))
payload = {"updates": {"is_ignored": ignored_flag}, "query": search_query}
self._cb.post_object("/api/v1/threat_report", payload)
def query(self, new_query):
self._reset_query()
qt = list(self._query)
qt.append(("q", new_query))
self.search_query = "&".join(("{0}={1}".format(k, urllib.parse.quote(v)) for k, v in qt))
new_q = []
template_items = self._query_template.copy()
for k, v in qt:
if k == "q" or k.startswith("cb.q."):
pass
else:
new_q.append((k, v))
if k in template_items:
del template_items[k]
for k, v in iteritems(template_items):
new_q.append((k, v))
self.search_query = urllib.parse.urlencode(new_q)
def webui_link(self):
return "{0:s}/#/search?{1}".format(self._cb.url, urllib.parse.urlencode(
convert_query_params(self._get_query_parameters())))