OneFlow: `vm_template_contents` redefinition
Description
In order to facilitate the way VRouters will be defined on OneFlow templates, we consider a redefinition of vm_template_contents. Since now it is considered as a key-value, comma-separated set of values wrapped on a string, it should be interesting to change it by a JSON object where the former string will be split into properties of this new JSON object. With this new approach, a extra step of converting the JSON object into a string as OpenNebula Core expects must be done, but it gives us more flexibility on the way we can expose the OneFlow API through end-users.
Moreover, we can also take advantage of this redefined feature and delete the concept of custom_attributes from OneFlow in order to make easier the definition of this kind of attributes.
Use case How are you going to use this new feature? Why do you need it?
OneFlow clients such as Sunstone or Fireedge will define much easier the ancient custom_attributes and vm_template_contents from both VMs and VRouters since there would not be necessary to create a string in the form of a A=\"FOO\", B=\"BAR\" string.
Interface Changes Describe any changes you'd like to see to current interfaces including Sunstone, CLI, or/and API
Sunstone, Fireedge, OneFlow CLI, API
Additional Context
Progress Status
- [ ] Code committed
- [ ] Testing - QA
- [ ] Documentation (Release notes - resolved issues, compatibility, known issues)