[openstack-dev] [trove] Configuration API BP
Vipul Sabhaya
vipuls at gmail.com
Wed Oct 2 02:19:52 UTC 2013
> On Sep 26, 2013, at 8:49 AM, Michael Basnight <mbasnight at gmail.com> wrote:
>
>> On Sep 25, 2013, at 7:16 PM, Craig Vyvial wrote:
>>
>> So we have a blueprint for this and there are a couple things to point out that have changed since the inception of this BP.
>>
>> https://blueprints.launchpad.net/trove/+spec/configuration-management
>>
>> This is an overview of the API calls for
>>
>> POST /configurations - create config
>> GET /configurations - list all configs
>> PUT /configurations/{id} - update all the parameters
>>
>> GET /configurations/{id} - get details on a single config
>> GET /configurations/{id}/{key} - get single parameter value that was set for the configuration
>>
>> PUT /configurations/{id}/{key} - update/insert a single parameter
>> DELETE /configurations/{id}/{key} - delete a single parameter
>>
>> GET /configurations/{id}/instances - list of instances the config is assigned to
>> GET /configurations/parameters - list of all configuration parameters
>>
>> GET /configurations/parameters/{key} - get details on a configuration parameter
>>
>> There has been talk about using PATCH http action instead of PUT action for thie update of individual parameter(s).
>>
>> PUT /configurations/{id}/{key} - update/insert a single parameter
>> and/or
>> PATCH /configurations/{id} - update/insert parameter(s)
>>
>>
>> I am not sold on the idea of using PATCH unless its widely used in other projects across Openstack. What does everyone think about this?
>>
>> If there are any concerns around this please let me know.
>
> Im a fan of PATCH. Id rather have a different verb on the same resource than creating a new sub-resource just to do the job of what PATCH defines. Im not sure the [1] gives us any value, and i think its only around because of [2]. I can see PATCH removing the need for [1], simplifying the API. And of course removing the need for [2] since it _is_ the updating of a single kv pair. And i know keystone and glance use PATCH for "updates" in their API as well.
>
> [1] GET /configurations/{id}/{key}
> [2] PUT /configurations/{id}/{key}
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
So from this API, I see that a configuration is a standalone resource that could be applied to N number of instances. It's not clear to me what the API is for 'applying' a configuration to an existing instance. Also if we change a single item in a given configuration, does that change propagate to all instances that configuration belongs to?
What about making 'configuration' a sub-resource of /instances?
Unless we think configurations will be common amongst instances for a given tenant, it may not make sense to make them high level resources.
More information about the OpenStack-dev
mailing list