Cinder Objects
The goal of this blueprint is to introduce objects into cinder. An object is used to bundle data with methods that can operate on them. The plan is to represent the following concepts as objects: service, volume, volume type, snapshot, quota, backup, consistency group and consistency group snapshot.
By using objects, the code will be insulated from the actual database schema, making it easier rolling upgrades. Objects can be used to pass data over RPC and allow lazy-loading of data directly from the database or over RPC.
Blueprint information
- Status:
- Complete
- Approver:
- Mike Perez
- Priority:
- High
- Drafter:
- Thang Pham
- Direction:
- Approved
- Assignee:
- Thang Pham
- Definition:
- Approved
- Series goal:
- Accepted for kilo
- Implementation:
- Implemented
- Milestone target:
- 2015.1.0
- Started by
- Mike Perez
- Completed by
- Mike Perez
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
WIP: Cinder objects
Addressed by: https:/
WIP: Cinder objects
Addressed by: https:/
WIP: Snapshot object
Gerrit topic: https:/
Addressed by: https:/
WIP: Backup object
Addressed by: https:/
Service object
Addressed by: https:/
Switch to oslo_versionedo
Addressed by: https:/
Switch get_all_snapshots to use objects
Addressed by: https:/
PoC: Rebase objects to use oslo_versionedo
Addressed by: https:/
Raise exception for invalid mock assert calls
Gerrit topic: https:/
Addressed by: https:/
WIP - Quota Objects
Gerrit topic: https:/
Addressed by: https:/
WIP - ConsistencyGroup Object
Addressed by: https:/
WIP: Complete switch to snapshot objects
Addressed by: https:/
Create unit tests for volume objects
Addressed by: https:/
Properly use obj_extra_fields in objects
Addressed by: https:/
WIP: Conversion to volume object
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
WIP: GlusterFS: Switch to Cinder Objects
Gerrit topic: https:/
Addressed by: https:/
CGSnapshot Object
Addressed by: https:/
Fix saving tz aware datetimes in Versioned Objects
Addressed by: https:/
Cleanup for SnapshotObject
Addressed by: https:/
WIP: Conversion to volume object
Addressed by: https:/
Cleanup for cinder tests with ConsistencyGroups.
Addressed by: https:/
Cleanup for cinder tests with CGSnapshot.
Addressed by: https:/
Sync volume versionedobject to ORM
Addressed by: https:/
Update retype to use versionedobjects
Addressed by: https:/
Update extend_volume to use versionedobjects
Addressed by: https:/
Update migrate_volume to use versionedobjects
Addressed by: https:/
Update initialize_
Addressed by: https:/
Update initialize_
Addressed by: https:/
Update create_volume to use versionedobjects
Addressed by: https:/
Update create_volume API to use versionedobjects
Addressed by: https:/
WIP: Switch request_spec in create volume calls to ovo
Addressed by: https:/
Implement refresh() for cinder objects
Addressed by: https:/
Recognize extra fields in CinderObjectDic
Addressed by: https:/
OVO request_spec in migrate/
Addressed by: https:/
Switch request_spec_list in create CG to ovo
Addressed by: https:/
Move QualityOfServic
Addressed by: https:/
Convert filter_properties to OVO (create, retype)
Gerrit topic: https:/
Addressed by: https:/
Update manage_existing to use volume object
Addressed by: https:/
Update create_snapshot to use volume object
Addressed by: https:/
Update restore_backup to use volume object
Addressed by: https:/
update _usage_
Addressed by: https:/
update terminate_
Addressed by: https:/
update remove_export() with versionedobjects
Addressed by: https:/
Wrap a code path for versionedobjects
Addressed by: https:/
Update copy_volume_
Addressed by: https:/
Update terminate_
Addressed by: https:/
Update accept_transfer to use volume object
Addressed by: https:/
Update attach_volume() with verisonedobjects
Addressed by: https:/
Update detach_volume() with versionedobjects
Addressed by: https:/
Update test cases related to attach_volume and detach_volume API
Gerrit topic: https:/
Addressed by: https:/
Fix a wrong call in method obj_make_
Addressed by: https:/
Cleanup rpcapi version checks
Addressed by: https:/
Cleanup for Volume Object
Addressed by: https:/
Remove support for 1.x volume RPC API
Addressed by: https:/
Cleanup for Volume Object(Part 2)
Addressed by: https:/
Cleanup for Volume Object(Part 3)
Addressed by: https:/
[WIP] Switch service capabilities to ovo
Addressed by: https:/
Convert backup_device to OVO
Gerrit topic: https:/
Addressed by: https:/
Moving the OPTIONAL_FIELDS inside theOVO object
Gerrit topic: https:/
Addressed by: https:/
Changing method _from_db_object to classmethod After moving OPTIONAL_FIELDS into the class definition, the method _from_db_object should be classmethod instead of staticmethod.
Addressed by: https:/
Fix mistakes introduced with QoSSpecs object
Addressed by: https:/
Refactoring total_capacity_gb & free_capavity_gb in capabilities
Addressed by: https:/
Clean _get_cctxt method signatures