ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Shea <m...@nitido.com>
Subject Re: publishing via http
Date Wed, 07 Apr 2010 15:28:07 GMT
I enabled PUT requests by adding this to my site configuration:

Alias /ivy /home/ivy
<Directory /home/ivy/>
    DAV On
    <LimitExcept MKCOL GET HEAD OPTIONS PUT>
       Allow from all
    </LimitExcept>
   
    AuthType Basic
    AuthName "Ivy Repository"
  
    AuthBasic Provider ldap
    # Followed by LDAP configuration directives.
</Directory>

I'm running Ubuntu, and I have a stock Apache2 webserver installed, via 
apt-get (version 2.2.12). I didn't need to enable mod_put or anything 
for this to work with a standard curl command that just puts a file into 
/home/ivy. eg:

curl -u [username:password] -T [file] http://[server]/ivy/[target filename]

Using curl to issue MKCOL commands also works:

curl -u [username:password] -X MKCOL http://[server]/ivy/[dir to create]

I haven't been able to find much about mod_put on google - is it still 
relevant? My hypothesis is that the functionality it provides is now 
built-in to the webserver or provided by another module, since I am 
definitely able to do PUTs without it. This, which I just found, 
indicates that the functionality is now provided by mod_dav, which I 
have enabled:

http://objectmix.com/apache/651126-mod_put-apache2.html

Is there a reason that Ivy can't or shouldn't simply issue the MKCOL 
requests before issuing the PUT request? That seems like it would be a 
more elegant solution than requiring customizations to the webserver to 
create the subdirectories.

eg: publishing www.myserver.com/ivy/org/product/1.0/ivys/ivy.xml
results in:
    MKCOL www.myserver.com/ivy
    MKCOL www.myserver.com/ivy/org
    MKCOL www.myserver.com/ivy/org/product
    MKCOL www.myserver.com/ivy/org/product/1.0
    MKCOL www.myserver.com/ivy/org/product/1.0/ivys
    PUT www.myserver.com/ivy/org/product/1.0/ivys/ivy.xml

I will try to figure out how to configure Apache to support creating the 
dirs automatically when I have some time for it... In the meanwhile, I 
have also worked around the issue by setting up openssh on the target 
server so that I can use an SSH resolver.

Thanks,


Mike.
> How did you enable the PUT requests in Apache?
>
> I think the mod_put modules listed here might create the missing directories:
> http://www.gknw.net/development/apache/httpd-2.0/unix/modules/
>
> I couldn't try them though, so I might be mistaken...
>
> Maarten
>
>
> ----- Original Message ----
> From: Michael Shea <mike@nitido.com>
> To: ivy-user@ant.apache.org
> Sent: Tue, April 6, 2010 5:58:46 PM
> Subject: Re: publishing via http
>
> Hi Maarten,
>
> Yes, my apache server is configured to accept HTTP PUT requests.
>
> I've done some debugging using curl to PUT files on the server, and 
> yeah, it looks like the server doesn't create the required 
> subdirectories. So... Is creating the necessary subdirectories (or 
> "collections", in webdav-speak?) when receiving a PUT request a standard 
> thing that webservers do? I presume that it isn't.
>
> So the question I have is:
>
> Is this a "bug" in Ivy, that Ivy doesn't send the necessary MKCOL 
> commands first? Or is this something that is undesirable to have Ivy do 
> for some reason? I know that there's the VFS stuff as well, presumably 
> that would issue the MKCOL commands. It's not really an option for me 
> though, since I want to use this in a production environment where we 
> require stability, and we're not too keen on using projects that haven't 
> ever actually been released (ie: commons-vfs).
>
> Anyway - it just looks to me like the usefulness of using URL resolvers 
> for publishing is severely limited, given that what Ivy actually tries 
> to do when doing an http publish isn't supported by Apache webserver 
> without writing a custom put-script. Maybe if it's not a bug, something 
> in the docs would be useful?
>
>
> Mike Shea.
>
>   
>> Is your apache server configured to accept HTTP PUT requests?
>> If so, mabye you should use another put-script that creates the missing directories?
>>
>> Maarten
>>
>>
>>
>>
>> ----- Original Message ----
>> From: Michael Shea <mike@nitido.com>
>> To: ivy-user@ant.apache.org
>> Sent: Thu, April 1, 2010 11:54:58 PM
>> Subject: publishing via http
>>
>> Hi folks,
>>
>> I am trying to publish to an HTTP Ivy repository, and having some trouble with it.
I'm using ivy-2.1.0.
>>
>> The resolver I am using in ivysettings.xml looks like this:
>>
>>        <url name="shared-publisher">
>>            <ivy pattern="http://${server}/${infrastructure.lib.dir}/${ivy.artifact.pattern}"
/>
>>            <artifact pattern="http://${server}/${infrastructure.lib.dir}/${ivy.artifact.pattern}"
/>
>>        </url>
>>
>>
>> Basically, I get this in the logs from my ant build when I call ivy:publish:
>>
>> Caused by: java.io.IOException: Access to URL http://[server]/lib/nitido/project24/1.0.0.0/zips/project24-resources.zip
was refused by the server
>>
>> If I check the apache logs on the server, I see this:
>>
>> <snip>
>> 192.168.13.68 - - [01/Apr/2010:17:38:56 -0400] "HEAD /lib/nitido/project24/1.0.0.0/zips/project24-resources.zip
HTTP/1.1" 401 224 "-" "Apache Ivy/2.1.0"
>> 192.168.13.68 - testdeveloper1@nitido.com [01/Apr/2010:17:38:56 -0400] "HEAD /lib/nitido/project24/1.0.0.0/zips/project24-resources.zip
HTTP/1.1" 404 163 "-" "Apache Ivy/2.1.0"
>> 192.168.13.68 - - [01/Apr/2010:17:38:56 -0400] "PUT /lib/nitido/project24/1.0.0.0/zips/project24-resources.zip
HTTP/1.1" 401 741 "-" "Apache Ivy/2.1.0"
>> 192.168.13.68 - testdeveloper1@nitido.com [01/Apr/2010:17:38:56 -0400] "PUT /lib/nitido/project24/1.0.0.0/zips/project24-resources.zip
HTTP/1.1" 403 538 "-" "Apache Ivy/2.1.0"
>> </snip>
>>
>> It looks to me like it's trying to just run a PUT without creating the necessary
subdirectories first...?
>>
>> I've also tried messing around with the vfs resolver (compiled my own commons-vfs
jar, based on the 1.0 tag from the vfs svn repo), but I didn't have any luck with it.
>>
>> I haven't found much about this on google... bits and pieces here and there, but
nothing that has really helped me yet. Is what I am trying to do even possible currently?
Or should I just abandon this approach, and set up an FTP server to handle publishing instead?
=)
>>
>> Thanks,
>>
>>
>> Mike Shea.
>>
>>
>>      
>>
>>  
>>     
>
>
>       
>
>   


Mime
View raw message