Akila, +1. @All, What do you think about the following structure for stratos-manager.xml? It is similar to autoscaler.xml.
<configuration> <stratosManager> <cloudController> <hostname>localhost</hostname> <port>9443</port> <serviceSuffix>services/CloudControllerService</serviceSuffix> <!-- cloud controller client timout in ms --> <clientTimeout>300000</clientTimeout> </cloudController> <Metering> <hostname>localhost</hostname> <port>9443</port> <serviceSuffix>portal/dashboards/metering-dashboard</serviceSuffix> <!-- metering client timout in ms --> <clientTimeout>300000</clientTimeout> </Metering> <Monitoring> <hostname>localhost</hostname> <port>9443</port> <serviceSuffix>portal/dashboards/monitoring-dashboard</serviceSuffix> <!-- monitoring client timout in ms --> <clientTimeout>300000</clientTimeout> </Monitoring> <threadpool> <identifier>stratosManager</identifier> <threadPoolSize>10</threadPoolSize> </threadpool> </stratosManager> </configuration> Thanks, Raj. On Fri, Nov 13, 2015 at 3:49 PM, Akila Ravihansa Perera <raviha...@wso2.com> wrote: > Hi, > > I'd prefer not to use System variables to pass service URLs. Any component > which needs those can read from the file right? > > Thanks. > > On Fri, Nov 13, 2015 at 3:15 PM, Rajkumar Rajaratnam <rajkum...@wso2.com> > wrote: > >> Hi All, >> >> Thanks for your thoughts. >> >> Will do the following. >> >> 1) Lets remove service URLs (AS, SM, CC & DAS) from >> cartridge-config.properties file >> 2) Lets included these service URLs in stratos-manager.xml (new) and >> autoscaler.xml. CC doesn't need these URLs. >> 3) Configuration file (stratos-manager.xml & autoscaler.xml) >> readers/parsers will set these URLs as system variables. >> 4) No other code changes required, because we are reading these >> properties from system variables in our code base (expect DAS URLs) >> 5) Lets update the console app [1] to read the DAS metering & monitoring >> URLs from stratos-manager.xml >> >> If you think this is too much work for this release, we can read the same >> cartridge-config.properties file from both SM & AS. >> >> Please do let me know if you have any concerns. >> >> [1] >> https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.manager.console/console/app.js#L48 >> >> Thanks, >> Raj. >> >> On Fri, Nov 13, 2015 at 2:19 PM, Sajith Kariyawasam <saj...@wso2.com> >> wrote: >> >>> What if we keep stratos-manger.xml, cloud-controller.xml (already have) >>> and autoscaler.xml (already have) file and move only the relevant configs >>> to each of those files? >>> For eg, the values need to be read by SM should only be in >>> stratos-manager.xml. >>> I think cartridge-config.properties file was meant to be read by SM only >>> and if other components are using the values defined in that file, IMO its >>> not good. >>> >>> >>> On Fri, Nov 13, 2015 at 1:55 PM, Thanuja Uruththirakodeeswaran < >>> thanu...@wso2.com> wrote: >>> >>>> >>>> >>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <gay...@wso2.com> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam < >>>>> rajkum...@wso2.com> wrote: >>>>> >>>>>> Hi Devs, >>>>>> >>>>>> This file content is as below. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> *autoscaler.service.url=https://localhost:9443/services/AutoscalerService/ >>>>>> <https://localhost:9443/services/AutoscalerService/>cloud.controller.service.url=https://localhost:9443/services/CloudControllerService/ >>>>>> <https://localhost:9443/services/CloudControllerService/>stratos.manager.service.url=https://localhost:9443/services/StratosManagerService/ >>>>>> <https://localhost:9443/services/StratosManagerService/>das.metering.dashboard.url=https://localhost:9444/portal/dashboards/metering-dashboard >>>>>> <https://localhost:9444/portal/dashboards/metering-dashboard>das.monitoring.dashboard.url=https://localhost:9444/portal/dashboards/monitoring-dashboard >>>>>> <https://localhost:9444/portal/dashboards/monitoring-dashboard>puppet.ip=127.0.0.1puppet.hostname=puppet.stratos.apache.org >>>>>> <http://puppet.stratos.apache.org>puppet.dns.available=falsepuppet.environment=stratos* >>>>>> >>>>>> CartridgeConfigFileReader class (part of SM component) reads this >>>>>> file and set these properties as system variables and these system >>>>>> variables are used by other components like AS (to communicate with CC). >>>>>> >>>>>> This approach have several issues. >>>>>> >>>>>> a) Since the component's start up order is CC > AS > SM, there is no >>>>>> guarantee that these properties will be set before other components >>>>>> start. >>>>>> b) In distributed deployment, these properties will not be set in AS >>>>>> JVM. >>>>>> c) This file contains information which are used by other components, >>>>>> not only cartridges. So this file name is misleading. >>>>>> >>>>>> IMO, we need to fix it for 4.1.5 release. Without fixing this, I >>>>>> can't fix the issue discussed in [1]. I am getting error [2]. >>>>>> >>>>>> There can be several way to fix this; some of them are. >>>>>> >>>>>> A) We can remove following properties from >>>>>> cartridge-config.properties file and set them as system properties in >>>>>> stratos.sh scripts. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> *autoscaler.service.url=https://localhost:9443/services/AutoscalerService/ >>>>>> <https://localhost:9443/services/AutoscalerService/>cloud.controller.service.url=https://localhost:9443/services/CloudControllerService/ >>>>>> <https://localhost:9443/services/CloudControllerService/>stratos.manager.service.url=https://localhost:9443/services/StratosManagerService/ >>>>>> <https://localhost:9443/services/StratosManagerService/>das.metering.dashboard.url=https://localhost:9444/portal/dashboards/metering-dashboard >>>>>> <https://localhost:9444/portal/dashboards/metering-dashboard>das.monitoring.dashboard.url=https://localhost:9444/portal/dashboards/monitoring-dashboard >>>>>> <https://localhost:9444/portal/dashboards/monitoring-dashboard>* >>>>>> >>>>> >>>> +1 to move *das.metering.dashboard.url and * >>>> *das.monitoring.dashboard.url *properties to stratos.sh. >>>> Because I also had an issue in reading this properties at webapp >>>> initialization as webapp initialized before SM gets activated and at the >>>> time of webapp initialization these properties are not exported as system >>>> properties and can't read them using jaggery 'process' module. >>>> So I loaded cartridge-config.properties file using jaggery 'carbon' >>>> module and read these two param at webapp initialization as in here[1]. >>>> >>>> [1]. >>>> https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.manager.console/console/app.js#L48 >>>> >>>> >>>>>> >>>>>> B) This file should be read by all other components (e.g SM, AS) >>>>>> which need these properties. >>>>>> >>>>>> WDYT? >>>>>> >>>>> >>>>> IMO we can read this file and maintain the information in the in >>>>> memory so every component can pick from there. We can have a common >>>>> method >>>>> to read this file as those properties are used among all the components. >>>>> Also we can change the configuration name also as that configuration >>>>> name seems to be confuse. May be we can have like >>>>> stratos-config.properties >>>>> >>>>> >>>>>> [1] [Stratos 4.1.5] [Blocker] Monitors are not created on Stratos >>>>>> restart >>>>>> [2] >>>>>> >>>>>> [2015-11-13 11:37:36,468] ERROR >>>>>> {org.apache.stratos.autoscaler.monitor.MonitorFactory} - Error while >>>>>> validating deployment policy from cloud controller [network-partition-id] >>>>>> network-partition-1 >>>>>> java.lang.RuntimeException: System property not found: >>>>>> cloud.controller.service.url >>>>>> at >>>>>> org.apache.stratos.common.client.CloudControllerServiceClient.getInstance(CloudControllerServiceClient.java:75) >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.MonitorFactory.getClusterMonitor(MonitorFactory.java:270) >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.MonitorFactory.getMonitor(MonitorFactory.java:83) >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor$MonitorAdder.run(ParentComponentMonitor.java:1001) >>>>>> at >>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:262) >>>>>> at >>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>>>>> at >>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>> [2015-11-13 11:37:36,469] ERROR >>>>>> {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} >>>>>> - >>>>>> An error occurred while starting monitor: [type] cluster [component] >>>>>> single-cartridge-app.my-php.php.domain >>>>>> java.lang.RuntimeException: Error while validating deployment policy >>>>>> from cloud controller [network-partition-id] network-partition-1 >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.MonitorFactory.getClusterMonitor(MonitorFactory.java:278) >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.MonitorFactory.getMonitor(MonitorFactory.java:83) >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor$MonitorAdder.run(ParentComponentMonitor.java:1001) >>>>>> at >>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:262) >>>>>> at >>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>>>>> at >>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>> Caused by: java.lang.RuntimeException: System property not found: >>>>>> cloud.controller.service.url >>>>>> at >>>>>> org.apache.stratos.common.client.CloudControllerServiceClient.getInstance(CloudControllerServiceClient.java:75) >>>>>> at >>>>>> org.apache.stratos.autoscaler.monitor.MonitorFactory.getClusterMonitor(MonitorFactory.java:270) >>>>>> ... 7 more >>>>>> >>>>> >>>>> >>>>>> >>>>>> Thanks, >>>>>> Raj. >>>>>> >>>>>> -- >>>>>> Rajkumar Rajaratnam >>>>>> Committer & PMC Member, Apache Stratos >>>>>> Software Engineer, WSO2 >>>>>> >>>>>> Mobile : +94777568639 >>>>>> Blog : rajkumarr.com >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Gayan Gunarathne >>>>> Technical Lead, WSO2 Inc. (http://wso2.com) >>>>> Committer & PMC Member, Apache Stratos >>>>> email : gay...@wso2.com | mobile : +94 775030545 <%2B94%20766819985> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanuja Uruththirakodeeswaran >>>> Software Engineer >>>> WSO2 Inc.;http://wso2.com >>>> lean.enterprise.middleware >>>> >>>> mobile: +94 774363167 >>>> >>> >>> >>> >>> -- >>> Sajith Kariyawasam >>> *Committer and PMC member, Apache Stratos, * >>> *WSO2 Inc.; http://wso2.com <http://wso2.com>* >>> *Mobile: 0772269575* >>> >> >> >> >> -- >> Rajkumar Rajaratnam >> Committer & PMC Member, Apache Stratos >> Software Engineer, WSO2 >> >> Mobile : +94777568639 >> Blog : rajkumarr.com >> > > > > -- > Akila Ravihansa Perera > WSO2 Inc.; http://wso2.com/ > > Blog: http://ravihansa3000.blogspot.com > -- Rajkumar Rajaratnam Committer & PMC Member, Apache Stratos Software Engineer, WSO2 Mobile : +94777568639 Blog : rajkumarr.com