Open JYarg72 opened 6 days ago
Hi @JYarg72 ,
Let me check that.
PS: I removed the Device Claim Code from your comment.
Can you send me your CSV file by email?
Sure, it has been sent.
Hi @JYarg72 ,
The script has been fixed.
The issue was coming from a copy/paste used to remove some Excel characters from the CSV file (\ufeff
) I added to multiple scripts, but in this case the variable name was conflicting with another variable.
Can you give it a try?
Thanks
Thomas, the script executed perfectly for me this morning. Thank you for your prompt attention to this issue
Hello Thomas, we've found a problem with the inventory_assign.py script. I've provided output of it failing with using site_id, claimcode(ap gets claimed, but does not get assigned to a site) and using site_id,mac(ap does not get assigned to a site). Also the relevant script log is included for both scenarios. Some information has been x'd out for privacy. Our group doesn't have alot of python experience so we appreciate all these scripts as they are helping us get off the ground with our mass ap deployments. Thanks!
[xxxxxx@xxxxx ~]$ more device-assign-to-site.csv
site_id,claimcode
22c7ebfd-e520-41f5-9e38-fb5f046a6d0c,XXXXXXXXXXXXXXX [xxxxxx@xxxxx ~]$ python3 ./inventory_assign.py --org_id=dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b -f ./device-assign-to-site.csv
-------------------------------- Authenticated ---------------------------------
Processing CSV file .......................................................... ✔ Claiming 1 device(s) ......................................................... ✔
Traceback (most recent call last): File "/home/xxxxxx/./inventory_assign.py", line 643, in
start(apisession, csv_file, org_id, managed, no_reassign)
File "/home/xxxxxx/./inventory_assign.py", line 459, in start
data = _read_csv_file(apisession, file_path, org_id)
File "/home/xxxxxx/./inventory_assign.py", line 436, in _read_csv_file
data[site_id] = []
TypeError: list indices must be integers or slices, not str
[xxxxxx@xxxxx ~]$ more script.log
INFO:main:"mistapi" package version 0.44.1 is required, you are currently using version 0.46.1.
INFO:mistapi:mistapi:init:package version 0.46.1
DEBUG:mistapi:apisession:_load_env:loading settings from /home/xxxxxx/mist-dev.env
DEBUG:mistapi:apisession:set_cloud
DEBUG:mistapi:apisession:set_cloud:Mist Cloud configured to api.mist.com
DEBUG:mistapi:apisession:set_api_token
INFO:mistapi:apisession:set_api_token:found 1 API Tokens
DEBUG:mistapi:apisession:_check_api_tokens
INFO:mistapi:apisession:_check_api_tokens:there is only 1 API token. No check required
INFO:mistapi:apisession:set_api_token:API Token configured
DEBUG:mistapi:apisession:init: API Session initialized
DEBUG:mistapi:apisession:login
DEBUG:mistapi:apisession:login:not authenticated yet
DEBUG:mistapi:apisession:_set_authenticated
DEBUG:mistapi:apisession:_set_authenticated:authentication_status is True
INFO:mistapi:apisession:_set_authenticated: session is now "Authenticated"
DEBUG:mistapi:apisession:get_authentication_status:return True
INFO:mistapi:apisession:login:authenticated
DEBUG:mistapi:apisession:_getself
INFO:mistapi:apisession:_getself: sending GET request to "/api/v1/self"
DEBUG:mistapi:apirequest:_url:https://api.mist.com/api/v1/self
DEBUG:mistapi:apirequest:_gen_query:processing query None
DEBUG:mistapi:apirequest:_gen_query:generated query:?
INFO:mistapi:apirequest:mist_get:sending request to https://api.mist.com/api/v1/self
DEBUG:mistapi:apirequest:mist_get:request headers:{'User-Agent': 'python-requests/2.29.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', '
Connection': 'keep-alive', 'Authorization': 'hidden'}
INFO:mistapi:apiresponse:init:response status code: 200
DEBUG:mistapi:apiresponse:_check_next
DEBUG:mistapi:apiresponse:init:HTTP response processed
INFO:mistapi:apisession:_getself:authentication Ok. Processing account privileges
INFO:mistapi:apisession:_getself:account used:
INFO:main:Processing CSV file: Success
DEBUG:mistapi:apirequest:_url:https://api.mist.com/api/v1/orgs/dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b/inventory
INFO:mistapi:apirequest:mist_post:sending request to https://api.mist.com/api/v1/orgs/dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b/inventory
DEBUG:mistapi:apirequest:mist_post:Request body:['XXXXXXXXXXXXX']
DEBUG:mistapi:apirequest:mist_post:request headers:{'User-Agent': 'python-requests/2.29.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/',
'Connection': 'keep-alive', 'Authorization': 'hidden', 'Content-Type': 'application/json', 'Content-Length': '19'}
DEBUG:mistapi:apirequest:mist_post:request body:b'["XXXXXXXXXXXXX"]'
INFO:mistapi:apiresponse:init:response status code: 200
DEBUG:mistapi:apiresponse:_check_next
DEBUG:mistapi:apiresponse:init:HTTP response processed
INFO:main:Claiming 1 device(s): Success
DEBUG:mistapi:apirequest:_url:https://api.mist.com/api/v1/orgs/dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b/inventory
DEBUG:mistapi:apirequest:_gen_query:processing query {'limit': 1000, 'page': 1}
DEBUG:mistapi:apirequest:_gen_query:generated query:?limit=1000&page=1&
INFO:mistapi:apirequest:mist_get:sending request to https://api.mist.com/api/v1/orgs/dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b/inventory?limit=1000&pa
ge=1
DEBUG:mistapi:apirequest:mist_get:request headers:{'User-Agent': 'python-requests/2.29.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', '
Connection': 'keep-alive', 'Authorization': 'hidden'}
INFO:mistapi:apiresponse:init:response status code: 200
DEBUG:mistapi:apiresponse:_check_next
DEBUG:mistapi:apiresponse:init:HTTP response processed
==================================================================================================
[xxxxxx@xxxxx ~]$ more device-assign-to-site.csv
site_id,mac
22c7ebfd-xxxx-xxxx-xxxx-fb5f046a6d0c,ac:23:16:84:95:ca [xxxxxx@xxxxx ~]$ python3 ./inventory_assign.py --org_id=dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b -f ./device-assign-to-site.csv
-------------------------------- Authenticated ---------------------------------
Retrieving device list from Mist ............................................. ✔ Processing CSV file ..........................................................
Traceback (most recent call last): File "/home/xxxxxx/./inventory_assign.py", line 643, in
start(apisession, csv_file, org_id, managed, no_reassign)
File "/home/xxxxxx/./inventory_assign.py", line 459, in start
data = _read_csv_file(apisession, file_path, org_id)
File "/home/xxxxxx/./inventory_assign.py", line 411, in _read_csv_file
data[site_id] = [device_mac.replace(":", "").replace("-", "")]
TypeError: list indices must be integers or slices, not str
[xxxxxx@xxxxx ~]$ more script.log
INFO:main:"mistapi" package version 0.44.1 is required, you are currently using version 0.46.1.
INFO:mistapi:mistapi:init:package version 0.46.1
DEBUG:mistapi:apisession:_load_env:loading settings from /home/xxxxxx/mist-dev.env
DEBUG:mistapi:apisession:set_cloud
DEBUG:mistapi:apisession:set_cloud:Mist Cloud configured to api.mist.com
DEBUG:mistapi:apisession:set_api_token
INFO:mistapi:apisession:set_api_token:found 1 API Tokens
DEBUG:mistapi:apisession:_check_api_tokens
INFO:mistapi:apisession:_check_api_tokens:there is only 1 API token. No check required
INFO:mistapi:apisession:set_api_token:API Token configured
DEBUG:mistapi:apisession:init: API Session initialized
DEBUG:mistapi:apisession:login
DEBUG:mistapi:apisession:login:not authenticated yet
DEBUG:mistapi:apisession:_set_authenticated
DEBUG:mistapi:apisession:_set_authenticated:authentication_status is True
INFO:mistapi:apisession:_set_authenticated: session is now "Authenticated"
DEBUG:mistapi:apisession:get_authentication_status:return True
INFO:mistapi:apisession:login:authenticated
DEBUG:mistapi:apisession:_getself
INFO:mistapi:apisession:_getself: sending GET request to "/api/v1/self"
DEBUG:mistapi:apirequest:_url:https://api.mist.com/api/v1/self
DEBUG:mistapi:apirequest:_gen_query:processing query None
DEBUG:mistapi:apirequest:_gen_query:generated query:?
INFO:mistapi:apirequest:mist_get:sending request to https://api.mist.com/api/v1/self
DEBUG:mistapi:apirequest:mist_get:request headers:{'User-Agent': 'python-requests/2.29.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', '
Connection': 'keep-alive', 'Authorization': 'hidden'}
INFO:mistapi:apiresponse:init:response status code: 200
DEBUG:mistapi:apiresponse:_check_next
DEBUG:mistapi:apiresponse:init:HTTP response processed
INFO:mistapi:apisession:_getself:authentication Ok. Processing account privileges
INFO:mistapi:apisession:_getself:account used:
DEBUG:mistapi:apirequest:_url:https://api.mist.com/api/v1/orgs/dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b/inventory
DEBUG:mistapi:apirequest:_gen_query:processing query {'limit': 1000, 'page': 1}
DEBUG:mistapi:apirequest:_gen_query:generated query:?limit=1000&page=1&
INFO:mistapi:apirequest:mist_get:sending request to https://api.mist.com/api/v1/orgs/dea4115e-xxxx-xxxx-xxxx-6790ad3ea35b/inventory?limit=1000&pa
ge=1
DEBUG:mistapi:apirequest:mist_get:request headers:{'User-Agent': 'python-requests/2.29.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', '
Connection': 'keep-alive', 'Authorization': 'hidden'}
INFO:mistapi:apiresponse:init:response status code: 200
DEBUG:mistapi:apiresponse:_check_next
DEBUG:mistapi:apiresponse:init:HTTP response processed
INFO:main:Retrieving device list from Mist: Success