On Tue, Apr 16, 2013 at 6:13 PM, Dale Henrichs <dhenr...@vmware.com> wrote:
> Mariano, > > repositorOverrides: does apply to the entire load sequence, so it's not > the best option for trying to simply keep your credentials private ... > > OK. > The http repository does not expose user names and works just fine picking > up the image based instance with credentials defined so I would expect the > ftp repository to behave similarly. > +9999 > > If you want to keep the ftp user private the long term answer is submit a > bug against the ftp repository implementation and ask that ftp repositories > behave the same as http repositories with respect to credentials. > +1 > > Like I said before, I don't think that Metacello should be in the business > of managing credentials and that includes adding features to Metacello > whose sole purpose is to make up for a deficiencies elsewhere in the system > ... > > For the short term, you might just change the definition of > MCFtpRepository>>description from: > > description > ^ 'ftp://', user, '@', host, '/', directory > > to: > > description > ^ 'ftp://', host, '/', directory > > and your username can be kept private ... I doesn't appear that > description is used for anything other than display and comparison purposes > ... > > Yes, this is a very good idea. I will open an issue in the bug tracker. Anyone has an objection? Cheers, > Dale > > ----- Original Message ----- > | From: "Mariano Martinez Peck" <marianop...@gmail.com> > | To: metace...@googlegroups.com > | Sent: Tuesday, April 16, 2013 12:35:18 PM > | Subject: Re: [Metacello] FTP repo without storing username/pass in > ConfigurationOf > | > | On Tue, Apr 16, 2013 at 3:47 PM, Dale Henrichs <dhenr...@vmware.com> > wrote: > | > | > Mariano, > | > > | > After closer inspection it turns out that for FTP repositories, you > must > | > specify the username to uniquely identify the FTP url. If you specify > the > | > username and leave the password empty in your Metacello spec, things > should > | > work correctly ... > | > > | > > | Hi Dale, > | > | Thanks for the gory details, I understood :) > | Now I wonder...imagine I don't want to even include the username in the > | ConfigurationOf.... shouldn't the repository override trick work? > | Something along the lines of: > | > | | repository | > | repository := MCFtpRepository > | host: 'ftp.mydomain.com' > | directory: 'myDirectory' > | user: 'whatever' > | password: 'whatelse'. > | version := (ConfigurationOfXX project version: 'xxx'). > | version > | repositoryOverrides: Array with: repository. > | version load. > | > | just to be sure...#repositoryOverrides: does not propagate to transitive > | dependencies right? > | > | Thanks in advance, > | > | > | > | > | > | > Here are the gory details. > | > > | > There is code in Metacello that looks like the following: > | > > | > description := aSpec description. > | > (repo := repositories > | > detect: [:rep | rep description = description ] > | > ifNone: [ aSpec createRepository ]) ~~ nil > | > ifTrue: [ repos add: repo ] > | > > | > where Metacello is attempting to determine if the repository has > already > | > been created in the image. If the repository exists, then the in-image > | > credentials are used and you don't have to include user and password > in the > | > Metacello repository spec. > | > > | > BTW, if you look at MCRepository>>= Metacello is basically using the > same > | > algorithm. > | > > | > Now if you look at how MCHttpRepository behaves: > | > > | > (MCHttpRepository > | > location: 'http://example.com' > | > user: 'foo' > | > password: 'bar') description. > | > > | > prints as: > | > > | > 'http://example.com' > | > > | > Notice that the user is excluded from the description. > | > > | > Whereas for MCFtpRepository behaves differently: > | > > | > (MCFtpRepository > | > host: 'ftp.mydomain.com' > | > directory: 'myDirectory' > | > user: 'whatever' > | > password: 'whatelse') description. > | > > | > prints as: > | > > | > 'ftp://whate...@ftp.mydomain.com/myDirectory', > | > > | > Notice that the `user` is included in the description... > | > > | > So if you want an FTP repository to be considered #= to another FTP > | > repository you must specify the user name ... > | > > | > Let me know if this works for you. > | > > | > Dale > | > > | > ----- Original Message ----- > | > | From: "Mariano Martinez Peck" <marianop...@gmail.com> > | > | To: metace...@googlegroups.com > | > | Sent: Tuesday, April 16, 2013 7:55:50 AM > | > | Subject: Re: [Metacello] FTP repo without storing username/pass in > | > ConfigurationOf > | > | > | > | On Mon, Apr 15, 2013 at 10:14 PM, Dale Henrichs <dhenr...@vmware.com > > > | > wrote: > | > | > | > | > > | > | > > | > | > | > | > | > | > | > | > | > and set the username/password there, then Metacello should > honor > | > that > | > | > | > (like it does for the HTTP repository) ... so instead of adding > | > some > | > | > sort > | > | > | > of repository override to the load script, simply create the > FTP > | > | > repository > | > | > | > with username/password inline in your load script. > | > | > | > > | > | > | > | > | > | > | > | > | Do you mean that I should declare my FTP repository like: > | > | > | > | > | > | MCFtpRepository > | > | > | host: 'ftp.xxx.com' > | > | > | directory: 'mc' > | > | > | user: aUsername > | > | > | password: aPassword > | > | > | > | > | > | and somehow register that repo in Monticello ? so then when I > load a > | > | > | ConfiguratioOfMyApp that has that repo it will honor the already > set > | > up > | > | > | username/password? > | > | > > | > | > Yes. Metacello will use existing http/ftp/etc. repositories thus > | > | > inheriting the username and passwords set in the image. So if you > | > create > | > | > the ftp repository ahead of time (and specify a username and > password) > | > | > everything should work smoothly (barring any bugs in Metacello:) .. > | > | > > | > | > I think it is a good idea to try to keep Metacello out of the > | > | > username/password business as much as possible:) > | > | > > | > | > > | > | Hi Dale, I tried that but it still didn't work. I get the following > | > error: > | > | > | > | [:response | (TelnetProtocolError protocolInstance: self) > | > | signal: response] in FTPClient(TelnetProtocolClient)>>lookForCode: > | > | Receiver: a FTPClient > | > | Arguments and temporary variables: > | > | code: 331 > | > | response: '530 This is a private system - No anonymous login' > | > | > | > | > | > | In the baseline I have something like > | > | > | > | spec repository: 'ftp://ftp.mydomain.com/myDirectory'. > | > | > | > | > | > | and before loading with metacello I do: > | > | > | > | > | > | repository := MCFtpRepository > | > | host: 'ftp.mydomain.com' > | > | directory: 'myDirectory' > | > | user: 'whatever' > | > | password: 'whatelse'. > | > | > | > | MCRepositoryGroup default addRepository: repository. > | > | > | > | And in fact, if I open MonticelloBrowser I do see my FTP repo with > its > | > | correct username/pass...I can browse packages etc... > | > | > | > | So maybe I am not registering the package in the exact same > collection > | > | Metacello is looking for? where does it look for the repo? > | > | how does it "honor" the already set up username/pass? > | > | > | > | Thanks! > | > | > | > | > | > | > | > | > | > | > Dale > | > | > > | > | > -- > | > | > You received this message because you are subscribed to the Google > | > Groups > | > | > "Metacello" group. > | > | > To unsubscribe from this group and stop receiving emails from it, > send > | > an > | > | > email to metacello+unsubscr...@googlegroups.com. > | > | > For more options, visit https://groups.google.com/groups/opt_out. > | > | > > | > | > > | > | > > | > | > | > | > | > | -- > | > | Mariano > | > | http://marianopeck.wordpress.com > | > | > | > | -- > | > | You received this message because you are subscribed to the Google > Groups > | > | "Metacello" group. > | > | To unsubscribe from this group and stop receiving emails from it, > send an > | > | email to metacello+unsubscr...@googlegroups.com. > | > | For more options, visit https://groups.google.com/groups/opt_out. > | > | > | > | > | > | > | > > | > -- > | > You received this message because you are subscribed to the Google > Groups > | > "Metacello" group. > | > To unsubscribe from this group and stop receiving emails from it, send > an > | > email to metacello+unsubscr...@googlegroups.com. > | > For more options, visit https://groups.google.com/groups/opt_out. > | > > | > > | > > | > | > | -- > | Mariano > | http://marianopeck.wordpress.com > | > | -- > | You received this message because you are subscribed to the Google Groups > | "Metacello" group. > | To unsubscribe from this group and stop receiving emails from it, send an > | email to metacello+unsubscr...@googlegroups.com. > | For more options, visit https://groups.google.com/groups/opt_out. > | > | > | > > -- > You received this message because you are subscribed to the Google Groups > "Metacello" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to metacello+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Mariano http://marianopeck.wordpress.com