Hi All,
I created a new branch: storage-refactor, for storage refactor stuff,
based on javelin.
What it does:
1. Clean up storage and template manager.
2. Separate storage orchestration and provision.
StorageManagerImpl/VolumeManagerImpl/TemplateManagerImpl, are mainly for
orchestration, interact with API requests, handling domain specific
knowledge(all kinds of disk offering, service offering, tags, etc, etc).
*PrimaryDataStoreDriver*, *ImageDataStoreDriver* are the layer mainly for
provision based on given source and destination URI. Provision means how to
actually operate on the data, the implementation can directly call storage box
api, or send command/message to hypervisor host, or SSVM, or other server etc.
*DataObject*, *DataStore*, *volumeservice*, *imageservice*, which are under
engine/storage folder, are the layer glue orchestration and provision together.
3. Tested, passed on devcloud.
What it doesn't:
1. Haven't hook up existing snapshot manager into new storage code, give
me one day more, I can get it work...
Some other functions are not hooked yet, for example: copy volume from
secondary storage, move volume from one storage to another etc.
2. Nfs secondary storage still there, but it's not required in the
orchestration code any more, which means, we can remove nfs secondary storage
at the provision layer, which is more easier than at the orchestration layer.
John, Could you help to have a quick review? Any comments/suggestion are
welcome.