Is OpenNebula fully API driven?

Hello guys,

I am newbie, so sorry for probably stupid question.

Is OpenNebula fully API driven, so can I control OpenNebula full using REST API?

Thanks in advance.


YEs, XML-RPC in our case. You can get a list of methods and language bindings here:

Hi @ruben ,
yet another basic question, but to touch each dimension.
Yes OpenNebula is fully API driven, can we have XML-RPC API code available as to know the language it is written in and to create an add-on.
Thanks in advance! Would be helpful to understand Actions and definition.

just to note, there are also OpenNebula XML-RPC API Bindings for PHP

Thanks @feldsam !!
This is a wrapper like OCA over PHP or the source code for the XML-RPC API?
I am trying out for a custom API so curious to see the code base to create a add-on.

Hi, it just wrapper. Source code of api server is available on github. @atodorov_storpool develops in past xml-rpc api addon as separate server. He has some reasons why this way.

Yeah, It looks like that the credentials to have a remote connection to the VM console are not considered as an API method. Even in the latest development of sunstone refactoring as a Fireedge service does not address this as an issue. And sadly, using guacamole this side-channel API extension could stop working… :confused:

@feldsam , just for sake of technology.
Is there any XML-RPC API wrapper/Bindings around .Net?
I have found Terradue.OpenNebula , but not sure if it is listed in official OpenNebula OCA.

Hi, sorry, but I dont know. I never use asp net

Ah! Thanks @feldsam!
@ruben /Open Nebula team can provide some feedback?

Hi @Rahul_Sharma, the only official bindings are the ones listed here in the docs.

Apart from that, there are others like the PHP one mentioned by @feldsam that are maintained by the community, but I’m not really aware of the state of them. The one you referenced seems to be abandoned as the last release was in 2016.

Thanks @cgonzalez !

Hello @cgonzalez ,
A very basic question around OCA.
I am creating a custom API in python (pyone) and using OCA bindings to connect with XML-RPC API. So how can I host the standalone API project and how it would interact with Opennebula.
Instead of one.User.Allocate I am calling my API endpoint and which internally will call the same allocate method.
Any suggestion one the same would be much helpful.

HI @Rahul_Sharma,

You can use the Python bindings (pyone) to easily interact the OpeNebula XML-RPC API. But the code/services you develop using this bindings and how you expose or host it, just depends on your specific use case.