Found an issue in the docker php image, that MB/CEP ips and ports are not getting set in stratos.sh. I have fixed that and pushed the updated image.
Please find the command below which you need to use in order to start an instance. docker run -d -P --name sajith --env SERVICE_NAME=php --env CLUSTER_ID= cluster1.php.stratos.org --env DEPLOYMENT=default --env PORTS=80 --env MEMBER_ID=member1.cluster1.php.stratos.org --env NETWORK_PARTITION_ID=ec2 --env PARTITION_ID=zone-1 --env CARTRIDGE_KEY=NfxZXmklUvRWslG5 --env REPO_URL=null --env MB_IP=10.10.3.1 --env MB_PORT=7611 --env CEP_IP=10.3.3.1 --env CEP_PORT=5617 sajhak/stratos-php On Fri, Sep 19, 2014 at 12:31 PM, Nirmal Fernando <[email protected]> wrote: > This is the latest replicationController json after fixing the issue with > payload. > > { > "kind": "ReplicationController", > "id": "test2.php.domain", > "apiVersion": "v1beta1", > "labels": { > "name": "test2.php.domain" > }, > "desiredState": { > "replicas": 2, > "replicaSelector": { > "name": "test2.php.domain" > }, > "podTemplate": { > "desiredState": { > "manifest": { > "version": "v1beta1", > "id": "test2.php.domain", > "containers": [ > { > "name": "test2-apachestratos-org", > "image": "sajhak/stratos-php", > "ports": [ > { > "name": "tcp80", > "protocol": "tcp", > "containerPort": 80, > "hostPort": 0 > }, > { > "name": "tcp443", > "protocol": "tcp", > "containerPort": 443, > "hostPort": 0 > } > ], > "env": [ > { > "name": "SERVICE_NAME", > "value": "php" > }, > { > "name": "HOST_NAME", > "value": "test2.apachestratos.org" > }, > { > "name": "MULTITENANT", > "value": "false" > }, > { > "name": "TENANT_ID", > "value": "-1234" > }, > { > "name": "TENANT_RANGE", > "value": "-1234" > }, > { > "name": "CARTRIDGE_ALIAS", > "value": "test2" > }, > { > "name": "CLUSTER_ID", > "value": "test2.php.domain" > }, > { > "name": "CARTRIDGE_KEY", > "value": "LyiZrGjCgiM3Vzpe" > }, > { > "name": "REPO_URL", > "value": "null" > }, > { > "name": "PORTS", > "value": "80|443" > }, > { > "name": "PROVIDER", > "value": "apache" > }, > { > "name": "PUPPET_IP", > "value": "127.0.0.1" > }, > { > "name": "PUPPET_HOSTNAME", > "value": "puppet.apache.stratos.org" > }, > { > "name": "PUPPET_DNS_AVAILABLE", > "value": "false" > }, > { > "name": "PUPPET_ENV", > "value": "stratos" > }, > { > "name": "DEPLOYMENT", > "value": "default" > }, > { > "name": "COMMIT_ENABLED", > "value": "false" > }, > { > "name": "MEMBER_ID", > "value": > "test2.php.domain0b318d26-36ef-42cc-a6da-cafe4981dae9" > }, > { > "name": "LB_CLUSTER_ID" > }, > { > "name": "NETWORK_PARTITION_ID" > }, > { > "name": "KUBERNETES_CLUSTER_ID", > "value": "KubGrp1" > }, > { > "name": "KUBERNETES_MASTER_IP", > "value": "127.0.0.1" > }, > { > "name": "KUBERNETES_PORT_RANGE", > "value": "4000-5000" > } > ] > } > ] > }, > "replicas": 0 > }, > "labels": { > "name": "test2.php.domain" > } > } > } > } > > On Fri, Sep 19, 2014 at 12:20 PM, Nirmal Fernando <[email protected]> > wrote: > >> Upon a subscription for a docker Cartridge, now autoscaler calls CC, and >> CC deploys Kubernetes entities into the Kubernetes host cluster. Please see >> the following log. >> >> [2014-09-19 12:09:01,194] INFO >> {org.apache.stratos.messaging.message.processor.topology.CompleteTopologyMessageProcessor} >> - Topology initialized >> >> [2014-09-19 12:09:06,203] INFO >> {org.apache.stratos.autoscaler.util.ConfUtil} - Loading configuration..... >> >> [2014-09-19 12:09:06,257] INFO >> {org.apache.stratos.autoscaler.util.AutoscalerUtil} - Kubernetes cluster >> monitor created: KubernetesClusterMonitor [ >> kubernetesHostClusterId=KubGrp1, clusterId=test2.php.domain, serviceId=php] >> >> [2014-09-19 12:09:06,258] INFO >> {org.apache.stratos.autoscaler.message.receiver.topology.AutoscalerTopologyEventReceiver} >> - Kubernetes cluster monitor has been added successfully: [cluster] >> test2.php.domain >> >> [2014-09-19 12:09:06,263] INFO >> {org.apache.stratos.manager.topology.receiver.StratosManagerTopologyEventReceiver} >> - [CompleteTopologyEventListener] Received: class >> org.apache.stratos.messaging.event.topology.CompleteTopologyEvent >> >> [2014-09-19 12:10:06,950] DEBUG >> {org.apache.stratos.kubernetes.client.KubernetesApiClient} - >> CreateReplicationController Request Body : >> {"kind":"ReplicationController","id":"test2.php.domain","apiVersion":"v1beta1","labels":{"name":"test2.php.domain"},"desiredState":{"replicas":2,"replicaSelector":{"name":"test2.php.domain"},"podTemplate":{"desiredState":{"manifest":{"version":"v1beta1","id":"test2.php.domain","containers":[{"name":"test2-apachestratos-org","image":"sajhak/stratos-php","ports":[{"name":"tcp80","protocol":"tcp","containerPort":80,"hostPort":0},{"name":"tcp443","protocol":"tcp","containerPort":443,"hostPort":0}],"env":[{"name":"SERVICE_NAME","value":"php"},{"name":"HOST_NAME","value":" >> test2.apachestratos.org >> "},{"name":"MULTITENANT","value":"false"},{"name":"TENANT_ID","value":"-1234"},{"name":"TENANT_RANGE","value":"-1234"},{"name":"CARTRIDGE_ALIAS","value":"test2"},{"name":"CLUSTER_ID","value":"test2.php.domain"},{"name":"CARTRIDGE_KEY","value":"LyiZrGjCgiM3Vzpe"},{"name":"REPO_URL","value":"null"},{"name":"PORTS","value":"80|443"},{"name":"PROVIDER","value":"apache"},{"name":"PUPPET_IP","value":"127.0.0.1"},{"name":"PUPPET_HOSTNAME","value":" >> puppet.apache.stratos.org >> "},{"name":"PUPPET_DNS_AVAILABLE","value":"false"},{"name":"PUPPET_ENV","value":"stratos"},{"name":"DEPLOYMENT","value":"default"},{"name":"COMMIT_ENABLED","value":"false"},{"name":"MEMBER_ID","value":"test2.php.domain0b318d26-36ef-42cc-a6da-cafe4981dae9"},{"name":"LB_CLUSTER_ID"},{"name":"NETWORK_PARTITION_ID"},{"name":"KUBERNETES_CLUSTER_ID","value":"KubGrp1"},{"name":"KUBERNETES_MASTER_IP","value":"127.0.0.1"},{"name":"KUBERNETES_PORT_RANGE","value":"4000-5000"}]}]},"replicas":0},"labels":{"name":"test2.php.domain"}}}} >> >> [2014-09-19 12:10:07,069] DEBUG >> {org.apache.stratos.kubernetes.client.KubernetesApiClient} - CreateService >> Request Body : >> {"kind":"Service","id":"test2-php-domain","port":4000,"selector":{"name":"test2.php.domain"},"apiVersion":"v1beta1"} >> >> >> {"kind":"Service","id":"test2-php-domain","port":4000,"selector":{"name":"test2.php.domain"},"apiVersion":"v1beta1"} >> >> 200 >> >> [2014-09-19 12:10:07,151] INFO >> {org.apache.stratos.cloud.controller.topology.TopologyEventPublisher} - >> Publishing instance spawned event: [service] php [cluster] test2.php.domain >> [network-partition] null [partition] null [member] >> test2.php.domain0b318d26-36ef-42cc-a6da-cafe4981dae9 [lb-cluster-id] null >> >> [2014-09-19 12:10:07,155] INFO >> {org.apache.stratos.cloud.controller.impl.CloudControllerServiceImpl} - >> Kubernetes entities are successfully starting up. MemberContext >> [memberId=test2.php.domain0b318d26-36ef-42cc-a6da-cafe4981dae9, >> nodeId=null, clusterId=test2.php.domain, cartridgeType=php, >> privateIpAddress=127.0.0.1, publicIpAddress=127.0.0.1, >> allocatedIpAddress=null, initTime=1411108806404, lbClusterId=null, >> networkPartitionId=null] >> >> >> On Fri, Sep 19, 2014 at 12:11 PM, Nirmal Fernando <[email protected] >> > wrote: >> >>> Please note that the environment variable section in the above >>> replicationController is not completed, found a bug! Will change the >>> updated version once it is fixed. >>> >>> Following is a sample auto-generated Kubernetes proxy service; >>> >>> { >>> "kind": "Service", >>> "id": "test2-php-domain", >>> "port": 4000, >>> "selector": { >>> "name": "test2.php.domain" >>> }, >>> "apiVersion": "v1beta1" >>> } >>> >>> On Fri, Sep 19, 2014 at 11:04 AM, Nirmal Fernando < >>> [email protected]> wrote: >>> >>>> Here's a auto-generated Kubernetes replication controller json as of >>>> now, for clarity. This could change based on the other testing. >>>> >>>> { >>>> "kind": "ReplicationController", >>>> "id": "test2.php.domain", >>>> "apiVersion": "v1beta1", >>>> "labels": { >>>> "name": "test2.php.domain" >>>> }, >>>> "desiredState": { >>>> "replicas": 2, >>>> "replicaSelector": { >>>> "name": "test2.php.domain" >>>> }, >>>> "podTemplate": { >>>> "desiredState": { >>>> "manifest": { >>>> "version": "v1beta1", >>>> "id": "test2.php.domain", >>>> "containers": [ >>>> { >>>> "name": "test2-apachestratos-org", >>>> "image": "sajhak/stratos-php", >>>> "ports": [ >>>> { >>>> "name": "tcp80", >>>> "protocol": "tcp", >>>> "containerPort": 80, >>>> "hostPort": 0 >>>> }, >>>> { >>>> "name": "tcp443", >>>> "protocol": "tcp", >>>> "containerPort": 443, >>>> "hostPort": 0 >>>> } >>>> ], >>>> "env": [ >>>> { >>>> "name": "MEMBER_ID", >>>> "value": >>>> "test2.php.domain9597d3fd-2852-49f5-af39-28ba9a6d2afa" >>>> }, >>>> { >>>> "name": "LB_CLUSTER_ID" >>>> }, >>>> { >>>> "name": "NETWORK_PARTITION_ID" >>>> }, >>>> { >>>> "name": "KUBERNETES_CLUSTER_ID", >>>> "value": "KubGrp1" >>>> }, >>>> { >>>> "name": "KUBERNETES_MASTER_IP", >>>> "value": "127.0.0.1" >>>> }, >>>> { >>>> "name": "KUBERNETES_PORT_RANGE", >>>> "value": "4000-5000" >>>> } >>>> ] >>>> } >>>> ] >>>> }, >>>> "replicas": 0 >>>> }, >>>> "labels": { >>>> "name": "test2.php.domain" >>>> } >>>> } >>>> } >>>> } >>>> >>>> On Fri, Sep 19, 2014 at 10:35 AM, Nirmal Fernando < >>>> [email protected]> wrote: >>>> >>>>> Here's the jsons and requests used. >>>>> >>>>> Register Host ClusterHost Json >>>>> >>>>> { >>>>> >>>>> "groupId": "KubGrp1", >>>>> >>>>> "description": "Kubernetes CoreOS cluster on EC2 ", >>>>> >>>>> "kubernetesMaster": { >>>>> >>>>> "hostId" : "KubHostMaster1", >>>>> >>>>> "hostname" : "master.dev.kubernetes.example.org", >>>>> >>>>> "hostIpAddress" : "127.0.0.1", >>>>> >>>>> "property" : [ >>>>> >>>>> { >>>>> >>>>> "name": "prop1", >>>>> >>>>> "value": "val1" >>>>> >>>>> }, >>>>> >>>>> { >>>>> >>>>> "name": "prop2", >>>>> >>>>> "value": "val2" >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> }, >>>>> >>>>> "portRange" : { >>>>> >>>>> "upper": "5000", >>>>> >>>>> "lower": "4000" >>>>> >>>>> }, >>>>> >>>>> "kubernetesHost": [ >>>>> >>>>> { >>>>> >>>>> "hostId" : "KubHostSlave1", >>>>> >>>>> "hostname" : "slave1.dev.kubernetes.example.org", >>>>> >>>>> "hostIpAddress" : "127.0.0.1", >>>>> >>>>> "property" : [ >>>>> >>>>> { >>>>> >>>>> "name": "prop1", >>>>> >>>>> "value": "val1" >>>>> >>>>> }, >>>>> >>>>> { >>>>> >>>>> "name": "prop2", >>>>> >>>>> "value": "val2" >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> >>>>> ], >>>>> >>>>> "property": [ >>>>> >>>>> { >>>>> >>>>> "name": "prop1", >>>>> >>>>> "value": "val1" >>>>> >>>>> }, >>>>> >>>>> { >>>>> >>>>> "name": "prop2", >>>>> >>>>> "value": "val2" >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> >>>>> Register a Kubernetes Group >>>>> >>>>> curl -X POST -H "Content-Type: application/json" -d >>>>> @"new-kub-register.json" -k -u admin:admin " >>>>> https://127.0.0.1:9443/stratos/admin/kubernetes/deploy/group" >>>>> >>>>> Get a registered Kubernetes Group >>>>> >>>>> curl -k -u admin:admin " >>>>> https://127.0.0.1:9443/stratos/admin/kubernetes/group/KubGrp1" >>>>> >>>>> >>>>> Deploy a Docker CartridgeDocker Cartridge Json >>>>> >>>>> { >>>>> >>>>> "type": "php", >>>>> >>>>> "provider": "apache", >>>>> >>>>> "host": "apachestratos.org", >>>>> >>>>> "displayName": "PHP", >>>>> >>>>> "description": "PHP Cartridge", >>>>> >>>>> "version": "5.0", >>>>> >>>>> "multiTenant": "false", >>>>> >>>>> "deployerType": "kubernetes", >>>>> >>>>> "portMapping": [ >>>>> >>>>> { >>>>> >>>>> "protocol": "http", >>>>> >>>>> "port": "80", >>>>> >>>>> "proxyPort": "8280" >>>>> >>>>> }, >>>>> >>>>> { >>>>> >>>>> "protocol": "https", >>>>> >>>>> "port": "443", >>>>> >>>>> "proxyPort": "8243" >>>>> >>>>> } >>>>> >>>>> ], >>>>> >>>>> "container": [ >>>>> >>>>> { >>>>> >>>>> "imageName": "sajhak/stratos-php", >>>>> >>>>> "dockerfileRepo" :" >>>>> https://github.com/sajhak/stratos-docker-php-image.git", >>>>> >>>>> "property": [ >>>>> >>>>> { >>>>> >>>>> "name": "prop-name", >>>>> >>>>> "value": "prop-value" >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> >>>>> Deploy Docker Cartridge >>>>> >>>>> curl -X POST -H "Content-Type: application/json" -d >>>>> @'php-docker-cart.json' -k -v -u admin:admin >>>>> https://localhost:9443/stratos/admin/cartridge/definition >>>>> >>>>> >>>>> Subscribe to a Docker Cartridge Subscription Json >>>>> >>>>> php-subscription.json >>>>> >>>>> { >>>>> >>>>> "cartridgeType": "php", >>>>> >>>>> "alias": "test2", >>>>> >>>>> "commitsEnabled": "false", >>>>> >>>>> "property": [ >>>>> >>>>> { >>>>> >>>>> "name": "KUBERNETES_CLUSTER_ID", >>>>> >>>>> "value": "KubGrp1" >>>>> >>>>> }, >>>>> >>>>> { >>>>> >>>>> "name": "KUBERNETES_REPLICAS_MIN", >>>>> >>>>> "value": "2" >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> Subscription Request >>>>> >>>>> curl -X POST -H "Content-Type: application/json" -d >>>>> @php-subscription.json -k -v -u admin:admin >>>>> https://localhost:9443/stratos/admin/cartridge/subscribe >>>>> >>>>> >>>>> On Fri, Sep 19, 2014 at 10:11 AM, Nirmal Fernando < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Fri, Sep 19, 2014 at 9:56 AM, Nirmal Fernando < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> I've carried out following testing on the docker integration branch, >>>>>>> so far, and here's the status. >>>>>>> >>>>>>> * Set up a local Kubernetes cluster (master and 2 minions) and >>>>>>> tested basic Kubernetes operations on it. >>>>>>> * Tested Kubernetes host registration and here I faced an issue when >>>>>>> hosts getting persisted [1]. >>>>>>> >>>>>> >>>>>> I verified this again and this is fixed now. >>>>>> >>>>>> >>>>>>> * Docker Cartridge deployment was tested and it worked fine. >>>>>>> * Then tested the Docker Cartridge subscription and fixed few issues >>>>>>> faced while doing so and committed them. >>>>>>> * Upon a subscription a Kubernetes Cluster monitor got created and >>>>>>> called CC to spawn containers. >>>>>>> * Faced several class loading issues when I deployed kubernetes >>>>>>> client jar built into the Carbon runtime due to the use of Jax-rs proxy >>>>>>> APIs. Those were tricky to fix, hence re-wrote the client using Apache >>>>>>> HttpClient. >>>>>>> * Currently facing few issues with the hidden constraints of >>>>>>> Kubernetes entities; such as; >>>>>>> - Container name can't have '.' (dots). >>>>>>> - Protocol of a container port should always be 'tcp' >>>>>>> >>>>>>> I'll continue the testing and update the thread. >>>>>>> >>>>>>> On Mon, Sep 15, 2014 at 9:11 AM, Nirmal Fernando < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Please take a moment to update the status of the tasks listed for >>>>>>>> 4.1.0 M1; http://goo.gl/vpdZIa >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> On Mon, Sep 15, 2014 at 8:58 AM, Nirmal Fernando < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Currently hitting an issue in the docker-integration branch : >>>>>>>>> https://issues.apache.org/jira/browse/STRATOS-798 >>>>>>>>> >>>>>>>>> On Sun, Sep 14, 2014 at 11:12 PM, Nirmal Fernando < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Please avoid committing changes that are not available for M1. I >>>>>>>>>> am gonna start an end-to-end testing. >>>>>>>>>> >>>>>>>>>> On Fri, Sep 12, 2014 at 10:23 AM, Nirmal Fernando < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> I create 4.1.0 M1 and M2 versions in the Jira. Please update the >>>>>>>>>>> version of the Jiras you are planning to get to the first developer >>>>>>>>>>> preview >>>>>>>>>>> as 4.1.0 M1. >>>>>>>>>>> >>>>>>>>>>> We need to come up with a code freeze date too. I'd suggest we >>>>>>>>>>> code freeze for M1 on 13th September 8pm PST. Thoughts? >>>>>>>>>>> >>>>>>>>>>> On Wed, Sep 10, 2014 at 8:23 PM, Nirmal Fernando < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> I'll create a 4.1.0 M1 version, so that we can tag Jiras that >>>>>>>>>>>> are/will be ready. >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Sep 10, 2014 at 6:40 PM, Lakmal Warusawithana < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> If we are targeting this week for M1, what are the features >>>>>>>>>>>>> can ship? JIRA list? >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Sep 10, 2014 at 4:55 PM, Lakmal Warusawithana < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Dev, >>>>>>>>>>>>>> >>>>>>>>>>>>>> How about $subject? IMO, it will help all devs to check their >>>>>>>>>>>>>> dependancies. >>>>>>>>>>>>>> >>>>>>>>>>>>>> thanks >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Lakmal Warusawithana >>>>>>>>>>>>>> Vice President, Apache Stratos >>>>>>>>>>>>>> Director - Cloud Architecture; WSO2 Inc. >>>>>>>>>>>>>> Mobile : +94714289692 >>>>>>>>>>>>>> Blog : http://lakmalsview.blogspot.com/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Lakmal Warusawithana >>>>>>>>>>>>> Vice President, Apache Stratos >>>>>>>>>>>>> Director - Cloud Architecture; WSO2 Inc. >>>>>>>>>>>>> Mobile : +94714289692 >>>>>>>>>>>>> Blog : http://lakmalsview.blogspot.com/ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Best Regards, >>>>>>>>>>>> Nirmal >>>>>>>>>>>> >>>>>>>>>>>> Nirmal Fernando. >>>>>>>>>>>> PPMC Member & Committer of Apache Stratos, >>>>>>>>>>>> Senior Software Engineer, WSO2 Inc. >>>>>>>>>>>> >>>>>>>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Best Regards, >>>>>>>>>>> Nirmal >>>>>>>>>>> >>>>>>>>>>> Nirmal Fernando. >>>>>>>>>>> PPMC Member & Committer of Apache Stratos, >>>>>>>>>>> Senior Software Engineer, WSO2 Inc. >>>>>>>>>>> >>>>>>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Best Regards, >>>>>>>>>> Nirmal >>>>>>>>>> >>>>>>>>>> Nirmal Fernando. >>>>>>>>>> PPMC Member & Committer of Apache Stratos, >>>>>>>>>> Senior Software Engineer, WSO2 Inc. >>>>>>>>>> >>>>>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Best Regards, >>>>>>>>> Nirmal >>>>>>>>> >>>>>>>>> Nirmal Fernando. >>>>>>>>> PPMC Member & Committer of Apache Stratos, >>>>>>>>> Senior Software Engineer, WSO2 Inc. >>>>>>>>> >>>>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Best Regards, >>>>>>>> Nirmal >>>>>>>> >>>>>>>> Nirmal Fernando. >>>>>>>> PPMC Member & Committer of Apache Stratos, >>>>>>>> Senior Software Engineer, WSO2 Inc. >>>>>>>> >>>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Best Regards, >>>>>>> Nirmal >>>>>>> >>>>>>> Nirmal Fernando. >>>>>>> PPMC Member & Committer of Apache Stratos, >>>>>>> Senior Software Engineer, WSO2 Inc. >>>>>>> >>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best Regards, >>>>>> Nirmal >>>>>> >>>>>> Nirmal Fernando. >>>>>> PPMC Member & Committer of Apache Stratos, >>>>>> Senior Software Engineer, WSO2 Inc. >>>>>> >>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Best Regards, >>>>> Nirmal >>>>> >>>>> Nirmal Fernando. >>>>> PPMC Member & Committer of Apache Stratos, >>>>> Senior Software Engineer, WSO2 Inc. >>>>> >>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>> >>>> >>>> >>>> >>>> -- >>>> Best Regards, >>>> Nirmal >>>> >>>> Nirmal Fernando. >>>> PPMC Member & Committer of Apache Stratos, >>>> Senior Software Engineer, WSO2 Inc. >>>> >>>> Blog: http://nirmalfdo.blogspot.com/ >>>> >>> >>> >>> >>> -- >>> Best Regards, >>> Nirmal >>> >>> Nirmal Fernando. >>> PPMC Member & Committer of Apache Stratos, >>> Senior Software Engineer, WSO2 Inc. >>> >>> Blog: http://nirmalfdo.blogspot.com/ >>> >> >> >> >> -- >> Best Regards, >> Nirmal >> >> Nirmal Fernando. >> PPMC Member & Committer of Apache Stratos, >> Senior Software Engineer, WSO2 Inc. >> >> Blog: http://nirmalfdo.blogspot.com/ >> > > > > -- > Best Regards, > Nirmal > > Nirmal Fernando. > PPMC Member & Committer of Apache Stratos, > Senior Software Engineer, WSO2 Inc. > > Blog: http://nirmalfdo.blogspot.com/ > -- *Sajith Kariyawasam* *Committer and PMC member, Apache Stratos,WSO2 Inc., http://wso2.com <http://wso2.com>AMIE (SL)Mobile: +94772269575*
