As condor matching process (when starting an instance) was moved to conductor we can simplify instance SSH key generation for EC2 accounts. SSH keys are always associated with an EC2 account. A user generates SSH key pair for the account and gets back ID for this key pair. Then when the user starts an instance he passes ID of the key pair generated before.
With matching in condor we didn't know where an instance will be started (which provider/provider account will condor choose) so we didn't know for which provider account new unique key pair should be generated. So we had to use a default key for starting the instance and replace the default key with new unique key when instance was started.
Now as matching is done on conductor side we know which provider account will be used so we can simply generate unique SSH key pair for the new instance before before a launch request is passed to condor. Then we can remove instance observer and delayed_job and ssh key replacement logic. This change is quite simple, should we do this in this sprint?
And one more question: all what condor does is running async deltacloud API requests. Any reason why not replace whole condor with some other more ruby friendly solution? There is a bunch of nice projects for running async tasks in ruby.
Jan