According to the error, seems like the checkout path parameter is not
String:
TypeError: execve() arg 2 must contain only strings


On Fri, Feb 13, 2015 at 10:08 AM, Imesh Gunaratne <[email protected]> wrote:

> Hi Chamila,
>
> Great stuff, please send a PR. We will investigate this. For me git clone
> works fine with authentication.
>
> Thanks
>
> On Fri, Feb 13, 2015 at 10:01 AM, Chamila De Alwis <[email protected]>
> wrote:
>
>> Hi Imesh,
>>
>> I have almost completed the work to switch to gitpython. However there is
>> an issue with the type of the auth url, that is given to GitPython. Other
>> than that, public repo cloning now works with the library.
>>
>> When a url with credentials is passed, I'm getting the following error.
>> Investigating further.
>>
>> [2015-02-13 09:59:13,200] ERROR {eventsubscriber.py:run} - Error
>> processing 'ArtifactUpdatedEvent' event
>> Traceback (most recent call last):
>>   File
>> "/home/chamilad/dev/stratos/components/org.apache.stratos.python.cartridge.agent/target/10c657f1-a3a4-4aee-bfe3-949fda7346a9/cartridge.agent/modules/subscriber/eventsubscriber.py",
>> line 103, in run
>>     handler(event_msg)
>>   File
>> "/home/chamilad/dev/stratos/components/org.apache.stratos.python.cartridge.agent/target/test-classes/../10c657f1-a3a4-4aee-bfe3-949fda7346a9/cartridge.agent/agent.py",
>> line 185, in on_artifact_updated
>>     CartridgeAgent.extension_handler.on_artifact_updated_event(event_obj)
>>   File
>> "/home/chamilad/dev/stratos/components/org.apache.stratos.python.cartridge.agent/target/10c657f1-a3a4-4aee-bfe3-949fda7346a9/cartridge.agent/modules/extensions/extensionhandler.py",
>> line 122, in on_artifact_updated_event
>>     subscribe_run, updated =
>> agentgithandler.AgentGitHandler.checkout(repo_info)
>>   File
>> "/home/chamilad/dev/stratos/components/org.apache.stratos.python.cartridge.agent/target/10c657f1-a3a4-4aee-bfe3-949fda7346a9/cartridge.agent/modules/artifactmgt/git/agentgithandler.py",
>> line 89, in checkout
>>     git_repo = AgentGitHandler.clone(git_repo)
>>   File
>> "/home/chamilad/dev/stratos/components/org.apache.stratos.python.cartridge.agent/target/10c657f1-a3a4-4aee-bfe3-949fda7346a9/cartridge.agent/modules/artifactmgt/git/agentgithandler.py",
>> line 192, in clone
>>     Repo.clone_from(unicode(git_repo.repo_url, "utf-8"),
>> unicode(git_repo.local_repo_path, "utf-8"))
>>   File "/usr/local/lib/python2.7/dist-packages/git/repo/base.py", line
>> 844, in clone_from
>>     return cls._clone(Git(os.getcwd()), url, to_path, GitCmdObjectDB,
>> progress, **kwargs)
>>   File "/usr/local/lib/python2.7/dist-packages/git/repo/base.py", line
>> 791, in _clone
>>     v=True, **add_progress(kwargs, git, progress))
>>   File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 431, in
>> <lambda>
>>     return lambda *args, **kwargs: self._call_process(name, *args,
>> **kwargs)
>>   File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 802, in
>> _call_process
>>     return self.execute(make_call(), **_kwargs)
>>   File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 556, in
>> execute
>>     **subprocess_kwargs
>>   File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
>>     errread, errwrite)
>>   File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
>>     raise child_exception
>> TypeError: execve() arg 2 must contain only strings
>>
>>
>> Regards,
>> Chamila de Alwis
>> Software Engineer | WSO2 | +94772207163
>> Blog: code.chamiladealwis.com
>>
>>
>>
>> On Fri, Feb 13, 2015 at 9:30 AM, Imesh Gunaratne <[email protected]>
>> wrote:
>>
>>> I analyzed the issue the NoneType error has occurred due to the EOF
>>> exception which has been raised while executing git clone shell command:
>>>
>>> The problem is in the following line:
>>>
>>> git_repo = AgentGitHandler.clone(git_repo)
>>> AgentGitHandler.log.debug("Git clone executed: [tenant-id] %s [repo-url] 
>>> %s",
>>>                           git_repo.tenant_id, git_repo.repo_url)
>>>
>>> Here clone() method returns NoneType if clone fails. Anyway the root cause 
>>> of the problem is with the Git client implementation. Will switch to 
>>> GitPython to avoid this intermittent issue of EOF.
>>>
>>> Thanks
>>>
>>>
>>> On Fri, Feb 13, 2015 at 9:20 AM, Imesh Gunaratne <[email protected]>
>>> wrote:
>>>
>>>> I can see the tenant id attribute in received message, may be it was
>>>> not properly set:
>>>>
>>>> [2015-02-13 03:44:06,394] DEBUG {eventsubscriber.py:on_message} -
>>>> Message received: instance/notifier/ArtifactUpdatedEvent:
>>>>
>>>> {"clusterId":"php1.php.domain","repoUserName":"","repoPassword":"","repoURL":"
>>>> https://github.com/imesh/stratos-php-applications.git
>>>> ","tenantId":"-1234","commitEnabled":false}
>>>>
>>>> On Fri, Feb 13, 2015 at 9:19 AM, Imesh Gunaratne <[email protected]>
>>>> wrote:
>>>>
>>>>> Also the following error was there in the log:
>>>>>
>>>>> [2015-02-13 03:44:28,498] ERROR {agentgithandler.py:clone} - Exception
>>>>> while executing git clone command on git binary : EOF("End Of File (EOF).
>>>>> Exception style platform.\n<pexpect.spawn object at 0x25c17d0>\nversion:
>>>>> 3.3\ncommand: /usr/bin/git\nargs: ['/usr/bin/git', 'clone', '
>>>>> https://github.com/imesh/stratos-php-applications.git',
>>>>> '/var/www']\nsearcher: <pexpect.searcher_re object at 0x25c18d0>\nbuffer
>>>>> (last 100 chars): ''\nbefore (last 100 chars): 'ng deltas:  98% (71/72)
>>>>> \\rResolving deltas: 100% (72/72)   \\rResolving deltas: 100% (72/72),
>>>>> done.\\r\\n'\nafter: <class 'pexpect.EOF'>\nmatch: None\nmatch_index:
>>>>> None\nexitstatus: None\nflag_eof: True\npid: 63\nchild_fd: 11\nclosed:
>>>>> False\ntimeout: 120\ndelimiter: <class 'pexpect.EOF'>\nlogfile:
>>>>> None\nlogfile_read: None\nlogfile_send: None\nmaxread: 2000\nignorecase:
>>>>> False\nsearchwindowsize: None\ndelaybeforesend: 0.05\ndelayafterclose:
>>>>> 0.1\ndelayafterterminate: 0.1",)
>>>>> Traceback (most recent call last):
>>>>>   File
>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/artifactmgt/git/agentgithandler.py",
>>>>> line 200, in clone
>>>>>     result = clone_op.expect(["Username for .*", "Password for .*",
>>>>> "Checking connectivity... done."])
>>>>>   File "/usr/local/lib/python2.7/dist-packages/pexpect/__init__.py",
>>>>> line 1451, in expect
>>>>>     timeout, searchwindowsize)
>>>>>   File "/usr/local/lib/python2.7/dist-packages/pexpect/__init__.py",
>>>>> line 1466, in expect_list
>>>>>     timeout, searchwindowsize)
>>>>>   File "/usr/local/lib/python2.7/dist-packages/pexpect/__init__.py",
>>>>> line 1554, in expect_loop
>>>>>     raise EOF(str(err) + '\n' + str(self))
>>>>> EOF: End Of File (EOF). Exception style platform.
>>>>> <pexpect.spawn object at 0x25c17d0>
>>>>>
>>>>> On Fri, Feb 13, 2015 at 9:17 AM, Imesh Gunaratne <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> The problem was in populate-user-data.sh file [1], APPLICATION_PATH
>>>>>> has been removed from it. I just fixed it, pushed the new PHP docker 
>>>>>> image
>>>>>> to docker hub and did another flow test and found the below error:
>>>>>>
>>>>>> [2015-02-13 03:44:28,603] ERROR {eventsubscriber.py:run} - Error
>>>>>> processing 'ArtifactUpdatedEvent' event
>>>>>> Traceback (most recent call last):
>>>>>>   File
>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/subscriber/eventsubscriber.py",
>>>>>> line 103, in run
>>>>>>     handler(event_msg)
>>>>>>   File "agent.py", line 185, in on_artifact_updated
>>>>>>
>>>>>> CartridgeAgent.extension_handler.on_artifact_updated_event(event_obj)
>>>>>>   File
>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/extensions/extensionhandler.py",
>>>>>> line 122, in on_artifact_updated_event
>>>>>>     subscribe_run, updated =
>>>>>> agentgithandler.AgentGitHandler.checkout(repo_info)
>>>>>>   File
>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/artifactmgt/git/agentgithandler.py",
>>>>>> line 91, in checkout
>>>>>>     git_repo.tenant_id, git_repo.repo_url)
>>>>>> AttributeError: 'NoneType' object has no attribute 'tenant_id'
>>>>>>
>>>>>> [1]
>>>>>> https://github.com/apache/stratos/blob/master/tools/docker-images/cartridge-docker-images/base-image/files/populate-user-data.sh
>>>>>>
>>>>>> On Fri, Feb 13, 2015 at 7:43 AM, Imesh Gunaratne <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Thanks Lakmal, yes as I found basic features we need works with Git
>>>>>>> python. Will do that.
>>>>>>> Regarding the above error, seems like it has occurred due to the
>>>>>>> APPLICATION_PATH not being sent in payload, there was no None check or a
>>>>>>> log saying its not found:
>>>>>>>
>>>>>>> def clone(git_repo):
>>>>>>>     if os.path.isdir(git_repo.local_repo_path):
>>>>>>>         # delete and recreate local repo path if exists
>>>>>>>         GitUtils.delete_folder_tree(git_repo.local_repo_path)
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Feb 13, 2015 at 7:37 AM, Lakmal Warusawithana <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Feb 13, 2015 at 7:34 AM, Imesh Gunaratne <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> As it looks like this error has been caused by the agent git
>>>>>>>>> handler while executing git clone, IMO its better if we can switch to
>>>>>>>>> GitPython.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> +1, If GitPython has full functionality what we expect, lets move
>>>>>>>> to it. I was under impression that it has some limitation. If so 
>>>>>>>> please not
>>>>>>>> waist time to fix current one.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>> On Fri, Feb 13, 2015 at 7:31 AM, Imesh Gunaratne <[email protected]
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> Hi Devs,
>>>>>>>>>>
>>>>>>>>>> Yesterday we fixed several issues in PCA, now I'm seeing the
>>>>>>>>>> below error when trying to receive artifact updated event:
>>>>>>>>>>
>>>>>>>>>> [2015-02-13 01:56:07,311] ERROR {eventsubscriber.py:run} - Error
>>>>>>>>>> processing 'ArtifactUpdatedEvent' event
>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>   File
>>>>>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/subscriber/eventsubscriber.py",
>>>>>>>>>> line 103, in run
>>>>>>>>>>     handler(event_msg)
>>>>>>>>>>   File "agent.py", line 185, in on_artifact_updated
>>>>>>>>>>
>>>>>>>>>> CartridgeAgent.extension_handler.on_artifact_updated_event(event_obj)
>>>>>>>>>>   File
>>>>>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/extensions/extensionhandler.py",
>>>>>>>>>> line 122, in on_artifact_updated_event
>>>>>>>>>>     subscribe_run, updated =
>>>>>>>>>> agentgithandler.AgentGitHandler.checkout(repo_info)
>>>>>>>>>>   File
>>>>>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/artifactmgt/git/agentgithandler.py",
>>>>>>>>>> line 89, in checkout
>>>>>>>>>>     git_repo = AgentGitHandler.clone(git_repo)
>>>>>>>>>>   File
>>>>>>>>>> "/mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/modules/artifactmgt/git/agentgithandler.py",
>>>>>>>>>> line 190, in clone
>>>>>>>>>>     if os.path.isdir(git_repo.local_repo_path):
>>>>>>>>>>   File "/usr/lib/python2.7/genericpath.py", line 41, in isdir
>>>>>>>>>>     st = os.stat(s)
>>>>>>>>>> TypeError: coercing to Unicode: need string or buffer, NoneType
>>>>>>>>>> foun
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Imesh Gunaratne
>>>>>>>>>>
>>>>>>>>>> Technical Lead, WSO2
>>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Imesh Gunaratne
>>>>>>
>>>>>> Technical Lead, WSO2
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Imesh Gunaratne
>>>>>
>>>>> Technical Lead, WSO2
>>>>> Committer & PMC Member, Apache Stratos
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>
>>
>
>
> --
> Imesh Gunaratne
>
> Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>



-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to