import requests import json DEBUG = False url = "https://sso.common.cloud.hpe.com/as/token.oauth2" payload = { "grant_type": "client_credentials", "client_id": "65098f0f-747f-4c13-a338-c13028184ecd", "client_secret": "710067957ef344918e90f8c890655f5e" } headers = { "accept": "application/json", "content-type": "application/x-www-form-urlencoded" } all_text=""" all: vars: ansible_network_os: arubanetworks.aoscx.aoscx ansible_connection: arubanetworks.aoscx.aoscx # REST API via pyaoscx connection method ansible_aoscx_validate_certs: False ansible_aoscx_use_proxy: False ansible_acx_no_proxy: True ansible_ssh_common_args: "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" """ response = requests.post(url, data=payload, headers=headers) #print(response.text) response_json=json.loads(response.text) access_token=response_json['access_token'] devices={} page_count=1 page_size=100 url_base='https://us4.api.central.arubanetworks.com' while True: url = f"{url_base}/network-monitoring/v1alpha1/devices?limit={page_size}&next={page_count}" #url = f"{url_base}/network-monitoring/v1alpha1/device-inventory?limit={page_size}&next={page_count}" headers = { "accept": "application/json", "authorization": f"Bearer {access_token}" } response = requests.get(url, headers=headers) items = json.loads(response.text)['items'] for d in items: #print (d['deviceName']) if d['status']=="ONLINE": devices[d['deviceName']]=d if DEBUG: print(d['deviceName']) if json.loads(response.text)['next'] is None: break page_count+=1 for d in devices: if devices[d]['deployment']=='Stack': if DEBUG: print(d,'Stack',devices[d]) headers['site-id']=devices[d]['siteId'] url = f"{url_base}/network-monitoring/v1alpha1/stack/{devices[d]['id']}/members" response = requests.get(url, headers=headers) if DEBUG: print(response.text) current_building='' #print (devices) for d in sorted(devices): building=devices[d]['deviceName'].split("-")[0] if not building == current_building: print(f"{building}:") print( " hosts:") current_building=building print(f" {devices[d]['deviceName']}:") print(f" ansible_host: {devices[d]['ipv4']}") print(f" building_name: {current_building}") print(f" serial_num: {devices[d]['serialNumber']}") print(f"{all_text}")