Monticello and HTTPS

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

Monticello and HTTPS

Manfred Kröhnert
Hi everyone,

I am one of the guys helping Nico with Amber.

Now, I recently started to experiment with Pharo for a small project.
After some reading and experimenting I was able to get something running thanks to the good documentation available.

While I was on the go I tried to save my code with Monticello on a private WebDAV share.
However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.

Now my question is if HTTPS is supported by Montichello or not.
Since the server is accessed with username/password I'd rather not use plain HTTP.

Best,
Manfred
Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Sven Van Caekenberghe-2
Hi Manfred,

On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:

> Hi everyone,
>
> I am one of the guys helping Nico with Amber.
>
> Now, I recently started to experiment with Pharo for a small project.
> After some reading and experimenting I was able to get something running thanks to the good documentation available.
>
> While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
>
> Now my question is if HTTPS is supported by Montichello or not.
> Since the server is accessed with username/password I'd rather not use plain HTTP.
>
> Best,
> Manfred

It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.

One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.

Sven


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
Hello Sven,


On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Hi Manfred,

On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:

> Hi everyone,
>
> I am one of the guys helping Nico with Amber.
>
> Now, I recently started to experiment with Pharo for a small project.
> After some reading and experimenting I was able to get something running thanks to the good documentation available.
>
> While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
>
> Now my question is if HTTPS is supported by Montichello or not.
> Since the server is accessed with username/password I'd rather not use plain HTTP.
>
> Best,
> Manfred

It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.

One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.

Sven

thanks for the initial info that it should work.

I would have given further details but currently I can't access the machine where I tried it.
I'll try your suggestion and provide a more detailed report as soon as possible.

Best,
Manfred 

Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
Hi again,

the webdav share is located on an OwnCloud instance.
It is possible to get a directory listing of the specific directory with the following ZnClient request:

ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'

In a Pharo 2.0 image do the following steps:

* MonticelloBrowser: select package
* MonticelloBrowser->'+Repository'
* add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
* MonticelloBrowser->'Open'

* ProgressBar with the following name shows up:
It gets interrupted by a PreDebugWindow with title
    'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'

Opening the Debugger gives the following stacktrace

MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
BlockClosure>>cull:
MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception]
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ZnHttpUnsuccessful(Exception)>>signal
ZnClient>>handleResponse
ZnClient>>executeWithRedirectsRemaining:
ZnClient>>executeWithRetriesRemaining: in Block: [self executeWithRedirectsRemaining: self maxNumbe...etc...
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
ZnClient>>executeWithTimeout in Block: [self executeWithRetriesRemaining: self numberOfRe...etc...
BlockClosure>>on:do:
ZnClient>>executeWithTimeout in Block: [[self executeWithRetriesRemaining: self numberOfR...etc...
ZnClient>>withTimeoutDo: in Block: [^ block value]
ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
BlockClosure>>ensure:
ZnConnectionTimeout(DynamicVariable)>>value:during:
ZnConnectionTimeout class(DynamicVariable class)>>value:during:
ZnClient>>withTimeoutDo:
ZnClient>>executeWithTimeout
ZnClient>>execute in Block: [result := self executeWithTimeout]
ZnClient>>withProgressDo: in Block: [^ block value]
ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
BlockClosure>>ensure:
ZnSignalProgress(DynamicVariable)>>value:during:
ZnSignalProgress class(DynamicVariable class)>>value:during:
ZnClient>>withProgressDo:
ZnClient>>execute

Trying to copy .mcz files to the new repository afterwards triggers the same error.
However, the selected .mcz file gets copied to the WebDAV share.

The used operating system is OS X 10.6.8.
The 'System Reporter' shows the following info:

Image:
Pharo2.0
Latest update: #20616

VM:
Mac Cocoa Cog 5.8b12 21-Sep-10
Jenkins build #14535

Thanks,
Manfred




On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
Hello Sven,


On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Hi Manfred,

On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:

> Hi everyone,
>
> I am one of the guys helping Nico with Amber.
>
> Now, I recently started to experiment with Pharo for a small project.
> After some reading and experimenting I was able to get something running thanks to the good documentation available.
>
> While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
>
> Now my question is if HTTPS is supported by Montichello or not.
> Since the server is accessed with username/password I'd rather not use plain HTTP.
>
> Best,
> Manfred

It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.

One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.

Sven

thanks for the initial info that it should work.

I would have given further details but currently I can't access the machine where I tried it.
I'll try your suggestion and provide a more detailed report as soon as possible.

Best,
Manfred 


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Paul DeBruicker
Can you access the monticello listing from a browser?







On Oct 10, 2013, at 11:17 AM, Manfred Kröhnert <[hidden email]> wrote:

> Hi again,
>
> the webdav share is located on an OwnCloud instance.
> It is possible to get a directory listing of the specific directory with the following ZnClient request:
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'
>
> In a Pharo 2.0 image do the following steps:
>
> * MonticelloBrowser: select package
> * MonticelloBrowser->'+Repository'
> * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> * MonticelloBrowser->'Open'
>
> * ProgressBar with the following name shows up:
>     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> It gets interrupted by a PreDebugWindow with title
>     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
>
> Opening the Debugger gives the following stacktrace
>
> MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> BlockClosure>>cull:
> MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception]
> BlockClosure>>ensure:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ZnHttpUnsuccessful(Exception)>>signal
> ZnClient>>handleResponse
> ZnClient>>executeWithRedirectsRemaining:
> ZnClient>>executeWithRetriesRemaining: in Block: [self executeWithRedirectsRemaining: self maxNumbe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithRetriesRemaining:
> ZnClient>>executeWithTimeout in Block: [self executeWithRetriesRemaining: self numberOfRe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithTimeout in Block: [[self executeWithRetriesRemaining: self numberOfR...etc...
> ZnClient>>withTimeoutDo: in Block: [^ block value]
> ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnConnectionTimeout(DynamicVariable)>>value:during:
> ZnConnectionTimeout class(DynamicVariable class)>>value:during:
> ZnClient>>withTimeoutDo:
> ZnClient>>executeWithTimeout
> ZnClient>>execute in Block: [result := self executeWithTimeout]
> ZnClient>>withProgressDo: in Block: [^ block value]
> ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnSignalProgress(DynamicVariable)>>value:during:
> ZnSignalProgress class(DynamicVariable class)>>value:during:
> ZnClient>>withProgressDo:
> ZnClient>>execute
>
> Trying to copy .mcz files to the new repository afterwards triggers the same error.
> However, the selected .mcz file gets copied to the WebDAV share.
>
> The used operating system is OS X 10.6.8.
> The 'System Reporter' shows the following info:
>
> Image:
> Pharo2.0
> Latest update: #20616
>
> VM:
> Mac Cocoa Cog 5.8b12 21-Sep-10
> Jenkins build #14535
>
> Thanks,
> Manfred
>
>
>
>
> On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
> Hello Sven,
>
>
> On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Hi Manfred,
>
> On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi everyone,
> >
> > I am one of the guys helping Nico with Amber.
> >
> > Now, I recently started to experiment with Pharo for a small project.
> > After some reading and experimenting I was able to get something running thanks to the good documentation available.
> >
> > While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> > However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
> >
> > Now my question is if HTTPS is supported by Montichello or not.
> > Since the server is accessed with username/password I'd rather not use plain HTTP.
> >
> > Best,
> > Manfred
>
> It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.
>
> One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.
>
> Sven
>
> thanks for the initial info that it should work.
>
> I would have given further details but currently I can't access the machine where I tried it.
> I'll try your suggestion and provide a more detailed report as soon as possible.
>
> Best,
> Manfred
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert

On Thu, Oct 10, 2013 at 8:21 PM, Paul DeBruicker <[hidden email]> wrote:
Can you access the monticello listing from a browser?

Yes, when I access the same share from a browser I get a directory listing which shows the .mcz files.
I'll have to check if I can actualy load the files copied to the share.
But that will have to wait until tomorrow.

Best,
Manfred



On Oct 10, 2013, at 11:17 AM, Manfred Kröhnert <[hidden email]> wrote:

> Hi again,
>
> the webdav share is located on an OwnCloud instance.
> It is possible to get a directory listing of the specific directory with the following ZnClient request:
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'
>
> In a Pharo 2.0 image do the following steps:
>
> * MonticelloBrowser: select package
> * MonticelloBrowser->'+Repository'
> * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> * MonticelloBrowser->'Open'
>
> * ProgressBar with the following name shows up:
>     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> It gets interrupted by a PreDebugWindow with title
>     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
>
> Opening the Debugger gives the following stacktrace
>
> MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> BlockClosure>>cull:
> MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception]
> BlockClosure>>ensure:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ZnHttpUnsuccessful(Exception)>>signal
> ZnClient>>handleResponse
> ZnClient>>executeWithRedirectsRemaining:
> ZnClient>>executeWithRetriesRemaining: in Block: [self executeWithRedirectsRemaining: self maxNumbe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithRetriesRemaining:
> ZnClient>>executeWithTimeout in Block: [self executeWithRetriesRemaining: self numberOfRe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithTimeout in Block: [[self executeWithRetriesRemaining: self numberOfR...etc...
> ZnClient>>withTimeoutDo: in Block: [^ block value]
> ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnConnectionTimeout(DynamicVariable)>>value:during:
> ZnConnectionTimeout class(DynamicVariable class)>>value:during:
> ZnClient>>withTimeoutDo:
> ZnClient>>executeWithTimeout
> ZnClient>>execute in Block: [result := self executeWithTimeout]
> ZnClient>>withProgressDo: in Block: [^ block value]
> ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnSignalProgress(DynamicVariable)>>value:during:
> ZnSignalProgress class(DynamicVariable class)>>value:during:
> ZnClient>>withProgressDo:
> ZnClient>>execute
>
> Trying to copy .mcz files to the new repository afterwards triggers the same error.
> However, the selected .mcz file gets copied to the WebDAV share.
>
> The used operating system is OS X 10.6.8.
> The 'System Reporter' shows the following info:
>
> Image:
> Pharo2.0
> Latest update: #20616
>
> VM:
> Mac Cocoa Cog 5.8b12 21-Sep-10
> Jenkins build #14535
>
> Thanks,
> Manfred
>
>
>
>
> On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
> Hello Sven,
>
>
> On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Hi Manfred,
>
> On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi everyone,
> >
> > I am one of the guys helping Nico with Amber.
> >
> > Now, I recently started to experiment with Pharo for a small project.
> > After some reading and experimenting I was able to get something running thanks to the good documentation available.
> >
> > While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> > However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
> >
> > Now my question is if HTTPS is supported by Montichello or not.
> > Since the server is accessed with username/password I'd rather not use plain HTTP.
> >
> > Best,
> > Manfred
>
> It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.
>
> One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.
>
> Sven
>
> thanks for the initial info that it should work.
>
> I would have given further details but currently I can't access the machine where I tried it.
> I'll try your suggestion and provide a more detailed report as soon as possible.
>
> Best,
> Manfred
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Stéphane Ducasse
In reply to this post by Manfred Kröhnert
welcome

we like amber :)

Stef

On Oct 10, 2013, at 3:41 PM, Manfred Kröhnert <[hidden email]> wrote:

> Hi everyone,
>
> I am one of the guys helping Nico with Amber.
>
> Now, I recently started to experiment with Pharo for a small project.
> After some reading and experimenting I was able to get something running thanks to the good documentation available.
>
> While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
>
> Now my question is if HTTPS is supported by Montichello or not.
> Since the server is accessed with username/password I'd rather not use plain HTTP.
>
> Best,
> Manfred


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Sven Van Caekenberghe-2
In reply to this post by Manfred Kröhnert
Manfred,

On 10 Oct 2013, at 20:17, Manfred Kröhnert <[hidden email]> wrote:

> Hi again,
>
> the webdav share is located on an OwnCloud instance.
> It is possible to get a directory listing of the specific directory with the following ZnClient request:
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'

Excellent, that means that it fundamentally works !

Maybe you can try the same for accessing an actual .mcz file, just to be sure.

> In a Pharo 2.0 image do the following steps:
>
> * MonticelloBrowser: select package
> * MonticelloBrowser->'+Repository'
> * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> * MonticelloBrowser->'Open'
>
> * ProgressBar with the following name shows up:
>     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> It gets interrupted by a PreDebugWindow with title
>     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
>
> Opening the Debugger gives the following stacktrace
>
> MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> BlockClosure>>cull:
> MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception]
> BlockClosure>>ensure:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ZnHttpUnsuccessful(Exception)>>signal
> ZnClient>>handleResponse
> ZnClient>>executeWithRedirectsRemaining:
> ZnClient>>executeWithRetriesRemaining: in Block: [self executeWithRedirectsRemaining: self maxNumbe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithRetriesRemaining:
> ZnClient>>executeWithTimeout in Block: [self executeWithRetriesRemaining: self numberOfRe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithTimeout in Block: [[self executeWithRetriesRemaining: self numberOfR...etc...
> ZnClient>>withTimeoutDo: in Block: [^ block value]
> ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnConnectionTimeout(DynamicVariable)>>value:during:
> ZnConnectionTimeout class(DynamicVariable class)>>value:during:
> ZnClient>>withTimeoutDo:
> ZnClient>>executeWithTimeout
> ZnClient>>execute in Block: [result := self executeWithTimeout]
> ZnClient>>withProgressDo: in Block: [^ block value]
> ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnSignalProgress(DynamicVariable)>>value:during:
> ZnSignalProgress class(DynamicVariable class)>>value:during:
> ZnClient>>withProgressDo:
> ZnClient>>execute

Have a look at MCHTTPRepository>>#loadAllFileNames and notice how a query parameter is added, maybe that is the culprit ? Also, a trailing slash is added, that could be a problem for the server as well.

Else, you will have to look at the stack trace in the debugger and try to understand what is going on.

Sven

> Trying to copy .mcz files to the new repository afterwards triggers the same error.
> However, the selected .mcz file gets copied to the WebDAV share.
>
> The used operating system is OS X 10.6.8.
> The 'System Reporter' shows the following info:
>
> Image:
> Pharo2.0
> Latest update: #20616
>
> VM:
> Mac Cocoa Cog 5.8b12 21-Sep-10
> Jenkins build #14535
>
> Thanks,
> Manfred
>
>
>
>
> On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
> Hello Sven,
>
>
> On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Hi Manfred,
>
> On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi everyone,
> >
> > I am one of the guys helping Nico with Amber.
> >
> > Now, I recently started to experiment with Pharo for a small project.
> > After some reading and experimenting I was able to get something running thanks to the good documentation available.
> >
> > While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> > However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
> >
> > Now my question is if HTTPS is supported by Montichello or not.
> > Since the server is accessed with username/password I'd rather not use plain HTTP.
> >
> > Best,
> > Manfred
>
> It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.
>
> One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.
>
> Sven
>
> thanks for the initial info that it should work.
>
> I would have given further details but currently I can't access the machine where I tried it.
> I'll try your suggestion and provide a more detailed report as soon as possible.
>
> Best,
> Manfred
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Ben Coman
In reply to this post by Manfred Kröhnert
Manfred Kröhnert wrote:
On Thu, Oct 10, 2013 at 8:21 PM, Paul DeBruicker [hidden email] wrote:

  
Can you access the monticello listing from a browser?
    


Yes, when I access the same share from a browser I get a directory listing
which shows the .mcz files.
I'll have to check if I can actualy load the files copied to the share.
But that will have to wait until tomorrow.

Best,
Manfred



On Oct 10, 2013, at 11:17 AM, Manfred Kröhnert [hidden email]
  
wrote:

    
Hi again,

the webdav share is located on an OwnCloud instance.
It is possible to get a directory listing of the specific directory with
      
the following ZnClient request:
    
ZnClient new username: 'X' password: 'Y'; get: '
      
https://owncloud.server.de/remote.php/webdav/monticello'
    
In a Pharo 2.0 image do the following steps:

* MonticelloBrowser: select package
* MonticelloBrowser->'+Repository'
* add location: 'https://owncloud.server.de/remote.php/webdav/monticello'
      
username: 'X' password: 'Y'
    
* MonticelloBrowser->'Open'

* ProgressBar with the following name shows up:
    'Loading all file names from
      
https://owncloud.server.de/remote.php/webdav/monticello'
    
It gets interrupted by a PreDebugWindow with title
    'MCRepositoryError: Could not access
      
https://owncloud.server.de/remote.php/webdav/monticello:
ZnHttpUnsuccessful: 404 Not Found'
    
Opening the Debugger gives the following stacktrace

MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception
      
className beginsWith: 'Zn...etc...
    
BlockClosure>>cull:
MethodContext(ContextPart)>>handleSignal: in Block: [self
      
exceptionHandlerBlock cull: exception]
    
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ZnHttpUnsuccessful(Exception)>>signal
ZnClient>>handleResponse
ZnClient>>executeWithRedirectsRemaining:
ZnClient>>executeWithRetriesRemaining: in Block: [self
      
executeWithRedirectsRemaining: self maxNumbe...etc...
    
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
ZnClient>>executeWithTimeout in Block: [self
      
executeWithRetriesRemaining: self numberOfRe...etc...
    
BlockClosure>>on:do:
ZnClient>>executeWithTimeout in Block: [[self
      
executeWithRetriesRemaining: self numberOfR...etc...
    
ZnClient>>withTimeoutDo: in Block: [^ block value]
ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p
      
psValueAt: index put: anObject....
    
BlockClosure>>ensure:
ZnConnectionTimeout(DynamicVariable)>>value:during:
ZnConnectionTimeout class(DynamicVariable class)>>value:during:
ZnClient>>withTimeoutDo:
ZnClient>>executeWithTimeout
ZnClient>>execute in Block: [result := self executeWithTimeout]
ZnClient>>withProgressDo: in Block: [^ block value]
ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt:
      
index put: anObject....
    
BlockClosure>>ensure:
ZnSignalProgress(DynamicVariable)>>value:during:
ZnSignalProgress class(DynamicVariable class)>>value:during:
ZnClient>>withProgressDo:
ZnClient>>execute

Trying to copy .mcz files to the new repository afterwards triggers the
      
same error.
    
However, the selected .mcz file gets copied to the WebDAV share.

The used operating system is OS X 10.6.8.
The 'System Reporter' shows the following info:

Image:
Pharo2.0
Latest update: #20616

VM:
Mac Cocoa Cog 5.8b12 21-Sep-10
Jenkins build #14535

Thanks,
Manfred




On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <
      
[hidden email]> wrote:
    
Hello Sven,


On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe [hidden email]
      
wrote:
    
Hi Manfred,

On 10 Oct 2013, at 15:41, Manfred Kröhnert [hidden email]
      
wrote:
    
Hi everyone,

I am one of the guys helping Nico with Amber.

Now, I recently started to experiment with Pharo for a small project.
After some reading and experimenting I was able to get something
        
running thanks to the good documentation available.
    
While I was on the go I tried to save my code with Monticello on a
        
private WebDAV share.
    
However, the server is only accessible via HTTPS which resulted in an
        
error accessing it from the Monticello browser.
    
Now my question is if HTTPS is supported by Montichello or not.
Since the server is accessed with username/password I'd rather not use
        
plain HTTP.
    
Best,
Manfred
        
It should work. But I am not aware of any official, public repositories
      
that run HTTPS, so its hard to test. I also understand that it could be
difficult to give stack traces, but details are necessary to make any
progress on helping you.
    
One thing you could try is to access the repository directly: i.e.
      
create a ZnClient that tries to read the listing or a specific package.
    
Sven

thanks for the initial info that it should work.

I would have given further details but currently I can't access the
      
machine where I tried it.
    
I'll try your suggestion and provide a more detailed report as soon as
      
possible.
    
Best,
Manfred


      

    

  

Depending on how deep you want to did, maybe Fiddler or Wireshark would be useful to compare the activity on the wire between Monticello and Web Browser. (Disclaimer: I only recently bumped into Fiddler and haven't used it - and its been a long time since I used Wireshark, so just pointing over-there is the limit what I can offer.)

http://fiddler2.com/features
http://fiddler2.com/documentation/Configure-Fiddler/Tasks/DecryptHTTPS

http://wiki.wireshark.org/FrontPage
http://wiki.wireshark.org/SSL

cheers -ben

Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
In reply to this post by Stéphane Ducasse
Thanks Stéphane,

we appreciate that :-)

Best,
Manfred




On Thu, Oct 10, 2013 at 8:58 PM, Stéphane Ducasse <[hidden email]> wrote:
welcome

we like amber :)

Stef

On Oct 10, 2013, at 3:41 PM, Manfred Kröhnert <[hidden email]> wrote:

> Hi everyone,
>
> I am one of the guys helping Nico with Amber.
>
> Now, I recently started to experiment with Pharo for a small project.
> After some reading and experimenting I was able to get something running thanks to the good documentation available.
>
> While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
>
> Now my question is if HTTPS is supported by Montichello or not.
> Since the server is accessed with username/password I'd rather not use plain HTTP.
>
> Best,
> Manfred



Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
In reply to this post by Sven Van Caekenberghe-2
Hi Sven,

thanks for the pointers.
I'll have a look over the weekend and report back.

Best,
Manfred





On Thu, Oct 10, 2013 at 9:08 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Manfred,

On 10 Oct 2013, at 20:17, Manfred Kröhnert <[hidden email]> wrote:

> Hi again,
>
> the webdav share is located on an OwnCloud instance.
> It is possible to get a directory listing of the specific directory with the following ZnClient request:
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'

Excellent, that means that it fundamentally works !

Maybe you can try the same for accessing an actual .mcz file, just to be sure.

> In a Pharo 2.0 image do the following steps:
>
> * MonticelloBrowser: select package
> * MonticelloBrowser->'+Repository'
> * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> * MonticelloBrowser->'Open'
>
> * ProgressBar with the following name shows up:
>     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> It gets interrupted by a PreDebugWindow with title
>     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
>
> Opening the Debugger gives the following stacktrace
>
> MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> BlockClosure>>cull:
> MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception]
> BlockClosure>>ensure:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ZnHttpUnsuccessful(Exception)>>signal
> ZnClient>>handleResponse
> ZnClient>>executeWithRedirectsRemaining:
> ZnClient>>executeWithRetriesRemaining: in Block: [self executeWithRedirectsRemaining: self maxNumbe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithRetriesRemaining:
> ZnClient>>executeWithTimeout in Block: [self executeWithRetriesRemaining: self numberOfRe...etc...
> BlockClosure>>on:do:
> ZnClient>>executeWithTimeout in Block: [[self executeWithRetriesRemaining: self numberOfR...etc...
> ZnClient>>withTimeoutDo: in Block: [^ block value]
> ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnConnectionTimeout(DynamicVariable)>>value:during:
> ZnConnectionTimeout class(DynamicVariable class)>>value:during:
> ZnClient>>withTimeoutDo:
> ZnClient>>executeWithTimeout
> ZnClient>>execute in Block: [result := self executeWithTimeout]
> ZnClient>>withProgressDo: in Block: [^ block value]
> ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt: index put: anObject....
> BlockClosure>>ensure:
> ZnSignalProgress(DynamicVariable)>>value:during:
> ZnSignalProgress class(DynamicVariable class)>>value:during:
> ZnClient>>withProgressDo:
> ZnClient>>execute

Have a look at MCHTTPRepository>>#loadAllFileNames and notice how a query parameter is added, maybe that is the culprit ? Also, a trailing slash is added, that could be a problem for the server as well.

Else, you will have to look at the stack trace in the debugger and try to understand what is going on.

Sven

> Trying to copy .mcz files to the new repository afterwards triggers the same error.
> However, the selected .mcz file gets copied to the WebDAV share.
>
> The used operating system is OS X 10.6.8.
> The 'System Reporter' shows the following info:
>
> Image:
> Pharo2.0
> Latest update: #20616
>
> VM:
> Mac Cocoa Cog 5.8b12 21-Sep-10
> Jenkins build #14535
>
> Thanks,
> Manfred
>
>
>
>
> On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
> Hello Sven,
>
>
> On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Hi Manfred,
>
> On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi everyone,
> >
> > I am one of the guys helping Nico with Amber.
> >
> > Now, I recently started to experiment with Pharo for a small project.
> > After some reading and experimenting I was able to get something running thanks to the good documentation available.
> >
> > While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> > However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
> >
> > Now my question is if HTTPS is supported by Montichello or not.
> > Since the server is accessed with username/password I'd rather not use plain HTTP.
> >
> > Best,
> > Manfred
>
> It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.
>
> One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.
>
> Sven
>
> thanks for the initial info that it should work.
>
> I would have given further details but currently I can't access the machine where I tried it.
> I'll try your suggestion and provide a more detailed report as soon as possible.
>
> Best,
> Manfred
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Stéphane Ducasse
In reply to this post by Manfred Kröhnert

On Oct 11, 2013, at 5:52 PM, Manfred Kröhnert <[hidden email]> wrote:

Thanks Stéphane,

we appreciate that :-)

I'm sincere :). I believe that we have an excellent stack for doing web dev

Zinc/Zodiac/Oauth/.… Voyage/Magritte/ Seaside/ Reef/Amber 

I would love to have more companies working in Pharo because we will all benefit from it.
When I see the impact of BetaNine or Pinesoft  on Pharo.

Stef

Best,
Manfred




On Thu, Oct 10, 2013 at 8:58 PM, Stéphane Ducasse <[hidden email]> wrote:
welcome

we like amber :)

Stef

On Oct 10, 2013, at 3:41 PM, Manfred Kröhnert <[hidden email]> wrote:

> Hi everyone,
>
> I am one of the guys helping Nico with Amber.
>
> Now, I recently started to experiment with Pharo for a small project.
> After some reading and experimenting I was able to get something running thanks to the good documentation available.
>
> While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
>
> Now my question is if HTTPS is supported by Montichello or not.
> Since the server is accessed with username/password I'd rather not use plain HTTP.
>
> Best,
> Manfred




Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
In reply to this post by Sven Van Caekenberghe-2
Hello Sven,

I had some time to look further into this issue.

On Thu, Oct 10, 2013 at 9:08 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Manfred,

On 10 Oct 2013, at 20:17, Manfred Kröhnert <[hidden email]> wrote:

> Hi again,
>
> the webdav share is located on an OwnCloud instance.
> It is possible to get a directory listing of the specific directory with the following ZnClient request:
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'

Excellent, that means that it fundamentally works !

Maybe you can try the same for accessing an actual .mcz file, just to be sure.

If I add a '/MyPackage-MK.1.mcz' to the URL and inspect the result it shows a big ByteArray instance.
Which should mean that the file can get accessed remotely via WebDAV.
 
> In a Pharo 2.0 image do the following steps:
>
> * MonticelloBrowser: select package
> * MonticelloBrowser->'+Repository'
> * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> * MonticelloBrowser->'Open'
>
> * ProgressBar with the following name shows up:
>     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> It gets interrupted by a PreDebugWindow with title
>     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
>
> Opening the Debugger gives the following stacktrace
>
> MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> BlockClosure>>cull:
> ...
> ZnClient>>execute

Have a look at MCHTTPRepository>>#loadAllFileNames and notice how a query parameter is added, maybe that is the culprit ? Also, a trailing slash is added, that could be a problem for the server as well.

What I found out is that line 11 of MCHTTPRepository>>#loadAllFileNames is apparently causing the problem:

queryAt: 'C' put: 'M;O=D'; "legacy that some servers maybe expect"


When I access the following URL with ZnClient it returns a 404 error (does not exist):

ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello/?C=M%3BO%3DD'

This 404 is the exception which is thrown and caught by the debugger.
I took the query from the http client request which I inspected in the debugger.

When the 'queryAt:...' line is commented out the contents of the repository is shown when I choose 'Open' on the specific repository in MonticelloBrowser.
Maybe this is an issue with the WebDAV implementation of OwnCloud (version 5.0.10 in this case).


The next strange thing here is that all entries in the opened browser are prefixed with 'remote.php/webdav/monticello/'.
And they are all marked in a bold font which means completely new to the system if I remember correctly.
Then I checked the MD5 sums of the .mcz files and the ones from the package cache have a different checksum than the one on the webdav share.
Although I used the MonticelloBrowser 'Copy' action.

Best,
Manfred

 
Else, you will have to look at the stack trace in the debugger and try to understand what is going on.

Sven

> Trying to copy .mcz files to the new repository afterwards triggers the same error.
> However, the selected .mcz file gets copied to the WebDAV share.
>
> The used operating system is OS X 10.6.8.
> The 'System Reporter' shows the following info:
>
> Image:
> Pharo2.0
> Latest update: #20616
>
> VM:
> Mac Cocoa Cog 5.8b12 21-Sep-10
> Jenkins build #14535
>
> Thanks,
> Manfred
>
>
>
>
> On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
> Hello Sven,
>
>
> On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Hi Manfred,
>
> On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi everyone,
> >
> > I am one of the guys helping Nico with Amber.
> >
> > Now, I recently started to experiment with Pharo for a small project.
> > After some reading and experimenting I was able to get something running thanks to the good documentation available.
> >
> > While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> > However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
> >
> > Now my question is if HTTPS is supported by Montichello or not.
> > Since the server is accessed with username/password I'd rather not use plain HTTP.
> >
> > Best,
> > Manfred
>
> It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.
>
> One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.
>
> Sven
>
> thanks for the initial info that it should work.
>
> I would have given further details but currently I can't access the machine where I tried it.
> I'll try your suggestion and provide a more detailed report as soon as possible.
>
> Best,
> Manfred
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
In reply to this post by Ben Coman
Hi Ben,

thanks for the links.
Apparently it is not needed to go to such a deep level :-)

I know of Wireshark but haven't heard of Fiddler until now.
But it is good to know that there are different tools available.

Best,
Manfred





On Fri, Oct 11, 2013 at 4:02 AM, <[hidden email]> wrote:
Manfred Kröhnert wrote:
On Thu, Oct 10, 2013 at 8:21 PM, Paul DeBruicker [hidden email] wrote:

  
Can you access the monticello listing from a browser?
    
Yes, when I access the same share from a browser I get a directory listing
which shows the .mcz files.
I'll have to check if I can actualy load the files copied to the share.
But that will have to wait until tomorrow.

Best,
Manfred



On Oct 10, 2013, at 11:17 AM, Manfred Kröhnert [hidden email]
  
wrote:

    
Hi again,

the webdav share is located on an OwnCloud instance.
It is possible to get a directory listing of the specific directory with
      
the following ZnClient request:
    
ZnClient new username: 'X' password: 'Y'; get: '
      
https://owncloud.server.de/remote.php/webdav/monticello'
    
In a Pharo 2.0 image do the following steps:

* MonticelloBrowser: select package
* MonticelloBrowser->'+Repository'
* add location: 'https://owncloud.server.de/remote.php/webdav/monticello'
      
username: 'X' password: 'Y'
    
* MonticelloBrowser->'Open'

* ProgressBar with the following name shows up:
    'Loading all file names from
      
https://owncloud.server.de/remote.php/webdav/monticello'
    
It gets interrupted by a PreDebugWindow with title
    'MCRepositoryError: Could not access
      
https://owncloud.server.de/remote.php/webdav/monticello:
ZnHttpUnsuccessful: 404 Not Found'
    
Opening the Debugger gives the following stacktrace

MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception
      
className beginsWith: 'Zn...etc...
    
BlockClosure>>cull:
MethodContext(ContextPart)>>handleSignal: in Block: [self
      
exceptionHandlerBlock cull: exception]
    
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ZnHttpUnsuccessful(Exception)>>signal
ZnClient>>handleResponse
ZnClient>>executeWithRedirectsRemaining:
ZnClient>>executeWithRetriesRemaining: in Block: [self
      
executeWithRedirectsRemaining: self maxNumbe...etc...
    
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
ZnClient>>executeWithTimeout in Block: [self
      
executeWithRetriesRemaining: self numberOfRe...etc...
    
BlockClosure>>on:do:
ZnClient>>executeWithTimeout in Block: [[self
      
executeWithRetriesRemaining: self numberOfR...etc...
    
ZnClient>>withTimeoutDo: in Block: [^ block value]
ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [p
      
psValueAt: index put: anObject....
    
BlockClosure>>ensure:
ZnConnectionTimeout(DynamicVariable)>>value:during:
ZnConnectionTimeout class(DynamicVariable class)>>value:during:
ZnClient>>withTimeoutDo:
ZnClient>>executeWithTimeout
ZnClient>>execute in Block: [result := self executeWithTimeout]
ZnClient>>withProgressDo: in Block: [^ block value]
ZnSignalProgress(DynamicVariable)>>value:during: in Block: [p psValueAt:
      
index put: anObject....
    
BlockClosure>>ensure:
ZnSignalProgress(DynamicVariable)>>value:during:
ZnSignalProgress class(DynamicVariable class)>>value:during:
ZnClient>>withProgressDo:
ZnClient>>execute

Trying to copy .mcz files to the new repository afterwards triggers the
      
same error.
    
However, the selected .mcz file gets copied to the WebDAV share.

The used operating system is OS X 10.6.8.
The 'System Reporter' shows the following info:

Image:
Pharo2.0
Latest update: #20616

VM:
Mac Cocoa Cog 5.8b12 21-Sep-10
Jenkins build #14535

Thanks,
Manfred




On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <
      
[hidden email]> wrote:
    
Hello Sven,


On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe [hidden email]
      
wrote:
    
Hi Manfred,

On 10 Oct 2013, at 15:41, Manfred Kröhnert [hidden email]
      
wrote:
    
Hi everyone,

I am one of the guys helping Nico with Amber.

Now, I recently started to experiment with Pharo for a small project.
After some reading and experimenting I was able to get something
        
running thanks to the good documentation available.
    
While I was on the go I tried to save my code with Monticello on a
        
private WebDAV share.
    
However, the server is only accessible via HTTPS which resulted in an
        
error accessing it from the Monticello browser.
    
Now my question is if HTTPS is supported by Montichello or not.
Since the server is accessed with username/password I'd rather not use
        
plain HTTP.
    
Best,
Manfred
        
It should work. But I am not aware of any official, public repositories
      
that run HTTPS, so its hard to test. I also understand that it could be
difficult to give stack traces, but details are necessary to make any
progress on helping you.
    
One thing you could try is to access the repository directly: i.e.
      
create a ZnClient that tries to read the listing or a specific package.
    
Sven

thanks for the initial info that it should work.

I would have given further details but currently I can't access the
      
machine where I tried it.
    
I'll try your suggestion and provide a more detailed report as soon as
      
possible.
    
Best,
Manfred


      
    
  

Depending on how deep you want to did, maybe Fiddler or Wireshark would be useful to compare the activity on the wire between Monticello and Web Browser. (Disclaimer: I only recently bumped into Fiddler and haven't used it - and its been a long time since I used Wireshark, so just pointing over-there is the limit what I can offer.)

http://fiddler2.com/features
http://fiddler2.com/documentation/Configure-Fiddler/Tasks/DecryptHTTPS

http://wiki.wireshark.org/FrontPage
http://wiki.wireshark.org/SSL

cheers -ben


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Sven Van Caekenberghe-2
In reply to this post by Manfred Kröhnert
Hi Manfred,

On 13 Oct 2013, at 23:56, Manfred Kröhnert <[hidden email]> wrote:

> Hello Sven,
>
> I had some time to look further into this issue.
>
> On Thu, Oct 10, 2013 at 9:08 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Manfred,
>
> On 10 Oct 2013, at 20:17, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi again,
> >
> > the webdav share is located on an OwnCloud instance.
> > It is possible to get a directory listing of the specific directory with the following ZnClient request:
> >
> > ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'
>
> Excellent, that means that it fundamentally works !
>
> Maybe you can try the same for accessing an actual .mcz file, just to be sure.
>
> If I add a '/MyPackage-MK.1.mcz' to the URL and inspect the result it shows a big ByteArray instance.
> Which should mean that the file can get accessed remotely via WebDAV.

Great: so this means that there is no fundamental problem at the HTTP or Zn level.

> > In a Pharo 2.0 image do the following steps:
> >
> > * MonticelloBrowser: select package
> > * MonticelloBrowser->'+Repository'
> > * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> > * MonticelloBrowser->'Open'
> >
> > * ProgressBar with the following name shows up:
> >     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> > It gets interrupted by a PreDebugWindow with title
> >     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
> >
> > Opening the Debugger gives the following stacktrace
> >
> > MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> > BlockClosure>>cull:
> > ...
> > ZnClient>>execute
>
> Have a look at MCHTTPRepository>>#loadAllFileNames and notice how a query parameter is added, maybe that is the culprit ? Also, a trailing slash is added, that could be a problem for the server as well.
>
> What I found out is that line 11 of MCHTTPRepository>>#loadAllFileNames is apparently causing the problem:
>
> queryAt: 'C' put: 'M;O=D'; "legacy that some servers maybe expect"
>
>
> When I access the following URL with ZnClient it returns a 404 error (does not exist):
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello/?C=M%3BO%3DD'
>
> This 404 is the exception which is thrown and caught by the debugger.
> I took the query from the http client request which I inspected in the debugger.
>
> When the 'queryAt:...' line is commented out the contents of the repository is shown when I choose 'Open' on the specific repository in MonticelloBrowser.
> Maybe this is an issue with the WebDAV implementation of OwnCloud (version 5.0.10 in this case).

Like the comment says: this is something weird from the past, I do not know what it means. Maybe the time has come to just remove it.

> The next strange thing here is that all entries in the opened browser are prefixed with 'remote.php/webdav/monticello/'.
> And they are all marked in a bold font which means completely new to the system if I remember correctly.
> Then I checked the MD5 sums of the .mcz files and the ones from the package cache have a different checksum than the one on the webdav share.
> Although I used the MonticelloBrowser 'Copy' action.

The repository listing has to be correct, also in its use of naming and URLs. This is a correct one: http://mc.stfx.eu/ZincHTTPComponents/ - note the simple name and relative URL. But such a relative URL can only work if the base URL of the page ends with /.

Monticello can work on WebDAV but it is not written specifically for it. Maybe there are others out there who can help you better how to configure your server.

You could also have a look at ZnMonticelloServerDelegate, which is an implementation of a very simple Monticello repository server in Pharo. You should be able to understand the simple protocol from that code.

Regards,

Sven

> Best,
> Manfred
>
>  
> Else, you will have to look at the stack trace in the debugger and try to understand what is going on.
>
> Sven
>
> > Trying to copy .mcz files to the new repository afterwards triggers the same error.
> > However, the selected .mcz file gets copied to the WebDAV share.
> >
> > The used operating system is OS X 10.6.8.
> > The 'System Reporter' shows the following info:
> >
> > Image:
> > Pharo2.0
> > Latest update: #20616
> >
> > VM:
> > Mac Cocoa Cog 5.8b12 21-Sep-10
> > Jenkins build #14535
> >
> > Thanks,
> > Manfred
> >
> >
> >
> >
> > On Thu, Oct 10, 2013 at 4:00 PM, Manfred Kröhnert <[hidden email]> wrote:
> > Hello Sven,
> >
> >
> > On Thu, Oct 10, 2013 at 3:50 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> > Hi Manfred,
> >
> > On 10 Oct 2013, at 15:41, Manfred Kröhnert <[hidden email]> wrote:
> >
> > > Hi everyone,
> > >
> > > I am one of the guys helping Nico with Amber.
> > >
> > > Now, I recently started to experiment with Pharo for a small project.
> > > After some reading and experimenting I was able to get something running thanks to the good documentation available.
> > >
> > > While I was on the go I tried to save my code with Monticello on a private WebDAV share.
> > > However, the server is only accessible via HTTPS which resulted in an error accessing it from the Monticello browser.
> > >
> > > Now my question is if HTTPS is supported by Montichello or not.
> > > Since the server is accessed with username/password I'd rather not use plain HTTP.
> > >
> > > Best,
> > > Manfred
> >
> > It should work. But I am not aware of any official, public repositories that run HTTPS, so its hard to test. I also understand that it could be difficult to give stack traces, but details are necessary to make any progress on helping you.
> >
> > One thing you could try is to access the repository directly: i.e. create a ZnClient that tries to read the listing or a specific package.
> >
> > Sven
> >
> > thanks for the initial info that it should work.
> >
> > I would have given further details but currently I can't access the machine where I tried it.
> > I'll try your suggestion and provide a more detailed report as soon as possible.
> >
> > Best,
> > Manfred
> >
> >
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Monticello and HTTPS

Manfred Kröhnert
Hello Sven,

thank you very much again for your help and sorry for the late reply.
Up to now I didn't have a chance to check back on this issue.



On Mon, Oct 14, 2013 at 11:49 AM, Sven Van Caekenberghe <[hidden email]> wrote:
Hi Manfred,

On 13 Oct 2013, at 23:56, Manfred Kröhnert <[hidden email]> wrote:

> Hello Sven,
>
> I had some time to look further into this issue.
>
> On Thu, Oct 10, 2013 at 9:08 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Manfred,
>
> On 10 Oct 2013, at 20:17, Manfred Kröhnert <[hidden email]> wrote:
>
> > Hi again,
> >
> > the webdav share is located on an OwnCloud instance.
> > It is possible to get a directory listing of the specific directory with the following ZnClient request:
> >
> > ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello'
>
> Excellent, that means that it fundamentally works !
>
> Maybe you can try the same for accessing an actual .mcz file, just to be sure.
>
> If I add a '/MyPackage-MK.1.mcz' to the URL and inspect the result it shows a big ByteArray instance.
> Which should mean that the file can get accessed remotely via WebDAV.

Great: so this means that there is no fundamental problem at the HTTP or Zn level.

> > In a Pharo 2.0 image do the following steps:
> >
> > * MonticelloBrowser: select package
> > * MonticelloBrowser->'+Repository'
> > * add location: 'https://owncloud.server.de/remote.php/webdav/monticello' username: 'X' password: 'Y'
> > * MonticelloBrowser->'Open'
> >
> > * ProgressBar with the following name shows up:
> >     'Loading all file names from https://owncloud.server.de/remote.php/webdav/monticello'
> > It gets interrupted by a PreDebugWindow with title
> >     'MCRepositoryError: Could not access https://owncloud.server.de/remote.php/webdav/monticello: ZnHttpUnsuccessful: 404 Not Found'
> >
> > Opening the Debugger gives the following stacktrace
> >
> > MCHttpRepository>>loadAllFileNames in Block: [:exception | (exception className beginsWith: 'Zn...etc...
> > BlockClosure>>cull:
> > ...
> > ZnClient>>execute
>
> Have a look at MCHTTPRepository>>#loadAllFileNames and notice how a query parameter is added, maybe that is the culprit ? Also, a trailing slash is added, that could be a problem for the server as well.
>
> What I found out is that line 11 of MCHTTPRepository>>#loadAllFileNames is apparently causing the problem:
>
> queryAt: 'C' put: 'M;O=D';    "legacy that some servers maybe expect"
>
>
> When I access the following URL with ZnClient it returns a 404 error (does not exist):
>
> ZnClient new username: 'X' password: 'Y'; get: 'https://owncloud.server.de/remote.php/webdav/monticello/?C=M%3BO%3DD'
>
> This 404 is the exception which is thrown and caught by the debugger.
> I took the query from the http client request which I inspected in the debugger.
>
> When the 'queryAt:...' line is commented out the contents of the repository is shown when I choose 'Open' on the specific repository in MonticelloBrowser.
> Maybe this is an issue with the WebDAV implementation of OwnCloud (version 5.0.10 in this case).

Like the comment says: this is something weird from the past, I do not know what it means. Maybe the time has come to just remove it.


Yes, this could be the case.
But I wont vote for it since I don't have any experience in this area ;-)


 
> The next strange thing here is that all entries in the opened browser are prefixed with 'remote.php/webdav/monticello/'.
> And they are all marked in a bold font which means completely new to the system if I remember correctly.
> Then I checked the MD5 sums of the .mcz files and the ones from the package cache have a different checksum than the one on the webdav share.
> Although I used the MonticelloBrowser 'Copy' action.

The repository listing has to be correct, also in its use of naming and URLs. This is a correct one: http://mc.stfx.eu/ZincHTTPComponents/ - note the simple name and relative URL. But such a relative URL can only work if the base URL of the page ends with /. 
Monticello can work on WebDAV but it is not written specifically for it. Maybe there are others out there who can help you better how to configure your server.

You could also have a look at ZnMonticelloServerDelegate, which is an implementation of a very simple Monticello repository server in Pharo. You should be able to understand the simple protocol from that code.


I see.
The listing I get from the OwnCloud server looks a bit different.
More like a general Directory listing with additional information like size, type, and modification date arranged in a table.

It might be that the complete path behind the server domain is used in my case and not stripped down to the last part of the URL.
If I get a chance to do so I'll check this myself.
No need for you to dive in.

For now I found a different way to synchronize my packages without this server.

Best,
Manfred