incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Huang <>
Subject RE: template copy to primary
Date Wed, 07 Nov 2012 17:37:27 GMT

You can add a plugin for something like that.  I'm sure you'll need to make some adjustments
in cloudstack code to handle this (particularly specifying the storage pool the vm should
be on) but we should largely keep the logic outside of cloudstack code and put it in a template.

- The plugin should implement PluggableService so it can expose APIs allowing the system administrator
to identify which template should be prepopulate.  It might also want to take in to which
storage pool.  I'll leave it up to you to design that api.
- When called the plugin uses the deploy call to create a VM owned by the system on every
storage pool.  (This prevents template gc to delete the template)
- When it is determined that the template is no longer useful in the system.  A call into
the API to delete the VM.  Once the VM is deleted and all other VMs based on the template
is deleted from the system, template gc will delete the template.
- Add this plugin to components.xml.

In general we should think about adding to CloudStack by utilizing plugins.  There are many

- Code will be well separated because plugins compile by themselves.
- Plugins can be disabled in case it has some bugs that was found in production.
- Plugins can be separately unit tested by mocking up cloudstack functionalities that it needs.

There's been too much of this type of automation functionality pushed into cloudstack orchestration.
 CloudStack Orchestration needs to be kept small and tight.


-----Original Message-----
From: Marcus Sorensen [] 
Sent: Wednesday, November 07, 2012 9:17 AM
Subject: template copy to primary

Again, forgive my ignorance if I don't understand how this works for all storage types, but
it seems that when a template is first used in a cluster we copy the template to primary storage
first and use that for all subsequent. Should we add an enhancement to be able to tag templates
that should be cached on primary vs ones that should be copied direct from secondary storage
whenever used?

 I'm thinking about scale, if I've got 20 templates that are used a lot by everyone, then
I want those cached, but if my users are making 1000 templates and only use each once or twice,
I don't want them to go to my primary storage. Especially with CLVM or another raw style storage
where we actually use the whole physical size of the template.

View raw message