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

Reply via email to