stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Swapnil Patil <swapnil.r...@gmail.com>
Subject Re: Adding domain mappings using REST API
Date Mon, 10 Aug 2015 18:23:49 GMT
Hi Imesh,

Thanks! Even I think this should be the way forward. But the problem I am
facing is I am not able to figure out a way to find Service Type using
cluster id.

Could you please let me know how we can do this?

Thanks and Regards,
Swapnil

On Mon, Aug 10, 2015 at 3:56 AM, Imesh Gunaratne <imesh@apache.org> wrote:

> Hi Swapnil,
>
> We need to think out of the box here, add a new field to the
> DomainMappingBean to send the Cluster ID from the client. Users can either
> use the Alias or Cluster ID depending on the API method they use.
>
> In the API method implementation use the Cluster ID to find the Service
> Type and invoke the above service method.
>
> Thanks
>
> On Mon, Aug 10, 2015 at 12:03 AM, Swapnil Patil <swapnil.rp15@gmail.com>
> wrote:
>
>> Hi Imesh,
>>
>> Sorry, I am not sure I got you. Just to reiterate what I want to say.
>>
>> In convertDomainMappingBeanToStubDomainMapping() method,
>> DomainMappingBean is used to fill two fields domain name and context path
>> of DomainMapping object.
>>
>> Now to execute following statements.
>>
>> domainMapping.setServiceName(clusterDataHolder.getServiceType());
>>
>> domainMapping.setClusterId(clusterDataHolder.getClusterId());
>>
>> clusterDataHolder is needed which can only be retrieved using cluster
>> alias. But alias will not be available in extension.
>>
>> So I just wanted to check if we can pass both cluster id and service type
>> (But not cluster alias) as a part of JSON which will be a part of DomainMappingBean.
>> Hence we do not need clusterDataHolder object in this case (so no need of
>> cluster alias).
>>
>> Thanks and Regards,
>> Swapnil
>>
>>
>> On Sun, Aug 9, 2015 at 5:43 PM, Imesh Gunaratne <imesh@apache.org> wrote:
>>
>>> I do not see any problems in implementing this. Refer following:
>>>
>>>
>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java#L2597
>>>
>>> DomainMapping domainMapping =
>>> ObjectConverter.convertDomainMappingBeanToStubDomainMapping(
>>>                             domainMappingBean);
>>>                     domainMapping.setApplicationId(applicationId);
>>>                     domainMapping.setTenantId(tenantId);
>>>
>>> domainMapping.setServiceName(clusterDataHolder.getServiceType());
>>>
>>> domainMapping.setClusterId(clusterDataHolder.getClusterId());
>>>                     serviceClient.addDomainMapping(domainMapping);
>>>
>>> On Sun, Aug 9, 2015 at 8:53 PM, Swapnil Patil <swapnil.rp15@gmail.com>
>>> wrote:
>>>
>>>> Hi All,
>>>>
>>>> I need to add a REST method to add domain mappings using cluster id.
>>>> Currently the request needs a JSON object with cartridge alias, domain name
>>>> and context path.
>>>>
>>>> But I need to add a REST method which support adding domain mapping
>>>> using cluster id instead of alias.
>>>>
>>>> Currently alias is used to find out cluster data and in turn service
>>>> type and cluster id out of that cluster data.
>>>>
>>>> But the cluster data cannot be found using cluster id. Hence we cannot
>>>> find the service type.
>>>>
>>>> So I need to follow either of the following ways.
>>>>
>>>> 1. Get cluster data from cluster id. I do not have any idea how to do
>>>> this. Could someone please let me know if this is possible.
>>>> 2. Add both service type and cluster id in the request JSON for adding
>>>> domain mappings.
>>>>
>>>> I hope it is OK if we add a field or more in DomainMappingBean class
>>>> but those be optional in JSON request. So we can add domain mapping using
>>>> either alias or a combination of cluster id and service type. Could someone
>>>> please let me know if this is possible.
>>>>
>>>> Code references
>>>>
>>>> 1. StratosApiV41Utils.java - In addApplicationDomainMappings, service
>>>> type needs to be set to
>>>> org.apache.stratos.manager.service.stub.domain.application.signup.DomainMapping
>>>> object. Which we can get by ClusterDataHolder object.
>>>> 2. ParentComponent.java - ClusterDataHolder is extracted from
>>>> org.apache.stratos.messaging.domain.application.Application object. Which
>>>> extends ParentComponent which has getClusterData(alias) method. This uses
>>>> aliasToClusterDataMap. There is no clusterIdToClusterDataMap.
>>>>
>>>> Thanks and Regards,
>>>> Swapnil
>>>>
>>>> On Mon, Jul 27, 2015 at 3:37 AM, Swapnil Patil <swapnil.rp15@gmail.com>
>>>> wrote:
>>>>
>>>>> Oh Okay. Sorry I missed this suggestion during the meeting. I will
>>>>> look into this.
>>>>>
>>>>> Thanks and Regards,
>>>>> Swapnil
>>>>>
>>>>> On Mon, Jul 27, 2015 at 2:59 AM, Imesh Gunaratne <imesh@apache.org>
>>>>> wrote:
>>>>>
>>>>>> As we discussed in the last meeting, may be you could add a new API
>>>>>> method to use the cluster id instead of the alias.
>>>>>>
>>>>>> On Sun, Jul 26, 2015 at 10:51 PM, Swapnil Patil <
>>>>>> swapnil.rp15@gmail.com> wrote:
>>>>>>
>>>>>>> Thanks Ashan!
>>>>>>>
>>>>>>> But unfortunately I don't have access to application id. So this
>>>>>>> method will not be useful for me.
>>>>>>>
>>>>>>> Thanks and Regards,
>>>>>>> Swapnil
>>>>>>>
>>>>>>> On Sun, Jul 26, 2015 at 10:40 AM, Ashan Dhananjaya <
>>>>>>> dhananjaya92@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Swapnil,
>>>>>>>>
>>>>>>>> You can get the cluster details using this api call.
>>>>>>>>
>>>>>>>> curl -k -u admin:admin
>>>>>>>> https://localhost:9443/api/v4.1/applications/{applicationId
>>>>>>>> }/runtime/
>>>>>>>> curl -k -u admin:admin
>>>>>>>> https://localhost:9443/api/v4.1/applications/tomcat-single-signon/runtime/
>>>>>>>>
>>>>>>>> I hope this may help.
>>>>>>>>
>>>>>>>> Thank You!
>>>>>>>> Best Regards,
>>>>>>>> Ashan
>>>>>>>>
>>>>>>>> On Sun, Jul 26, 2015 at 3:45 PM, Swapnil Patil <
>>>>>>>> swapnil.rp15@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> I want to add domain mappings to a cluster as a part
of AWS load
>>>>>>>>> balancer extension functionality.
>>>>>>>>>
>>>>>>>>> For that I went through [1]. But I have a couple of doubts.
>>>>>>>>>
>>>>>>>>> 1. In the request, I need to specify cartridge alias.
But I am not
>>>>>>>>> able to find a way to get the alias of a cluster using
Service or Cluster
>>>>>>>>> objects of org.apache.stratos.load.balancer.common.domain.
Is there any way
>>>>>>>>> to find out alias of a cluster?
>>>>>>>>> 2. What does a context path mean?
>>>>>>>>>
>>>>>>>>> [1]
>>>>>>>>> https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Adding+Domain+Mappings+via+REST+API
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks and Regards,
>>>>>>>>> Swapnil
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Imesh Gunaratne
>>>>>>
>>>>>> Senior Technical Lead, WSO2
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Senior Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>
>>
>
>
> --
> Imesh Gunaratne
>
> Senior Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>

Mime
View raw message