support protect property for volume

Registered by boh.ricky

This blueprint is aim to add a "protect property" for cinder volume.
If "protect property" is True, the volume can't be deleted.
If "protect property" is False, the volume can be deleted.
User can change the "protect property" for a volume.

[Similar mechanism]
Describe similar mechanism in current openstack:

1. glance "is-protected" property.
Glance image has a attribute called "protected".
(The feature is very similar to this blueprint.)
If it's True, image can't be deleted.
If it's False, image can be deleted.

2. cinder "readonly" property.
"Readonly" property in cinder volume is implement as a
admin metadata.

I think the implement 2 is more proper for implementing this feature in cinder for two reasons.
First, keep the consistent in cinder.
Two, needn't to modify "volumes table" schema in cinder database.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
boh.ricky
Direction:
Needs approval
Assignee:
Zhou Yu
Definition:
Obsolete
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
boh.ricky
Completed by
Sean McGinnis

Related branches

Sprints

Whiteboard

(smcginnis): Marking obsolete as this has been sitting out there for a long time. If this is still needed, please submit a new bp.

Gerrit topic: https://review.openstack.org/#q,topic:bp/protected-volume,n,z

Addressed by: https://review.openstack.org/80316
    Add admin_metadata 'protected' for volume

Addressed by: https://review.openstack.org/93227
    Add admin_metadata 'protected' for volume

Addressed by: https://review.openstack.org/97821
    Add admin_metadata 'protected' for volume

<jdg>
AS I pointed out in the spec, I'm not at all convinced that we're solving a real problem here and that this benefit is worth the complexity it introduces around dealing with quotas etc.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.