diff --git a/utils/clientfunctions.py b/utils/clientfunctions.py index 4e57764..6a1f1fc 100644 --- a/utils/clientfunctions.py +++ b/utils/clientfunctions.py @@ -108,19 +108,24 @@ def getPolicyAllowlists(url, groupid): return data def getPolicyName(url, groupid): - endpoint = url + '/v1/group/' - payload = { - - } + payload = {} headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) + data = pd.DataFrame(result["response"]["groups"]) - name = data.loc[data['groupid'] == f"{groupid}", 'name'].values[0] + + # Safely attempt to get the policy name + filtered = data.loc[data['groupid'] == str(groupid), 'name'] + if not filtered.empty: + name = filtered.values[0] + else: + name = None # or "Unknown", depending on your preference + return name @@ -193,6 +198,24 @@ def findAllAgents(url): response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["agents"]) + + group_ids = sorted(data['groupid'].unique().tolist()) + group_policy_map = {} + + for groupid in group_ids: + policy_name = getPolicyName(url, groupid) + group_policy_map[groupid] = policy_name + + data['policy_name'] = data['groupid'].map(group_policy_map) + + status_map = { + 0: 'Offline', + 1: 'Online', + 2: 'Hidden', + 3: 'Safemode' + } + + data['status'] = data['status'].map(status_map) return(data) def findAgents(url, device_input_str):