cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
336
Views
0
Helpful
4
Replies

Adding DNA center to Radkit - Device does not contain external UUID

ufd
Level 1
Level 1
How to add DNAcenter to Radkit?

Cisco Radkit - version 1.7.6 running on windows
Service activated, enrolled, remote user added
added a sample device, and tested with invited client network console.

added dnacenter01 to inventory with http credentials from ISE.

Refreshing device after adding dnacenter with credantials tested manually working fine with http login.
Also tried with same results adding swagger alongside with local api user in dnacenter.
 
Refresh Failed
Failed to refresh device dnacenter01
Reason: Device does not contain external device UUID. Not possible to refresh device
 
 

Trying to import devices, results in:


---- Logs ------
2025-03-05T13:47:45.360Z INFO | api/superadmin/3d2e80c1 | Dummy-1 radkit_service.webserver.fastapi_endpoints.dependencies [AUDIT,FASTAPI] API call success [request_id='470564df23aa-45f0-ab56-d607d2d75fd2c2' effects='Created external source' device_uuid=UUID('1a8432d3-2493-4c64-ba45-d7bGb67854f8') device_name='dnacenter01']
2025-03-05T13:48:03.400Z ERROR | api/superadmin/6d9d387a | Dummy-1 CatalystCenterConnector(0x2AF7F3AD450) [CatalystCenter] Device does not contain external device UUID. Not possible to refresh device [ip='1.2.3.4' source_key=None refresh_uuid='1a8432d3-2493-4c64-ba45-d7bd45268']
2025-03-05T13:48:03.401Z ERROR | api/superadmin/6d9d387a | Dummy-1 radkit_service.webserver.exception_handlers [AUDIT,SYSTEM] API call failure [request_id='55e9269f-6aef-4619-a88d-2b7bb238563ae' path='/api/v1/devices/external' effects='Device does not contain external device UUID. Not possible to refresh device']
2025-03-05T13:48:17.740Z INFO | api/superadmin/e26196c3 | Dummy-1 radkit_service.webserver.middlewares.logging [AUDIT,FASTAPI] API call request [request_id='85gbh8aae-ffd0-482d-a6b2-6f1445gb82c' url='/api/v1/devices/external/show' request_method='WEBSOCKET' event_target='::1' event_target_port=8081 app_identifier='RADKit Service' protocol='wss' source_location='api' event_source='::1' event_source_port=57220 peer_identity='superadmin']
2025-03-05T13:48:19.446Z ERROR | internal | Dummy-1 radkit_common.nglog.radkit_service.webserver.utils.errorlog [] Error in ASGI Framework
Traceback (most recent call last):
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\hypercorn\asyncio\task_group.py", line 27, in _handle
await app(scope, receive, send, sync_spawn, call_soon)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\hypercorn\app_wrappers.py", line 34, in __call__
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\errors.py", line 152, in __call__
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\gzip.py", line 22, in __call__
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\errors.py", line 152, in __call__
await self.app(scope, receive, send)
File "<frozen radkit_service.webserver.middlewares.logging>", line 82, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 54, in __call__
File "<frozen radkit_common.asgi_middleware.secure_methods>", line 68, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 54, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 54, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 54, in __call__
[Previous line repeated 1 more time]
File "<frozen radkit_common.asgi_middleware.headers>", line 166, in __call__
File "C:\Program Files\Cisco RADKit\python\Lib\contextlib.py", line 217, in __aexit__
await anext(self.gen)
File "<frozen radkit_common.utils.asyncio_>", line 62, in create_task_group
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\exceptiongroup\_catch.py", line 39, in __exit__
raise unhandled from exc.__cause__
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\exceptiongroup\_catch.py", line 65, in handle_exception
result = handler(matched)
^^^^^^^^^^^^^^^^
File "<frozen radkit_common.utils.asyncio_>", line 59, in handler
File "<frozen radkit_common.asgi_middleware.headers>", line 113, in coro
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 54, in __call__
File "<frozen radkit_service.webserver.middlewares.sessions>", line 95, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 54, in __call__
File "<frozen radkit_service.webserver.middlewares.auth>", line 91, in __call__
File "<frozen radkit_service.webserver.middlewares.permissions>", line 126, in __call__
File "<frozen radkit_service.webserver.middlewares.passwords>", line 94, in __call__
File "<frozen radkit_service.webserver.middlewares.logging>", line 153, in __call__
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
raise exc
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 735, in app
await route.handle(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 362, in handle
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 95, in app
await wrap_app_handling_exceptions(app, session)(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
raise exc
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 93, in app
await func(session)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\fastapi\routing.py", line 383, in app
await dependant.call(**solved_result.values)
File "<frozen radkit_service.webserver.fastapi_endpoints.devices>", line 792, in websocket_show_devices
File "<frozen radkit_service.webserver.connectors.orchestrator>", line 229, in load_devices
File "<frozen radkit_service.webserver.connectors.catalyst_center.connector>", line 603, in get_devices
File "<frozen radkit_service.webserver.connectors.catalyst_center.connector>", line 573, in _get_device_configs
File "<frozen radkit_service.webserver.connectors.catalyst_center.helpers>", line 83, in text_to_csv
File "<frozen radkit_service.webserver.connectors.catalyst_center.helpers>", line 83, in <dictcomp>
AttributeError: 'NoneType' object has no attribute 'strip'

4 Replies 4

mboumeaz
Cisco Employee
Cisco Employee

HI,

Can you please provide the type/version of the Catalyst Center (DNAC) you are using ?
also if you can upgrade your Radkit version to the latest one (1.8.0), then try to pull your DNAC devises.

waiting for ur replay !

We upgraded the Service to 1.8.0 and later to 1.8.0b8, and tried to delete the DNAC from device list, re-added and re-import from device, with exactly same result, giving us the output:  

'NoneType' object has no attribute 'strip'

DNAcenter Version 2.3.7.7-70047-CSCwn89323.SMU

We also tried to filter on tags while importing, and the correct number of devices is returned, so we do have connection to DNAC, but return data is broken?

And logs from Radkit Service:

2025-03-26T11:36:46.813Z INFO | radkit_control/superadmin/b4f0a60b | Dummy-1 radkit_service.webserver.middlewares.logging [AUDIT,FASTAPI] API call request [request_id='0092ad39-9e34-487c-814e-3bf964d4c08b' url='/api/v1/auth/logout' request_method='POST' event_target='::1' event_target_port=8081 app_identifier='RADKit Service' protocol='https' source_location='radkit_control' event_source='::1' event_source_port=52017 peer_identity='superadmin']
2025-03-26T11:36:46.815Z INFO | radkit_control/superadmin/b4f0a60b | Dummy-1 radkit_service.webserver.fastapi_endpoints.dependencies [AUDIT,FASTAPI] API call success [request_id='0092ad39-9e34-487c-814e-3bf964d4c08b' effects='Admin successfully logged out']
2025-03-26T11:36:47.409Z ERROR | internal | Dummy-1 radkit_common.nglog.radkit_service.webserver.utils.errorlog [] Error in ASGI Framework
Traceback (most recent call last):
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\hypercorn\asyncio\task_group.py", line 27, in _handle
await app(scope, receive, send, sync_spawn, call_soon)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\hypercorn\app_wrappers.py", line 34, in __call__
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\errors.py", line 152, in __call__
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\gzip.py", line 22, in __call__
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\errors.py", line 152, in __call__
await self.app(scope, receive, send)
File "<frozen radkit_service.webserver.middlewares.logging>", line 82, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 53, in __call__
File "<frozen radkit_common.asgi_middleware.secure_methods>", line 68, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 53, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 53, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 53, in __call__
[Previous line repeated 1 more time]
File "<frozen radkit_common.asgi_middleware.headers>", line 167, in __call__
File "C:\Program Files\Cisco RADKit\python\Lib\contextlib.py", line 217, in __aexit__
await anext(self.gen)
File "<frozen radkit_common.utils.asyncio_>", line 53, in create_task_group
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\exceptiongroup\_catch.py", line 39, in __exit__
raise unhandled from exc.__cause__
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\exceptiongroup\_catch.py", line 65, in handle_exception
result = handler(matched)
^^^^^^^^^^^^^^^^
File "<frozen radkit_common.utils.asyncio_>", line 50, in handler
File "<frozen radkit_common.asgi_middleware.headers>", line 114, in coro
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 53, in __call__
File "<frozen radkit_service.webserver.middlewares.sessions>", line 95, in __call__
File "<frozen radkit_common.asgi_middleware.base_starlette>", line 53, in __call__
File "<frozen radkit_service.webserver.middlewares.auth>", line 92, in __call__
File "<frozen radkit_service.webserver.middlewares.permissions>", line 127, in __call__
File "<frozen radkit_service.webserver.middlewares.passwords>", line 94, in __call__
File "<frozen radkit_service.webserver.middlewares.logging>", line 153, in __call__
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
raise exc
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 735, in app
await route.handle(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 362, in handle
await self.app(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 95, in app
await wrap_app_handling_exceptions(app, session)(scope, receive, send)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
raise exc
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\starlette\routing.py", line 93, in app
await func(session)
File "C:\Program Files\Cisco RADKit\python\Lib\site-packages\fastapi\routing.py", line 383, in app
await dependant.call(**solved_result.values)
File "<frozen radkit_service.webserver.fastapi_endpoints.devices>", line 940, in websocket_show_devices
File "<frozen radkit_service.webserver.connectors.orchestrator>", line 234, in load_devices
File "<frozen radkit_service.webserver.connectors.catalyst_center.connector>", line 588, in get_devices
File "<frozen radkit_service.webserver.connectors.catalyst_center.connector>", line 554, in _get_device_configs
File "<frozen radkit_service.webserver.connectors.catalyst_center.helpers>", line 97, in text_to_csv
File "<frozen radkit_service.webserver.connectors.catalyst_center.helpers>", line 97, in <dictcomp>
AttributeError: 'NoneType' object has no attribute 'strip'

svaradha
Cisco Employee
Cisco Employee

Hi, Can you please provide the permission level of the Cat Center user(like observer or admin role?)

Thank you!

Admin role, actually SuperAdmin.