You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After trying out the PM REST API, I encountered a few problems:
Issue: Cannot GET policies from PM using the REST API
How to reproduce: $ curl localhost:45888/pib/elephant_flows
(or using any existing uid)
The PM responds with: <html><head><title>500 Internal Server Error</title></head><body><h1>500 Internal Server Error</h1>Server got itself in trouble</body></html>
The PM also displays the following error: [INF]: PIB request for uid elephant_flows [ERR]: Error handling request Traceback (most recent call last): File "/home/alexander/.local/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 390, in start resp = await self._request_handler(request) File "/home/alexander/.local/lib/python3.6/site-packages/aiohttp/web_app.py", line 366, in _handle resp = await handler(request) File "/home/alexander/neat/policy/pmrest.py", line 100, in handle_pib text = pib.index[uid].json() AttributeError: 'int' object has no attribute 'json'
After investigating, the issue appears to occur because the handle_pib() function in pmrest.py accesses the index dictionary instead of the policies list of the PIB class (pib.py). As far as I can understand, the index dictionary is used to map uid's to the corresponding indexes in the policies list. I am assuming that what the handle_pib() function is supposed to do is to first find the correct index using the index dictionary, and then use that index to fetch the correct entry in the policies list, instead of trying to access the entry from index directly.
Furthermore, the index dictionary does not appear be handled properly when adding/removing entries in the PIB repository (pib.py). The indexes of other entries need to be updated accordingly when performing these operations. As it stands, the PIB does not update the indexes at all, which can cause problems when getting or removing entries in the PIB repository down the line since some uid's may map to the wrong indexes.
Issue: Cannot list rows of the CIB repository
How to reproduce: curl localhost:45888/cib/rows
The client gets the following response: unknown UID
This appears to be because the REST API interprets "rows" as a uid because the URI routing is set up in the wrong order in pmrest.py. This issue should be able to be resolved by simply swapping lines 237 and 238 in pmrest.py.
The text was updated successfully, but these errors were encountered:
After trying out the PM REST API, I encountered a few problems:
Issue: Cannot GET policies from PM using the REST API
How to reproduce:
$ curl localhost:45888/pib/elephant_flows
(or using any existing uid)
The PM responds with:
<html><head><title>500 Internal Server Error</title></head><body><h1>500 Internal Server Error</h1>Server got itself in trouble</body></html>
The PM also displays the following error:
[INF]: PIB request for uid elephant_flows
[ERR]: Error handling request Traceback (most recent call last): File "/home/alexander/.local/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 390, in start resp = await self._request_handler(request) File "/home/alexander/.local/lib/python3.6/site-packages/aiohttp/web_app.py", line 366, in _handle resp = await handler(request) File "/home/alexander/neat/policy/pmrest.py", line 100, in handle_pib text = pib.index[uid].json() AttributeError: 'int' object has no attribute 'json'
After investigating, the issue appears to occur because the
handle_pib()
function in pmrest.py accesses theindex
dictionary instead of thepolicies
list of thePIB
class (pib.py). As far as I can understand, theindex
dictionary is used to map uid's to the corresponding indexes in thepolicies
list. I am assuming that what thehandle_pib()
function is supposed to do is to first find the correct index using theindex
dictionary, and then use that index to fetch the correct entry in thepolicies
list, instead of trying to access the entry fromindex
directly.Furthermore, the
index
dictionary does not appear be handled properly when adding/removing entries in the PIB repository (pib.py). The indexes of other entries need to be updated accordingly when performing these operations. As it stands, the PIB does not update the indexes at all, which can cause problems when getting or removing entries in the PIB repository down the line since some uid's may map to the wrong indexes.Issue: Cannot list rows of the CIB repository
How to reproduce:
curl localhost:45888/cib/rows
The client gets the following response:
unknown UID
This appears to be because the REST API interprets "rows" as a uid because the URI routing is set up in the wrong order in pmrest.py. This issue should be able to be resolved by simply swapping lines 237 and 238 in pmrest.py.
The text was updated successfully, but these errors were encountered: