So in this case the profile doesn't specify the exact HW config. This still leaves the question of whether the exact memory, etc. params are determined by the user creating the instance or by the cloud by some default/automatic process by the driver and/or cloud provider. In addition we will need to add fields to the Instance model to track what the _actual_ memory, disk, and cpu values are for an instance, whether user-selected or chosen by the cloud.
I think a profile should specify 'default' values for everything, so that unparameterized launching is still meaningful. Or if no defaults are specified, the minimum is used.
Yes, so to support the parameterization we'll also need memory, disk, and cpu added to the instance model so we will know what portion of the range was selected by the user or cloud.
We may also need a flag indicating mutability of the hardware post- launch, in case a provider allows adding CPU/disk/RAM on-the-fly.
Yah, and I think these attributes get recorded into the instance so they match reality, regardless of if they come from defaults, or are explicitly specified.
A back-ref to the spawning profile also would be useful, in the case of mutability, so you can examine allowable ranges later.
-Bob