A good suggestion Gayan! AFAIK JAX-RS only provides GET, POST, PUT, DELETE,
HEAD & OPTIONS by default. For PATCH we might need to implement a custom
annotation [1]

[1] http://cxf.apache.org/docs/jax-rs-basics.html

On Thu, Apr 16, 2015 at 3:23 PM, Gayan Gunarathne <gay...@wso2.com> wrote:

> Are we using HTTP PATCH method for partially update the resource
> Kubernetes host? As for the email thread[1] it is listed there , but I
> think we didn't implement that.
>
> [1] Use of create instead of deploy within Stratos
>
> Thanks,
> Gayan
>
> On Wed, Apr 15, 2015 at 12:38 AM, Chamila De Alwis <chami...@wso2.com>
> wrote:
>
>> I think the API endpoint "/kubernetes/update/host" was to be modified to
>> "/kubernetesClusters/{kubernetesClusterId}/minions/{minionId}" in the
>> earlier REST API refactoring[1]. But it seems this particular method has
>> been excluded for the update. The use of this endpoint has been questioned
>> earlier[2], but it has gone down in the thread discussions.
>>
>> [1] - Mail Thread - "Re-designing Stratos REST API"
>> [2] - Mail Thread - "Use of create instead of deploy within Stratos"
>>
>>
>> Regards,
>> Chamila de Alwis
>> Software Engineer | WSO2 | +94772207163
>> Blog: code.chamiladealwis.com
>>
>>
>>
>> On Tue, Apr 14, 2015 at 11:31 PM, Imesh Gunaratne <im...@apache.org>
>> wrote:
>>
>>> I think this confusion has made because a Kubernetes Host can be a
>>> Master or a Minion. We should be able to update both master and minion
>>> nodes.
>>>
>>> In terms of the API endpoint, it could say
>>> /kubernetesCluster/{kubernetesClusterId}/hosts and each host could be
>>> either a master or a minion.
>>>
>>> Thanks
>>>
>>> On Mon, Apr 13, 2015 at 12:02 AM, Chamila De Alwis <chami...@wso2.com>
>>> wrote:
>>>
>>>> Hi Mary,
>>>>
>>>> Thanks for reporting this! I can't find the exact commit which might
>>>> have deleted the existing API method. However I noticed some irregularities
>>>> in the API methods related to Kubernetes Hosts.
>>>>
>>>> As you have pointed out earlier for documentation, the terms, "minion"
>>>> and "host" seem to be used interchangeably. For example to add a Kubernetes
>>>> host the method is as follows.
>>>>
>>>> @PUT
>>>> @Path("/kubernetesClusters/{kubernetesClusterId}/minion")
>>>> @Produces("application/json")
>>>> @Consumes("application/json")
>>>> @AuthorizationAction("/permission/admin/manage/addKubernetesHost")
>>>> public Response addKubernetesHost(
>>>>
>>>>
>>>> However the resource path for Kubernetes host removal is as follows.
>>>> IMO we should drop the usage of the term minion in the resource paths.
>>>>
>>>> @DELETE
>>>> @Path("/kubernetesClusters/{kubernetesClusterId}/hosts/{hostId}")
>>>> @Produces("application/json")
>>>> @Consumes("application/json")
>>>> @AuthorizationAction("/permission/admin/manage/removeKubernetesHostCluster")
>>>> public Response removeKubernetesHostOfKubernetesCluster(
>>>>
>>>>
>>>> Furthermore, the first method, to add a Kubernetes host should be a
>>>> POST method AFAIU. A PUT/PATCH method is supposed to update an existing
>>>> resource, whereas here, the name of the method itself defeats the purpose.
>>>>
>>>> To address the initial issue, the PUT method should be implemented with
>>>> a resource path of
>>>> */kubernetesClusters/{kubernetesClusterId}/hosts/{hostId}* to update
>>>> the host. The existing method is a left over from the initial
>>>> implementation of API methods for Kubernetes.
>>>>
>>>>
>>>> Regards,
>>>> Chamila de Alwis
>>>> Software Engineer | WSO2 | +94772207163
>>>> Blog: code.chamiladealwis.com
>>>>
>>>>
>>>>
>>>> On Tue, Apr 7, 2015 at 2:45 PM, Mariangela Hills <mariang...@wso2.com>
>>>> wrote:
>>>>
>>>>> I have created a JIRA [1] regarding these issues.
>>>>>
>>>>> [1] https://issues.apache.org/jira/browse/STRATOS-1319
>>>>>
>>>>> Regards,
>>>>> Mariangela
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *--*
>>>>> Mariangela Hills
>>>>> Senior Technical Writer
>>>>>
>>>>> *WSO2, Inc.*lean.enterprise.middleware.
>>>>> m: +94 773 500185
>>>>> w: http://wso2.com
>>>>> <http://wso2.com/events/>
>>>>>
>>>>> On Tue, Apr 7, 2015 at 2:21 PM, Mariangela Hills <mariang...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Devs,
>>>>>>
>>>>>> Previously, the following resource was used to update the
>>>>>> Kubernetes-CoreOS Host via REST API:
>>>>>> PATCH kubernetesClusters/{kubernetesClusterId}/minion/{minionId}
>>>>>>
>>>>>> However, now the above resource path can not be found in the code
>>>>>> base. Instead, now the following resource path is available:
>>>>>> PUT /kubernetes/update/host
>>>>>>
>>>>>> I had to pass the "clusterId" property as well in the JSON that
>>>>>> defined the Kubernetes-CoreOS host.
>>>>>>
>>>>>> Q1 -
>>>>>> How come the following resource does not follow the REST API standard
>>>>>> format that has been used for all Stratos API resource paths?
>>>>>> /kubernetes/update/host
>>>>>>
>>>>>> Q2 -
>>>>>> Is it correct that the "clusterId" property has to be passed in the
>>>>>> Kubernetes-CoreOS host payload, when the "clusterId" property has
>>>>>> not been defined in the KubernetesHostBean?
>>>>>>
>>>>>> Regards,
>>>>>> Mariangela
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *--*
>>>>>> Mariangela Hills
>>>>>> Senior Technical Writer
>>>>>>
>>>>>> *WSO2, Inc.*lean.enterprise.middleware.
>>>>>> m: +94 773 500185
>>>>>> w: http://wso2.com
>>>>>> <http://wso2.com/events/>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>
>>
>
>
> --
>
> Gayan Gunarathne
> Technical Lead
> WSO2 Inc. (http://wso2.com)
> email  : gay...@wso2.com  | mobile : +94 766819985
>
>



-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to