Hi,

> Is there some sort of documentation where I can get all VPP methods avaible
> for API purpose.
> 
> For example, he you used two methods - api.show_version and connect :
> 
>> r = vpp.connect('papi-example')
>> rv = vpp.api.show_version()
> 
> How can I be able to take a outlook of what methods are avaiable in order to
> build my own API?

You can look around the developer documentation, e.g.
https://docs.fd.io/vpp/21.01/df/dbb/api_lang_doc.html

Look at the doxygen generated documentation for the API files:
https://docs.fd.io/vpp/21.01/de/d94/gre_8api.html

Or just look at the .api files directly in the repo.

There are also language bindings for Python, Go, C (high and low level) and C++.

Best regards,
Ole

> -----Mensagem original-----
> De: Marcos - Mgiga <[email protected]> 
> Enviada em: sexta-feira, 6 de novembro de 2020 12:56
> Para: 'Ole Troan' <[email protected]>
> Cc: 'vpp-dev' <[email protected]>
> Assunto: RES: RES: [vpp-dev] VPP API
> 
> Thanks!
> 
> -----Mensagem original-----
> De: [email protected] <[email protected]> Em nome de Ole Troan Enviada
> em: sexta-feira, 6 de novembro de 2020 04:51
> Para: Marcos - Mgiga <[email protected]>
> Cc: vpp-dev <[email protected]>
> Assunto: Re: RES: [vpp-dev] VPP API
> 
> Hi,
> 
>> It worked just fine, I decided to install a whole new OS and build VPP 
>> once again and everything ran as expected.
>> 
>> If I update Python version that is installed on system is it possible 
>> that I will have any problem?
> 
> I don't believe so. I use Python 3.8 on most systems.
> 
> Cheers,
> Ole
> 
> 
>> 
>> Best Regards
>> 
>> -----Mensagem original-----
>> De: Marcos - Mgiga <[email protected]> Enviada em: quarta-feira, 4 
>> de novembro de 2020 10:23
>> Para: '[email protected]' <[email protected]>
>> Cc: 'vpp-dev' <[email protected]>
>> Assunto: RES: [vpp-dev] VPP API
>> 
>> Hello ,
>> 
>> Thank you very much for help me out.
>> 
>> I don't know if I gonna say something wrong, but by default VPP 
>> installs Python 2.7, so I thought I wansn't able to choose which 
>> version I would work with.
>> 
>> About VPP I'm using V 20.09. 
>> 
>> Best Regards.
>> Marcos
>> 
>> -----Mensagem original-----
>> De: [email protected] <[email protected]> Enviada em: 
>> quarta-feira, 4 de novembro de 2020 05:02
>> Para: Marcos - Mgiga <[email protected]>
>> Cc: vpp-dev <[email protected]>
>> Assunto: Re: [vpp-dev] VPP API
>> 
>> Hi Marcos,
>> 
>> You can simplify the example a bit.
>> E.g. JSON files should be found in the default install directory.
>> 
>> Which Python and VPP version are you using?
>> 
>> I have not seen the logger issue you see.
>> Presumably you can work around it with import logging
>> logging.basicConfig()
>> 
>> 
>> If you have a source view, it should be possible to run the following 
>> if you cd to src/vpp-api/python
>> 
>> #!/usr/bin/env python3
>> from vpp_papi import VPP
>> vpp = VPP()
>> r = vpp.connect('papi-example')
>> rv = vpp.api.show_version()
>> print(f'VPP version = {rv}')
>> for intf in vpp.api.sw_interface_dump():
>>   print(intf.interface_name)
>> r = vpp.disconnect()
>> exit(r)
>> 
>> 
>> Cheers,
>> Ole
>> 
>> 
>>> On 3 Nov 2020, at 21:22, Marcos - Mgiga <[email protected]> wrote:
>>> 
>>> Hello There,
>>> 
>>> I intend to start building a VPP API in order to make easier the 
>>> processo
>> of managing VPP. So in order to take my first step I tried this tutorial:
>>> https://haryachyy.wordpress.com/2019/12/24/learning-vpp-python-api/
>>> 
>>> It shows the following script which was supposed to show vpp
>> version,interfaces, etc:
>>> 
>>> #!/bin/env python
>>> 
>>> 
>>> 
>>> from __future__ import print_function
>>> 
>>> import os
>>> 
>>> import fnmatch
>>> 
>>> import time
>>> 
>>> from vpp_papi import VPP
>>> 
>>> 
>>> 
>>> def papi_event_handler(msgname, result):
>>> 
>>>   print(msgname)
>>> 
>>>   print(result)
>>> 
>>> vpp_json_dir = '/usr/share/vpp/api/'
>>> 
>>> jsonfiles = []
>>> 
>>> for root, dirnames, filenames in os.walk(vpp_json_dir):
>>> 
>>>   for filename in fnmatch.filter(filenames, '*.api.json'):
>>> 
>>>       jsonfiles.append(os.path.join(vpp_json_dir, filename))
>>> 
>>> if not jsonfiles:
>>> 
>>>   print('Error: no json api files found')
>>> 
>>>   exit(-1)
>>> 
>>> vpp = VPP(jsonfiles)
>>> 
>>> r = vpp.connect('papi-example')
>>> 
>>> 
>>> 
>>> rv = vpp.api.show_version()
>>> 
>>> print('VPP version =', rv.version.decode().rstrip('\0x00'))
>>> 
>>> 
>>> 
>>> for intf in vpp.api.sw_interface_dump():
>>> 
>>>   print(intf.interface_name.decode())
>>> 
>>> 
>>> 
>>> async=True
>> 
>>> 
>>> r=vpp.register_event_callback(papi_event_handler)
>>> 
>>> pid=os.getpid()
>>> 
>>> sw_ifs = [2]
>>> 
>>> r = vpp.api.want_per_interface_simple_stats(enable_disable=True,
>>> sw_ifs=sw_ifs, num=len(sw_ifs), pid=pid)
>>> 
>>> print(r)
>>> 
>>> 
>> 
>>> 
>>> time.sleep(60)
>>> 
>>> r = vpp.api.want_per_interface_simple_stats(enable_disable=False)
>>> 
>>> r = vpp.disconnect()
>>> 
>>> exit(r)
>>> 
>>> But everytime I run it I only get the following error: 
>>> No handlers could be found for logger "vpp_papi.vpp_papi.VPPApiClient"
>>> Traceback (most recent call last):
>>> 
>>> Do you have any suggestion ?
>>> 
>>> Best Regards
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 
>> 
> 
> 
> 
> 
> 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#17996): https://lists.fd.io/g/vpp-dev/message/17996
Mute This Topic: https://lists.fd.io/mt/78188543/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to