You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by "Clay B. (JIRA)" <ji...@apache.org> on 2012/10/18 01:12:02 UTC

[jira] [Comment Edited] (CLOUDSTACK-370) SSVM fails to download ISO using HTTP if hostname begins with FTP

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13478481#comment-13478481 ] 

Clay B. edited comment on CLOUDSTACK-370 at 10/17/12 11:10 PM:
---------------------------------------------------------------

This looks to be a bug in HTTPClient:

(Using Jython)
>>> import org.apache.commons.httpclient.methods.GetMethod as GetMethod
>>> import org.apache.commons.httpclient.params.HttpMethodParams as HttpMethodParams
>>> import org.apache.commons.httpclient.HttpClient as HttpClient
>>> import java.net.URI as URI
>>> import java.lang.String as JString
>>> request=GetMethod(JString("http://ftp.linux.ncsu.edu/pub/CentOS/5.8/isos/x86_64/CentOS-5.8-x86_64-netinstall.iso"))
>>> request.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,None)
>>> client = HttpClient()
>>> responseCode = client.executeMethod(request)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
	at org.apache.commons.httpclient.protocol.Protocol.lazyRegisterProtocol(Protocol.java:149)
	at org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.java:117)
	at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107)
	at org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:280)
	at org.apache.commons.httpclient.HttpMethodDirector.processRedirectResponse(HttpMethodDirector.java:616)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:179)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)

java.lang.IllegalStateException: java.lang.IllegalStateException: unsupported protocol: 'ftp'

Thank you both for replying before I could even test the issue Edison and David!
                
      was (Author: clayb):
    This looks to be a bug in HTTPClient:

(Using Jython)
>>> import org.apache.commons.httpclient.methods.GetMethod as GetMethod
>>> import org.apache.commons.httpclient.params.HttpMethodParams as HttpMethodParams
>>> import org.apache.commons.httpclient.HttpClient as HttpClient
>>> import java.net.URI as URI
>>> import java.lang.String as JString
>>> request=GetMethod(JString("http://ftp.linux.ncsu.edu/pub/CentOS/5.8/isos/x86_64/CentOS-5.8-x86_64-netinstall.iso"))
>>> request.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,None)
>>> client = HttpClient()
>>> responseCode = client.executeMethod(request)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
	at org.apache.commons.httpclient.protocol.Protocol.lazyRegisterProtocol(Protocol.java:149)
	at org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.java:117)
	at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107)
	at org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:280)
	at org.apache.commons.httpclient.HttpMethodDirector.processRedirectResponse(HttpMethodDirector.java:616)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:179)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)

java.lang.IllegalStateException: java.lang.IllegalStateException: unsupported protocol: 'ftp'

                  
> SSVM fails to download ISO using HTTP if hostname begins with FTP
> -----------------------------------------------------------------
>
>                 Key: CLOUDSTACK-370
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-370
>             Project: CloudStack
>          Issue Type: Bug
>          Components: ISO
>    Affects Versions: pre-4.0.0
>         Environment: Running CloudStack-oss-3.0.2-1-rhel6.2 on CentOS 6.3
>            Reporter: Clay B.
>            Priority: Minor
>
> I am trying to add the following ISO to my Cloud Stack ISOs:
> http://ftp.linux.ncsu.edu/pub/CentOS/5.8/isos/x86_64/CentOS-5.8-x86_64-netinstall.iso
> (Note it is using the HTTP protocol but the hostname starts with ftp.)
> It works happily from http://mirror.nexcess.net/CentOS/5.8/isos/x86_64/CentOS-5.8-x86_64-netinstall.iso
> I see the following on the UI under my attempted ISO add:
> Status	Failed to install: unsupported protocol: 'ftp'
> I see the following error in my SSVM /var/log/cloud/cloud.log:
> java.lang.IllegalStateException: unsupported protocol: 'ftp'
>         at org.apache.commons.httpclient.protocol.Protocol.lazyRegisterProtocol(Protocol.java:149)
>         at org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.java:117)
>         at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107)
>         at org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:280)
>         at org.apache.commons.httpclient.HttpMethodDirector.processRedirectResponse(HttpMethodDirector.java:616)
>         at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:179)
>         at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>         at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
>         at com.cloud.storage.template.HttpTemplateDownloader.download(HttpTemplateDownloader.java:225)
>         at com.cloud.storage.template.HttpTemplateDownloader.run(HttpTemplateDownloader.java:377)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira