Implement Cinder create volume commands with TaskFlow 0.1.1
TaskFlow should be included to Cinder requirements. Create volume commands from volume.api, volume.manager, scheduler.manager should be implemented with TaskFlow 0.1.1. Old TaskFlow code should be removed from Cinder.
Blueprint information
- Status:
- Complete
- Approver:
- John Griffith
- Priority:
- Medium
- Drafter:
- Anastasia Karpinska
- Direction:
- Approved
- Assignee:
- Anastasia Karpinska
- Definition:
- Approved
- Series goal:
- Accepted for icehouse
- Implementation:
-
Implemented
- Milestone target:
-
2014.1
- Started by
- Anastasia Karpinska
- Completed by
- John Griffith
Related branches
Related bugs
Sprints
Whiteboard
Currently there are three flows for the create volume command. There are a lot of changes happened in TaskFlow. These changes require a lot of code refactoring of current tasks. What should be done:
1. Add taskflow 0.1.1 package to Cinder requirements, remove old TaskFlow code.
2. Remove cinder/
- cinder/
- cinder/
- cinder/
Tasks that can be used by different flows should be placed into cinder/
3. Make tasks refactoring: new TaskFlow tasks will have execute() and revert() methods instead of __call__().
4. Next changes that happened in TaskFlow 0.1.1 should be taken into account:
- TaskFlow holds all data used and returned by tasks in storage. Storage holds constant data that cannot be changed by tasks.
- All exceptions that have been thrown by tasks are stored in TaskFlow. If exception have been raised during the revert, the flow stops the revert and re-raise this exception. Flow is marked as failed.
5. Volume manager create volume flow can't be split by tasks because of different behavior that depends on parameters. This command should be implemented as 4 different flows to create volume from snapshot, source volume, image. This will reduce an amount of flow parameters and branches.
Gerrit topic: https:/
Addressed by: https:/
Switch create volume commands to Taskflow 0.1.1
Addressed by: https:/
Create structure of flows' pakages
Addressed by: https:/
Rename __init__.py to create_volume.py
Work Items
Dependency tree

* Blueprints in grey have been implemented.