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