Wired Intelligent Edge

 View Only
last person joined: yesterday 

Bring performance and reliability to your network with the HPE Aruba Networking Core, Aggregation, and Access layer switches. Discuss the latest features and functionality of your switching devices, and find ways to improve security across your network to bring together a mobile-first solution
Expand all | Collapse all

REST CLI commands not working on WC.16.10.0011

This thread has been viewed 1 times
  • 1.  REST CLI commands not working on WC.16.10.0011

    Posted Dec 24, 2020 12:16 PM

    Model 2930F

    I've been upgrading and downgrading and can confirm that, at least for me, CLI commands don't work over REST on WC.16.10.0011

    They do work however on WC.16.10.0002 

    I don't have any example handy, bu tI've been using python with napalm-arubaos-switch and/or aos-sw-api libraries.



  • 2.  RE: REST CLI commands not working on WC.16.10.0011

    Posted Jan 13, 2021 05:01 AM

    @egabrum Could you please share more details about the issue. If possible the results to compre with working code and non working code WC.16.10.0011



  • 3.  RE: REST CLI commands not working on WC.16.10.0011

    Posted Jan 22, 2021 07:16 AM

    @drk787Thanks for reacting.

    Here's an example of script that works perfecty on WC.16.10.0002 , but not on WC.16.10.0011 :

    import aos_sw_api
    
    def main():
        with aos_sw_api.Client(
            switch_ip="x.x.x.x",
            api_version=7,
            username="manager",
            password="x",
            https=False,
        ) as client:
            client.cookie
            res = client.vlan.get_all_vlans()
            print(res)
    
    
    if __name__ == "__main__":
        main()

     

    Similar if I use the napalm-arubaos-switch library.

    The traceback with the script above is:

    Traceback (most recent call last):
      File "U:\dev\aruba\rest_bug.py", line 30, in <module>
        main()
      File "U:\dev\aruba\rest_bug.py", line 10, in main
        with aos_sw_api.Client(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\aos_sw_api\_client.py", line 104, in __enter__
    
        self.auth.login(cookie=self.cookie)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\aos_sw_api\auth\_auth.py", line 34, in login
        r = self._session.post(url=self._auth_base_url, json=self._user_data)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpx\_client.py", line 824, in post
        return self.request(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpx\_client.py", line 600, in request
        return self.send(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpx\_client.py", line 620, in send
        response = self.send_handling_redirects(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpx\_client.py", line 647, in send_handling_redirects
        response = self.send_handling_auth(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpx\_client.py", line 684, in send_handling_auth
        response = self.send_single_request(request, timeout)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpx\_client.py", line 714, in send_single_request
        ) = transport.request(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpcore\_sync\connection_pool.py", line 152, in request
        response = connection.request(
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpcore\_sync\connection.py", line 78, in request
        return self.connection.request(method, url, headers, stream, timeout)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpcore\_sync\http11.py", line 62, in request
    
        ) = self._receive_response(timeout)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpcore\_sync\http11.py", line 115, in _receive_response
        event = self._receive_event(timeout)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpcore\_sync\http11.py", line 142, in _receive_event
        event = self.h11_state.next_event()
      File "c:\program files\python39\lib\contextlib.py", line 135, in __exit__
        self.gen.throw(type, value, traceback)
      File "C:\Users\user\.virtualenvs\aruba-Fs4htifT\lib\site-packages\httpcore\_exceptions.py", line 12, in map_exceptions
        raise to_exc(exc) from None
    httpcore._exceptions.ProtocolError: can't handle event type ConnectionClosed when role=SERVER and state=SEND_RESPONSE

     

    Maybe this is an issue on the Python side, not on the AOS side but what could have changed on AOS to break this?

     



  • 4.  RE: REST CLI commands not working on WC.16.10.0011

    Posted Jan 23, 2021 03:49 AM

    WC.16.10.0011 works with curl:

    POST /rest/v7/login-sessions HTTP/1.1
    Host: x.x.x.x
    User-Agent: curl/7.55.1
    Accept: */*
    Content-Length: 46
    Content-Type: application/x-www-form-urlencoded
    
    {"userName":"manager", "password":"x"}

     

     

    But not with Python (I have tried httpx and requests):

     

    POST /rest/v7/login-sessions HTTP/1.1
    Host: x.x.x.x
    Accept: */*
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    User-Agent: python-httpx/0.16.1
    Content-Length: 48
    Content-Type: application/json
    
    {"userName": "manager", "password": "x"}

     

    No response, the switch just shuts the connection.

    I'm reading and researching as much as I can. But I'm flabbergastered as to why this version would behave differently. I read the changelog and can't find anything that seems relevant.

    Can somebody look into this? I've been chasing this for long now.

    Thanks


    #rest
    #Python
    #API


  • 5.  RE: REST CLI commands not working on WC.16.10.0011

    Posted Jan 25, 2021 08:54 PM

    @egabrum  I would suggest to open a support case to investigate further on the differences between the codes.

    Also can you try enabling the debugging and see the evetns during non-peak hours.

    debug destination session (to display the events on the terminal)

    debug rest-interface (debuggin the rest api)

     

    Once done, stop the debugging using  'no debug all' 



  • 6.  RE: REST CLI commands not working on WC.16.10.0011

    Posted Jan 28, 2021 06:16 PM

    Thank you drk787

    It was a bug in WC.16.10.0011 , fixed in WC.16.10.0012