Hi Pradeep,

It seem confusing the admin context. shall we change it.


On Thu, Nov 7, 2013 at 10:41 AM, Pradeep Fernando <[email protected]>wrote:

> Hi Devs,
>
> Here is the Cartridge admin API i came up with,
>
> list single tenant cartridges -  admin/cartridge/list/tenanted
> list multitenant cartridges -  admin/cartridge/list
> list subscribed cartridges -  admin/cartridge/list/subscribed
> subscribe to a cartridge -  admin/cartridge/subscribe
> unsubscribe from a cartridge -  admin/cartridge/unsubscribe
>
>
> patch is attached to JIRA -
> https://issues.apache.org/jira/browse/STRATOS-153
>
>
> On Wed, Nov 6, 2013 at 8:00 AM, Pradeep Fernando <[email protected]>wrote:
>
>> Hi Nirmal,
>>
>> Please find the comments inline..
>>
>>
>> On Wed, Nov 6, 2013 at 7:37 AM, Nirmal Fernando 
>> <[email protected]>wrote:
>>
>>> Hi Pradeep,
>>>
>>> Thanks for bringing this up.
>>>
>>> On Nov 4, 2013 10:02 PM, "Pradeep Fernando" <[email protected]> wrote:
>>> >
>>> > Hi devs,
>>> >
>>> > I recently worked on porting tenant mgt operations to REST API. Below
>>> is the API i came up with.
>>> >
>>> > Main operations,
>>> >
>>> > - addTenant
>>> > - deleteTenant
>>> We need to carefully support this operation since upon this event, we
>>> need to remove all existing subscriptions etc.
>>>
>>> > - updateTenant
>>> We should not allow changing tenant domain IMO, but a set of selected
>>> attributes.
>>>
>>> > - getTenant
>>> > - search tenants by a String
>>> > - activateTenant
>>> > - deactivateTenant
>>> >  - getCompleteTenantList
>>> Is there any reason why this is not 'getAllTenants'?
>>
>>
>> All the above methods are wrapper methods. I did not came up with method
>> names/new implementation flows. The operation names for taken from existing
>> web service wrapper. Yes delete tenant is bit tricky. I noticed that, we
>> are not using that operation in WS api, even if its there. Furthermore i
>> encountered an error coming from carbon registry while executing the
>> operation. However i ported the code for the completeness, sake.
>>
>> should i rename some of the method names still ?
>>
>>
>>>
>>> >
>>> >
>>> >
>>> > API i came up with,
>>> >
>>> > Considered tenant as a resource,
>>> > the below string is formatted as , operation, HTTPMethod, REST
>>> endpoint, payload
>>> >
>>> > - addTenant  , POST, /admin/tenant, tenantInfoBean as a JSON payload
>>> > - deleteTenant, DELETE, /admin/tenant/{tenantDomain}
>>> > - updateTenant, PUT, /admin/tenant, tenantInfoBean as a JSON payload
>>> Don't we need tenant domain at the end? That would make it easy to
>>> authorize?
>>>
>>> > - getTenant, GET, /admin/tenant/{tenantDomain}
>>> >
>>>
>>> I'm bit confused on the admin context you have used here. For an example
>>> to add a tenant you have to be in super tenant mode and to update a tenant
>>> IMO you need to be in tenant admin mode.
>>>
>>> But I'm not sure whether that should exhibit in the url.
>>>
>> well, /admin context is the qualifying pre-context i used. Its solely for
>> namespace purposes. (rationale was like, these are the endpoint for Stratos
>> admin operations).
>>
>> i just wanted to prevent the URL endpoint being formatted as,
>>
>> <webappContext>/tenant
>>
>> etc.
>> should we choose a different context/drop the context altogether ?
>>
>>
>> Appreciate the feedback. thanks.
>>
>> --Pradeep
>>
>>
>>> > The other operations are kind of utility operations. I could not
>>> co-relate them to any resource.
>>> >
>>> > - search tenants by a String, GET, /admin/tenant/search/{searchString}
>>> > - activateTenant , POST, /admin/tenant/activate/{tenantDomain}
>>> > - deactivateTenant, POST, /admin/tenant/deactivate/{tenantDomain}
>>> >  - getCompleteTenantList, GET, /admin/tenant/list
>>> >
>>> >
>>> > I used POST method in tenant activate/deactivate operations, because
>>> it modifies the tenant aspect...
>>> > IMHO we do not need versioning info in our REST API endpoints. There
>>> will be one stratos controller for a given setup and I do not see a use
>>> case for maintaining two different version of the same admin API..
>>> >
>>> +1
>>>
>>> >
>>> > I have attached the patch for above implementation, to the JIRA [1]
>>> >
>>> > The above API is open for discussion and i can change the current impl
>>> if required..
>>> >
>>> > [1] https://issues.apache.org/jira/browse/STRATOS-152
>>> >
>>> >
>>> >
>>> > On Fri, Oct 4, 2013 at 11:07 PM, Pradeep Fernando <[email protected]>
>>> wrote:
>>> >>
>>> >> Hi All,
>>> >>
>>> >> This thread is to discuss about the admin services required by
>>> Stratos Controller and its API definitions.
>>> >>
>>> >> your thoughts/suggestions are highly appreciated.
>>> >>
>>> >> thanks,
>>> >> --Pradeep
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Pradeep Fernando.
>>> > http://pradeepfernando.blogspot.com/
>>>
>>>
>>
>>
>> --
>> Pradeep Fernando.
>> http://pradeepfernando.blogspot.com/
>>
>
>
>
> --
> Pradeep Fernando.
> http://pradeepfernando.blogspot.com/
>



-- 
Lakmal Warusawithana
Software Architect; WSO2 Inc.
Mobile : +94714289692
Blog : http://lakmalsview.blogspot.com/

Reply via email to