mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-11 15:56:07 -07:00
Check local server directly
This commit is contained in:
parent
ab5384cfdf
commit
3446f5543d
3 changed files with 25 additions and 14 deletions
|
@ -33,7 +33,9 @@ class HTTPHandler(object):
|
||||||
Retrieve data from Plex Server
|
Retrieve data from Plex Server
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, urls, headers=None, token=None, timeout=10, ssl_verify=True):
|
def __init__(self, urls, headers=None, token=None, timeout=10, ssl_verify=True, silent=False):
|
||||||
|
self._silent = silent
|
||||||
|
|
||||||
if isinstance(urls, basestring):
|
if isinstance(urls, basestring):
|
||||||
self.urls = urls.split() or urls.split(',')
|
self.urls = urls.split() or urls.split(',')
|
||||||
else:
|
else:
|
||||||
|
@ -131,6 +133,7 @@ class HTTPHandler(object):
|
||||||
for work in pool.imap_unordered(part, urls, chunk):
|
for work in pool.imap_unordered(part, urls, chunk):
|
||||||
yield work
|
yield work
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
if not self._silent:
|
||||||
logger.error(u"Failed to yield request: %s" % e)
|
logger.error(u"Failed to yield request: %s" % e)
|
||||||
finally:
|
finally:
|
||||||
pool.close()
|
pool.close()
|
||||||
|
@ -141,12 +144,15 @@ class HTTPHandler(object):
|
||||||
try:
|
try:
|
||||||
r = session.request(self.request_type, url, headers=self.headers, timeout=self.timeout)
|
r = session.request(self.request_type, url, headers=self.headers, timeout=self.timeout)
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
|
if not self._silent:
|
||||||
logger.warn(u"Failed to access uri endpoint %s with error %s" % (self.uri, e))
|
logger.warn(u"Failed to access uri endpoint %s with error %s" % (self.uri, e))
|
||||||
return None
|
return None
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
if not self._silent:
|
||||||
logger.warn(u"Failed to access uri endpoint %s. Is your server maybe accepting SSL connections only? %s" % (self.uri, e))
|
logger.warn(u"Failed to access uri endpoint %s. Is your server maybe accepting SSL connections only? %s" % (self.uri, e))
|
||||||
return None
|
return None
|
||||||
except:
|
except:
|
||||||
|
if not self._silent:
|
||||||
logger.warn(u"Failed to access uri endpoint %s with Uncaught exception." % self.uri)
|
logger.warn(u"Failed to access uri endpoint %s with Uncaught exception." % self.uri)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -157,6 +163,7 @@ class HTTPHandler(object):
|
||||||
if response_status in (200, 201):
|
if response_status in (200, 201):
|
||||||
return self._http_format_output(response_content, response_headers)
|
return self._http_format_output(response_content, response_headers)
|
||||||
else:
|
else:
|
||||||
|
if not self._silent:
|
||||||
logger.warn(u"Failed to access uri endpoint %s. Status code %r" % (self.uri, response_status))
|
logger.warn(u"Failed to access uri endpoint %s. Status code %r" % (self.uri, response_status))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -183,5 +190,6 @@ class HTTPHandler(object):
|
||||||
return output
|
return output
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
if not self._silent:
|
||||||
logger.warn(u"Failed format response from uri %s to %s error %s" % (self.uri, self.output_format, e))
|
logger.warn(u"Failed format response from uri %s to %s error %s" % (self.uri, self.output_format, e))
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -687,10 +687,14 @@ class PlexTV(object):
|
||||||
""" Query plex for all servers online. Returns the ones you own in a selectize format """
|
""" Query plex for all servers online. Returns the ones you own in a selectize format """
|
||||||
|
|
||||||
# Try to discover localhost server
|
# Try to discover localhost server
|
||||||
pms_connect = pmsconnect.PmsConnect(url='http://127.0.0.1:32400')
|
local_machine_identifier = None
|
||||||
pms_connect.request_handler.timeout = 1
|
request_handler = http_handler.HTTPHandler(urls='http://127.0.0.1:32400', timeout=1,
|
||||||
identity = pms_connect.get_server_identity(log=False)
|
ssl_verify=False, silent=True)
|
||||||
local_machine_identifier = identity.get('machine_identifier')
|
request = request_handler.make_request(uri='/identity', request_type='GET', output_format='xml')
|
||||||
|
if request:
|
||||||
|
xml_head = request.getElementsByTagName('MediaContainer')[0]
|
||||||
|
local_machine_identifier = xml_head.getAttribute('machineIdentifier')
|
||||||
|
|
||||||
local_server = {'httpsRequired': '0',
|
local_server = {'httpsRequired': '0',
|
||||||
'clientIdentifier': local_machine_identifier,
|
'clientIdentifier': local_machine_identifier,
|
||||||
'label': 'Local',
|
'label': 'Local',
|
||||||
|
|
|
@ -2193,7 +2193,7 @@ class PmsConnect(object):
|
||||||
|
|
||||||
return server_info
|
return server_info
|
||||||
|
|
||||||
def get_server_identity(self, log=True):
|
def get_server_identity(self):
|
||||||
"""
|
"""
|
||||||
Return the local machine identity.
|
Return the local machine identity.
|
||||||
|
|
||||||
|
@ -2204,7 +2204,6 @@ class PmsConnect(object):
|
||||||
try:
|
try:
|
||||||
xml_head = identity.getElementsByTagName('MediaContainer')
|
xml_head = identity.getElementsByTagName('MediaContainer')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if log:
|
|
||||||
logger.warn(u"Tautulli Pmsconnect :: Unable to parse XML for get_local_server_identity: %s." % e)
|
logger.warn(u"Tautulli Pmsconnect :: Unable to parse XML for get_local_server_identity: %s." % e)
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue