You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Rajkumar Rajaratnam <ra...@wso2.com> on 2015/11/13 08:12:20 UTC

[Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

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>*

B) This file should be read by all other components (e.g SM, AS) which need
these properties.

WDYT?

[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

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Fixed in 5c63e93026c580b373dbb513c1ae1c

On Fri, Nov 13, 2015 at 5:30 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Had an offline discussion with Akila, Sajith & Gayan.
>
> It is not a good idea to introduce new configuration files in a minor
> release.
>
> So we are going to read the same cartridge-config.properties fie from AS.
> For that, we are moving CartridgeConfigFileReader class from SM to Common
> package and call CartridgeConfigFileReader.readProperties() from both AS &
> SM. It will ensure that AS will have those services URLs as system
> properties always.
>
> Thanks,
> Raj.
>
> On Fri, Nov 13, 2015 at 5:03 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>>
>>
>> On Fri, Nov 13, 2015 at 4:54 PM, Sajith Kariyawasam <sa...@wso2.com>
>> wrote:
>>
>>> From which component do we read puppet.* values?
>>>
>>
>> ​AS.
>> ​
>>
>>
>>>
>>> On Fri, Nov 13, 2015 at 4:19 PM, Rajkumar Rajaratnam <rajkumarr@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 <
>>>> ravihansa@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 <
>>>>> rajkumarr@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 <sa...@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 <
>>>>>>> thanujau@wso2.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <gayang@wso2.com
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>>>>>>>> rajkumarr@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 : gayang@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*
>>>
>>
>>
>>
>> --
>> Rajkumar Rajaratnam
>> Committer & PMC Member, Apache Stratos
>> Software Engineer, WSO2
>>
>> Mobile : +94777568639
>> Blog : rajkumarr.com
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>
> Mobile : +94777568639
> Blog : rajkumarr.com
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Mobile : +94777568639
Blog : rajkumarr.com

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Had an offline discussion with Akila, Sajith & Gayan.

It is not a good idea to introduce new configuration files in a minor
release.

So we are going to read the same cartridge-config.properties fie from AS.
For that, we are moving CartridgeConfigFileReader class from SM to Common
package and call CartridgeConfigFileReader.readProperties() from both AS &
SM. It will ensure that AS will have those services URLs as system
properties always.

Thanks,
Raj.

On Fri, Nov 13, 2015 at 5:03 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

>
>
> On Fri, Nov 13, 2015 at 4:54 PM, Sajith Kariyawasam <sa...@wso2.com>
> wrote:
>
>> From which component do we read puppet.* values?
>>
>
> ​AS.
> ​
>
>
>>
>> On Fri, Nov 13, 2015 at 4:19 PM, Rajkumar Rajaratnam <ra...@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 <
>>> ravihansa@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 <
>>>> rajkumarr@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 <sa...@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 <
>>>>>> thanujau@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>>>>>>> rajkumarr@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 : gayang@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*
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>
> Mobile : +94777568639
> Blog : rajkumarr.com
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Mobile : +94777568639
Blog : rajkumarr.com

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
On Fri, Nov 13, 2015 at 4:54 PM, Sajith Kariyawasam <sa...@wso2.com> wrote:

> From which component do we read puppet.* values?
>

​AS.
​


>
> On Fri, Nov 13, 2015 at 4:19 PM, Rajkumar Rajaratnam <ra...@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 <
>> ravihansa@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 <rajkumarr@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 <sa...@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 <
>>>>> thanujau@wso2.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>>>>>> rajkumarr@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 : gayang@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*
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Mobile : +94777568639
Blog : rajkumarr.com

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Sajith Kariyawasam <sa...@wso2.com>.
>From which component do we read puppet.* values?

On Fri, Nov 13, 2015 at 4:19 PM, Rajkumar Rajaratnam <ra...@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 <
> ravihansa@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 <ra...@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 <sa...@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 <
>>>> thanujau@wso2.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@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 : gayang@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*

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
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 <ra...@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 <ra...@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 <sa...@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 <
>>> thanujau@wso2.com> wrote:
>>>
>>>>
>>>>
>>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@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 : gayang@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

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Akila Ravihansa Perera <ra...@wso2.com>.
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 <ra...@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 <sa...@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 <
>> thanujau@wso2.com> wrote:
>>
>>>
>>>
>>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@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 : gayang@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

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
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 <sa...@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 <
> thanujau@wso2.com> wrote:
>
>>
>>
>> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
>> wrote:
>>
>>> Hi,
>>>
>>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <
>>> rajkumarr@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 : gayang@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

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Sajith Kariyawasam <sa...@wso2.com>.
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 <
thanujau@wso2.com> wrote:

>
>
> On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com>
> wrote:
>
>> Hi,
>>
>> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <rajkumarr@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 : gayang@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*

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Thanuja Uruththirakodeeswaran <th...@wso2.com>.
On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com> wrote:

> Hi,
>
> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <ra...@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 : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>
>
>



-- 
Thanuja Uruththirakodeeswaran
Software Engineer
WSO2 Inc.;http://wso2.com
lean.enterprise.middleware

mobile: +94 774363167

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Isuru Haththotuwa <is...@apache.org>.
Additionally, IMO we can rename this configuration file to have a generic
name (stratos.xml/stratos.properties). wdyt?

On Fri, Nov 13, 2015 at 12:53 PM, Gayan Gunarathne <ga...@wso2.com> wrote:

> Hi,
>
> On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <ra...@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>*
>>
>> 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 : gayang@wso2.com  | mobile : +94 775030545
>
> --
> Thanks and Regards,
>
> Isuru H.
> +94 716 358 048* <http://wso2.com/>*
>
>
> * <http://wso2.com/>*
>
>
>

Re: [Stratos 4.1.5] [Blocker] Issues with cartridge-config.properties file

Posted by Gayan Gunarathne <ga...@wso2.com>.
Hi,

On Fri, Nov 13, 2015 at 12:42 PM, Rajkumar Rajaratnam <ra...@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>*
>
> 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 : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>