>From which component do we read puppet.* values? On Fri, Nov 13, 2015 at 4:19 PM, Rajkumar Rajaratnam <rajkum...@wso2.com> wrote:
> 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 > -- Sajith Kariyawasam *Committer and PMC member, Apache Stratos, * *WSO2 Inc.; http://wso2.com <http://wso2.com>* *Mobile: 0772269575*