Hi Imesh, Please merge the fixed PR #181. The application path is added to the basic payload only if it has a non null value.
https://github.com/apache/stratos/pull/181 Regards, Chamila de Alwis Software Engineer | WSO2 | +94772207163 Blog: code.chamiladealwis.com On Tue, Jan 20, 2015 at 7:15 PM, Chamila De Alwis <chami...@wso2.com> wrote: > Hi, > > I removed the APPLICATION_PATH from the basic payload data. This is now > set via Puppet in the VM scenario and in the Docker scenario it has to be > set in the cartridge definition, which will make it available as an > environment variable. Please merge the PR[1]. > > [1] - https://github.com/apache/stratos/pull/180 > > > Regards, > Chamila de Alwis > Software Engineer | WSO2 | +94772207163 > Blog: code.chamiladealwis.com > > > > On Tue, Jan 20, 2015 at 4:39 PM, Imesh Gunaratne <im...@apache.org> wrote: > >> May be we could support both ways of sending application path, might need >> to see how agent and accommodate it. >> >> Thanks >> >> On Tue, Jan 20, 2015 at 12:22 PM, Lakmal Warusawithana <lak...@wso2.com> >> wrote: >> >>> >>> >>> On Tue, Jan 20, 2015 at 12:00 PM, Imesh Gunaratne <im...@apache.org> >>> wrote: >>> >>>> The reason for this is that, in Kuberntes we still do not use an >>>> orchestration layer such as Puppet. As a result it is not possible to >>>> define this in Puppet master. Therefore we need to add application path to >>>> cluster (basic) payload. >>>> >>>> IMO it would be better to stick to this standard for all scenarios. >>>> WDYT? >>>> >>> >>> I'm not sure we should push these standard, because it depends on the >>> technologies and scenarios. Yes, for kubernetes, we should specify this in >>> cartridge definition, but VM scenario, its depends on what orchestration >>> methods, pattens are used. >>> >>> >>> >>>> >>>> Thanks >>>> >>>> On Tue, Jan 20, 2015 at 1:36 AM, Chamila De Alwis <chami...@wso2.com> >>>> wrote: >>>> >>>>> This seems to be the result of APPLICATION_PATH in the payload having >>>>> a null value. Following is the launch parameters file which contains the >>>>> payload data. >>>>> >>>>> >>>>> APPLICATION_ID=app_cartridge_v1,GROUP_NAME=null,SERVICE_NAME=tomcat,HOST_NAME= >>>>> mytomcat.isuruh.lk >>>>> ,MULTITENANT=false,TENANT_ID=-1234,TENANT_RANGE=*,CARTRIDGE_ALIAS=mytomcat,CLUSTER_ID=mytomcat.tomcat.domain,CARTRIDGE_KEY=dyP8jPcoLSoCv5B7,DEPLOYMENT=default, >>>>> *APPLICATION_PATH=null*,REPO_URL= >>>>> https://github.com/chamilad/tc-hw-artifact-repo.git,PORTS=22,PROVIDER=apache,PUPPET_IP=192.168.30.96,PUPPET_HOSTNAME=puppet.chamilad.org,PUPPET_DNS_AVAILABLE=null,PUPPET_ENV=null,,,DEPENDENCY_CLUSTER_IDS=,TOKEN=eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjQwNTU0MzY1LCJzdWIiOiJhZG1pbiIsImF6cCI6IjFfVEREOWZVTXpVRHFBUEdGZ3haa21ZcGVjMGEiLCJhcHBJZCI6ImFwcF9jYXJ0cmlkZ2VfdjEiLCJhdWQiOlsiMV9UREQ5ZlVNelVEcUFQR0ZneFprbVlwZWMwYSJdLCJpc3MiOiJodHRwczpcL1wvbG9jYWxob3N0Ojk0NDNcL29hdXRoMmVuZHBvaW50c1wvdG9rZW4iLCJpYXQiOjM2OTU0MzY1fQ.ANgYt0H5AiTi9JRJi2N3-QxyUhS-3UOx1_kDaLdkv7k9LGkaWYJ1apceDn8Z0ZdSO0u7aPji2bRbg7FOaHGNVy9167gR5wmj503nmr5cXX0IdPSGX-ahwtf_dI9maIxkDbOjbU3s922bN60zdTdkb1n5kKoT_MgllcpO0iaTCJo,MEMBER_ID=mytomcat.tomcat.domain4dcf223c-63f9-4f9c-b69c-45a3355a0659,INSTANCE_ID=null,CLUSTER_INSTANCE_ID=app_cartridge_v1-1,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack_R1,PARTITION_ID=P1,INTERNAL=false,PRIMARY=false,MIN_COUNT=2 >>>>> >>>>> >>>>> The APPLICATION_PATH (previously APP_PATH) was set by the Puppet >>>>> module using the docroot variable set at the node definition for each >>>>> cartridge type[1]. However as of >>>>> revision 0fdef65eac1ae8bdacae9cd69a2916db90f6950b [2], the >>>>> APPLICATION_PATH >>>>> is added to the basic payload data. >>>>> >>>>> Is there a particular reason for this? If so, why does it set a null >>>>> value to the APPLICATION_PATH? >>>>> >>>>> IMO, since this is a configuration detail, this should be handled by >>>>> the configuration layer, i.e. either Puppet or the variables in the >>>>> Dockerfile. >>>>> >>>>> >>>>> [1] - >>>>> https://github.com/apache/stratos/blob/master/tools/puppet3/manifests/nodes/tomcat.pp >>>>> [2] - >>>>> https://github.com/apache/stratos/commit/0fdef65eac1ae8bdacae9cd69a2916db90f6950b >>>>> >>>>> >>>>> >>>>> >>>>> Regards, >>>>> Chamila de Alwis >>>>> Software Engineer | WSO2 | +94772207163 >>>>> Blog: code.chamiladealwis.com >>>>> >>>>> >>>>> >>>>> On Mon, Jan 19, 2015 at 6:31 PM, Chamila De Alwis <chami...@wso2.com> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I'm getting the following error in the agent log when creating a >>>>>> tomcat cartridge based on the single-cartridge sample. It looks like the >>>>>> folder to clone the artifacts is not being created. I'm looking in to >>>>>> this >>>>>> now. >>>>>> >>>>>> 2015-01-19 18:13:01,919:DEBUG:Executing handler for event >>>>>> 'ArtifactUpdatedEvent' >>>>>> 2015-01-19 18:13:01,919:INFO:Artifact update event received: [tenant] >>>>>> u'-1234' [cluster] u'mytomcat.tomcat.domain' [status] None >>>>>> 2015-01-19 18:13:01,919:INFO:Executing git checkout >>>>>> 2015-01-19 18:13:01,920:DEBUG:Executing git clone: [tenant-id] -1234 >>>>>> [repo-url] https://github.com/chamilad/tc-hw-artifact-repo.git >>>>>> 2015-01-19 18:13:01,920:DEBUG:Repo path returned : '' >>>>>> 2015-01-19 18:13:01,937:ERROR:Permission denied for repository path >>>>>> for tenant u'-1234' >>>>>> Traceback (most recent call last): >>>>>> File >>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/artifactmgt/git/agentgithandler.py", >>>>>> line 230, in clone >>>>>> repo = Repo.clone_from(repo_context.repo_url, >>>>>> repo_context.local_repo_path) >>>>>> File "/usr/local/lib/python2.7/dist-packages/git/repo/base.py", >>>>>> line 727, in clone_from >>>>>> return cls._clone(Git(os.getcwd()), url, to_path, GitCmdObjectDB, >>>>>> **kwargs) >>>>>> File "/usr/local/lib/python2.7/dist-packages/git/repo/base.py", >>>>>> line 682, in _clone >>>>>> git.clone(url, path, **kwargs) >>>>>> File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 219, >>>>>> in <lambda> >>>>>> return lambda *args, **kwargs: self._call_process(name, *args, >>>>>> **kwargs) >>>>>> File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 430, >>>>>> in _call_process >>>>>> return self.execute(call, **_kwargs) >>>>>> File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 309, >>>>>> in execute >>>>>> **subprocess_kwargs >>>>>> File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ >>>>>> errread, errwrite) >>>>>> File "/usr/lib/python2.7/subprocess.py", line 1249, in >>>>>> _execute_child >>>>>> raise child_exception >>>>>> OSError: [Errno 2] No such file or directory >>>>>> >>>>>> >>>>>> Regards, >>>>>> Chamila de Alwis >>>>>> Software Engineer | WSO2 | +94772207163 >>>>>> Blog: code.chamiladealwis.com >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Imesh Gunaratne >>>> >>>> Technical Lead, WSO2 >>>> Committer & PMC Member, Apache Stratos >>>> >>> >>> >>> >>> -- >>> Lakmal Warusawithana >>> Vice President, Apache Stratos >>> Director - Cloud Architecture; WSO2 Inc. >>> Mobile : +94714289692 >>> Blog : http://lakmalsview.blogspot.com/ >>> >>> >> >> >> -- >> Imesh Gunaratne >> >> Technical Lead, WSO2 >> Committer & PMC Member, Apache Stratos >> > >