* Remove unneeded breaks, support Enum as slices
* use cassert instead of GPR_ASSERT
* Use pkg-config for grpc dependencies
* Make Client destructor virtual
This commit introduces a new API server based on the gRPC/Protobuf. The
API follow the design of the existing xml-rpc to ease the transition to
the new server and support the current state management engine.
Both API servers can be run in parallel.
Main changes:
- Decouple Generic and XMLRPC specific logic and add gRPC classes.
- Source code re-structure to include logic for each server
- New compilation options to generate gRPC stubs
- Client code for C++, Ruby, Python and Go
co-authored-by: Jan Orel <jorel@opennebula.io>
co-authored-by: Pavel Czerny <pczerny@opennebula.io>
co-authored-by: MarioRobres <mrobres@opennebula.io>
DB access and marketplace control from master and slave zones:
* Client class is singleton as required by xmlrpc-c
* one_auth initialization moved to a comon location
* MarketPlaceApp and MarketPlace actions are performed in the same zone as
the associated marketplace.
* Adds three new api calls updateDB, dropDB and allocateDB to perform
low level DB operations. These methods are exposed for Market y
MarketApps
* Forward operations are abstarct by Pool classes
* Apps and markets now includes a ZONE_ID