InstanceTags

= Instance tags =

Allow tags (arbitrary key-value pairs) to be attached to instances. These would be similar in functionality to tagging as supported by EC2.

To implement this will require:


 * A new database table to keep track of the tags
 * Modify the nova api to allow annotating instances with tags (create, delete, describe)
 * Modify python-novaclient to support these calls
 * Implement the tag-related EC2 calls in the EC2 compatibility layer (e.g., create tags, delete tags, describe tags)

Use cases
Possibilities are endless, but the initial motivation for these changes is for implementing HPC-style batch scheduling and maintenance.


 * For implementing batch-queue style scheduling, where you need to track information such as the maximum running time of an instance (after which the system can terminate it), or when the instance must run (e.g., within the next 24 hours)
 * When a set of physical nodes needs to be shut down, would be useful to be able to annotate instances to indicate which ones are, say, safe to terminate, as indicated by the owner.