Check the TopologyManager. It should have a method to get cluster objects
by providing the cluster id.

On Mon, Aug 10, 2015 at 11:53 PM, Swapnil Patil <swapnil.r...@gmail.com>
wrote:

> 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 <im...@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.r...@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 <im...@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.r...@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.r...@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 <im...@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.r...@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 <
>>>>>>>> dhananjay...@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.r...@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
>>
>
>


-- 
Imesh Gunaratne

Senior Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to