## Description
This PR adds an API call named `archiveSnapshot` which takes in a snapshot 
residing on primary storage and moves it to secondary storage. The main use 
case for this relates to the use in Managed storage where the storage supports 
native snapshots. Because of cost and availability reasons, it is useful to 
move snapshots that are taken on primary storage (native snapshots) to 
secondary storage. 

The API takes in a `snapshotid` , creates a new snapshot on secondary storage 
and deletes the snapshot on primary storage. 

<!-- For new features, provide link to FS, dev ML discussion etc. -->
<!-- In case of bug fix, the expected and actual behaviours, steps to 
reproduce. -->

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the 
boxes that apply: -->
- [ ] Breaking change (fix or feature that would cause existing functionality 
to change)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Enhancement (improves an existing feature and functionality)
- [ ] Cleanup (Code refactoring and cleanup, that may add test cases)

## GitHub Issue/PRs
<!-- If this PR is to fix an issue or another PR on GH, uncomment the section 
and provide the id of issue/PR -->
<!-- When "Fixes: #<id>" is specified, the issue/PR will automatically be 
closed when this PR gets merged -->
<!-- For addressing multiple issues/PRs, use multiple "Fixes: #<id>" -->

<!-- Fixes: # -->

## Screenshots (if appropriate):

## How Has This Been Tested?

Tested on a local storage cluster (SolidFire) and also added unit tests.

<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that 
apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to 
help! -->
- [ ] I have read the 
[CONTRIBUTING](https://github.com/apache/cloudstack/blob/master/CONTRIBUTING.md)
 document.
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
Testing
- [x] I have added tests to cover my changes.
- [ ] All relevant new and existing integration tests have passed.
- [ ] A full integration testsuite with all test that can run on my environment 
has passed.

<!-- The following will kick a packaging job, remove if as applicable -->
@blueorangutan package


[ Full content available at: https://github.com/apache/cloudstack/pull/2585 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to