Cloned from launchpad blueprint https://blueprints.launchpad.net/horizon/+spec/improvements-instance-creation. Description: With all the different hypervisors supported and with each hypervisor have a list of parameters. Horizon need a way to set this parameters. Example: We could set the video drivers in most hypervisors. But the parameter is different for each VM. What I suggest is to implement a key/value structure of all possible values in the form of [hypervisor][option][parameter]= value. The value is what will be passed to nova. Example {'KVM': 'video_driver':{'vga': 'hw_video_drv=vga', 'cirrus': 'hw_video_drv=cirrus' }, 'video_memory_range': ('hw_video_memory': '1:10:1'), ... }} The type of values we can represent are dictionaries and numerical ranges In the create instance form, we could dynamically populate the form with [option][parameter]. We must make sure that the keys of [option][parameter] matches for every [hypervisor]. So far, nova need to update the image meta-data before spinning up a instance. Specification URL (additional information): None