get sites and map for unifi even if its a description (alias)
This commit is contained in:
parent
5b7fddddaf
commit
d9b6e825f3
1 changed files with 17 additions and 0 deletions
|
@ -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'
|
||||||
|
|
Loading…
Reference in a new issue