- Keeping track of endpoints
- Saving and loading cloudprovider specific data, like api keys and stuff like that
Initially I had both an InstanceManager and a CloudProvider, when I noticed almost every method of InstanceManager took a CloudProvider as its first parameter -- resembling a primitive way to implement object orientation. This of course was my cue to merge them together.
As a side note: the implementation of this is coming along relatively nicely. Using Tim Kay's aws tools I succesfully booted a server (I'm not quite at that point in my own code yet but I did need to see a server in action to test the server listing code).
The booting of my first server and connecting to it wasn't exactly pleasant. I'm sure this is a piece of cake in Amazon's webinterface, but the same can't be said from the console interface. Steps for doing this included
- Finding out how to generate an ssh key
- Finding out where to look up AMI id's (Amazon Machine Instances, server templates)
- Finding out what a user group is and why I need one
- Finding out SSH isn't allowed through the firewall by default
- Finding out how to add a rule to a group that allows SSH traffic through the firewall
- Finding out how to boot a new instance from an AMI that allows access through SSH with the previously generated key and runs in the group that passes
- Finding out what login information to use and how to pass a key to ssh on the fly
So yeah, that took me a while...