Skip to content

GSoC 2022 Idea: Mapping existing configuration parameters to the APIs #4825

@harikrishna-patnala

Description

@harikrishna-patnala

Background:

Cloudstack has global settings in which there are around 672 configuration parameters. Using these parameters one can adjust the values according to the need of the environment. For example "allow.duplicate.networkname" default value of this parameter is true, which means networks can be created with same name in an account. If the value is set to false then duplicate network names are not allowed.

Problem statement:
When admin wants to change the API behaviour or during debugging an issue, admin has to search for the corresponding configuration parameter. The only way currently everyone is using is by using string search or looking into corresponding documentation. Searching over 672 configuration parameters which is a huge list is not straight forward or may lead to missing few parameters.

Solution:
To address this problem I would like to propose the solution which maps the configurations parameters to the corresponding APIs. One can know what are the configuration parameters involved for a specific API. For example "createNetwork" API will be mapped to "allow.duplicate.networkname". When admin wants to see what are the configuration parameters used for "createNetwork" API , this mapping will help. In the final result we will have a table with APIs in one column and configuration parameters in another column.

Proposed Tasks

  • Get started on basic CloudStack codebase and development (building and running CloudStack)
  • Understand the marvin test framework on how to setup and run tests
  • Setup any hypervisor (VMware/KVM/XenServer) based CloudStack dev/test environment
  • Understand how global configurations are defined and used in CloudStack
  • Use marvin tests to call all the APIs and record the configuration parameters used for each API call by using wrapper around configuration framework
  • Deliverables: documentation and community pull request, end-to-end demo of feature

Relevant Skills

  • Java and Python
  • Virtualization/Cloud domain knowledge and usage

Proposed Mentor

Harikrishna Patnala - Committer Apache CloudStack

Difficulty

Major

Potential Mentors

Harikrishna Patnala - Committer Apache CloudStack
Any developer from the community

Example and references

https://cwiki.apache.org/confluence/display/CLOUDSTACK/Configuration
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Marvin+-+Testing+with+Python#MarvinTestingwithPython-Installation

ISSUE TYPE
  • Feature Idea

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions