This commit is contained in:
Paulus Schoutsen committed 2019-07-31 12:25:30 -07:00
1 parent da05dfe708
commit 4de97abc3a
2676 files changed
+163166 -140084

No files matched your search

@@ -5,23 +5,25 @@ from datetime import timedelta
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.components.device_tracker import (
PLATFORM_SCHEMA, DeviceScanner, DOMAIN
)
from homeassistant.const import (
CONF_HOST, CONF_API_KEY
PLATFORM_SCHEMA,
DeviceScanner,
DOMAIN,
)
from homeassistant.const import CONF_HOST, CONF_API_KEY
SCAN_INTERVAL = timedelta(seconds=120)
CLIENT_ID = 'client_id'
CLIENT_ID = "client_id"
GRANT_TYPE = 'client_credentials'
GRANT_TYPE = "client_credentials"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_HOST): cv.string,
vol.Required(CLIENT_ID): cv.string,
vol.Required(CONF_API_KEY): cv.string,
})
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_HOST): cv.string,
vol.Required(CLIENT_ID): cv.string,
vol.Required(CONF_API_KEY): cv.string,
}
)
_LOGGER = logging.getLogger(__name__)
@@ -29,11 +31,12 @@ _LOGGER = logging.getLogger(__name__)
def get_scanner(hass, config):
"""Initialize Scanner."""
from clearpasspy import ClearPass
data = {
'server': config[DOMAIN][CONF_HOST],
'grant_type': GRANT_TYPE,
'secret': config[DOMAIN][CONF_API_KEY],
'client': config[DOMAIN][CLIENT_ID]
"server": config[DOMAIN][CONF_HOST],
"grant_type": GRANT_TYPE,
"secret": config[DOMAIN][CONF_API_KEY],
"client": config[DOMAIN][CLIENT_ID],
}
cppm = ClearPass(data)
if cppm.access_token is None:
@@ -53,25 +56,22 @@ class CPPMDeviceScanner(DeviceScanner):
def scan_devices(self):
"""Initialize scanner."""
self.get_cppm_data()
return [device['mac'] for device in self.results]
return [device["mac"] for device in self.results]
def get_device_name(self, device):
"""Retrieve device name."""
name = next((
result['name'] for result in self.results
if result['mac'] == device), None)
name = next(
(result["name"] for result in self.results if result["mac"] == device), None
)
return name
def get_cppm_data(self):
"""Retrieve data from Aruba Clearpass and return parsed result."""
endpoints = self._cppm.get_endpoints(100)['_embedded']['items']
endpoints = self._cppm.get_endpoints(100)["_embedded"]["items"]
devices = []
for item in endpoints:
if self._cppm.online_status(item['mac_address']):
device = {
'mac': item['mac_address'],
'name': item['mac_address']
}
if self._cppm.online_status(item["mac_address"]):
device = {"mac": item["mac_address"], "name": item["mac_address"]}
devices.append(device)
else:
continue