get sites and map for unifi even if its a description (alias)

This commit is contained in:
Nicholas St. Germain 2019-04-23 23:19:06 -05:00
parent 5b7fddddaf
commit d9b6e825f3

View file

@ -14,6 +14,7 @@ class UniFiAPI(object):
self.logger = getLogger() self.logger = getLogger()
self.get_cookie() self.get_cookie()
self.get_site()
def __repr__(self): def __repr__(self):
return f"<unifi-{self.server.id}>" return f"<unifi-{self.server.id}>"
@ -25,11 +26,27 @@ class UniFiAPI(object):
post = connection_handler(self.session, req, self.server.verify_ssl, as_is_reply=True) post = connection_handler(self.session, req, self.server.verify_ssl, as_is_reply=True)
if not post or not post.cookies.get('unifises'): if not post or not post.cookies.get('unifises'):
self.logger.error(f"Could not retrieve session cookie from UniFi Controller")
return return
cookies = {'unifises': post.cookies.get('unifises')} cookies = {'unifises': post.cookies.get('unifises')}
self.session.cookies.update(cookies) self.session.cookies.update(cookies)
def get_site(self):
endpoint = '/api/self/sites'
req = self.session.prepare_request(Request('GET', self.server.url + endpoint))
get = connection_handler(self.session, req, self.server.verify_ssl)
if not get:
self.logger.error(f"Could not get list of sites from UniFi Controller")
return
site = [site['name'] for site in get['data'] if site['name'].lower() == self.server.site.lower()
or site['desc'].lower() == self.server.site.lower()]
if site:
self.server.site = site[0]
else:
self.logger.error(f"Could not map site {self.server.site} to a site id/alias")
def get_usg_stats(self): def get_usg_stats(self):
now = datetime.now(timezone.utc).astimezone().isoformat() now = datetime.now(timezone.utc).astimezone().isoformat()
endpoint = f'/api/s/{self.server.site}/stat/device' endpoint = f'/api/s/{self.server.site}/stat/device'