<div dir="ltr">Hey Folks,<div><br></div><div style>With the growth of vendor activity in the form of driver submissions in Cinder there's some concerns and challenges that I have and I'd like to get some thoughts from the TC as I move forward.</div>

<div style><br></div><div style>The short version here is:</div><div style>    "What is our goal with OpenStack WRT API behavior and implementation?"</div><div style><br></div><div style><br></div><div style><br>

</div><div style>The longer detailed version:</div><div style><br></div><div style>With the increased activity from Vendors in Cinder adding their drivers there's some conflicts regarding  what should be required for acceptance.  My position on this has been pretty simple (albeit unpopular) that if it's supported by the reference implementation (LVM Driver) and it's a core API call then those are your requirements.</div>

<div style><br></div><div style>In addition I feel that behaviors of the API should be standard regardless of what driver is being used.  For example; a number of folks have proposed that they should be able to do things like "delete a parent volume of a snapshot" if the driver supports it, if the driver doesn't then just return an error. </div>

<div style><br></div><div style>My response to this has been NO WAY, because the result is different behaviors and expectations based on what driver is currently in use.  This is very bad IMO because the whole point of Cinder from my perspective is to abstract those differences and details out.  Adding functionality and features on top of the reference implementation (via extensions, types etc) is one thing, but deviating from the behavior is a very bad idea IMO.  It would be one thing if there was no way to achieve what the vendor would like to accomplish but the fact is in almost every one of these cases that comes up there's a way to do what they would like, it just doesn't use the vocabulary or semantics that they would like.</div>

<div style><br></div><div style>Anyway, I know we pushed the "what is OpenStack" back to the board at one point and I don't recall ever seeing a clear response on that.  What I'd like to do as a TC function is to actually define some sort of goal or mission statement of what we are hoping to provide.  This doesn't have to be a huge debate or a 1000 page manifesto, just a clear mission statement on what an end user or provider should expect when they install OpenStack projects and use the API.</div>

<div style><br></div><div style>I can continue to make my own calls on this which is fine with me, but I suspect that other projects either are dealing with, or will be dealing with this same sort of issue.  It might be worth discussing and putting some sort of concept around what our goal is here.</div>

<div style><br></div><div style>Thanks,</div><div style>John</div><div style><br></div><div style><br></div><div style><br></div></div>