[chef] Re: Re: Re: REST API question: How to fetch file?


Chronological Thread 
  • From: Daniel DeLeo < >
  • To:
  • Subject: [chef] Re: Re: Re: REST API question: How to fetch file?
  • Date: Thu, 8 Oct 2015 16:29:17 -0700

On Thursday, October 8, 2015 at 4:22 PM, Roberto Leibman wrote:
>  
> On 10/08/2015 03:50 PM, Daniel DeLeo wrote:
> >  
> > On Thursday, October 8, 2015 at 10:59 AM, Roberto Leibman wrote:
> >  
> > > I need to fetch an attribute file from the chef service...
> > >  
> > > Using the REST API, I call
> > >  
> > > GET /organizations/NAME/cookbooks/NAME/VERSION
> > >  
> > > And among other things I get:
> > >  
> > > {
> > > "name":"versions.rb",
> > > "path":"attributes/versions.rb",
> > > "url":"https://myserver:443/bookshelf/organization-3217b9e79830f0fa8747107257d4e50e/checksum-bec47221813e48f656813335fbf57677?AWSAccessKeyId=1d77956dc74704cfa99edc19d2f93bb7909ae802&Expires=1444350260&Signature=kNVJhVbKdSdXI5aLW6X7zS/wHw%3D";
> > >  
> > > (https://myserver:443/bookshelf/organization-3217b9e79830f0fa8747107257d4e50e/checksum-bec47221813e48f656813335fbf57677?AWSAccessKeyId=1d77956dc74704cfa99edc19d2f93bb7909ae802&Expires=1444350260&Signature=kNVJhVbKdSdXI5aLW6X7zS/wHw%3D),
> > > "checksum":"bec47221813e48f656813339fbf57677",
> > > "specificity":"default"
> > > }
> > >  
> > > I tried to fetch the file using the url given (either directly, or 
> > > using the same signature schema as other REST api calls), but it 
> > > doesn't work, I get a 403.
> >  
> > FYI that URL expires after a certain time (see Expires=1444350260 in the 
> > URL). I think by default it’s valid for an hour. Anyway, you need to make 
> > the GET to the cookbooks API each time and extract the URL.
>  
> I tried getting it immediately and it didn't work. Am I supposed to pass  
> some credentials to it? Using the REST signature schema did not work.

You shouldn’t need any signature at all. Not sure if signing the request 
would break anything though. You might try `chef-server-ctl tail` to see if 
there’s any info in the logs.
  
>  
> >  
> > Alternatively, I suppose you could find the access key and talk to the 
> > bookshelf service like s3, but that’s probably not a very good idea.
> I'm running my own server, though it IS in aws, I'm not using s3 or  
> anything similar. Does my chef server think that I'm trying to get a  
> community recipe? the recipe resides in my server only.

The Bookshelf service is an S3 clone (supports enough of S3 for the erchef 
service to talk to it like S3). Hypothetically you could find the access key 
and talk to bookshelf with an S3 library, but this is probably a bad idea. 
Better to figure out why your request using the pre-signed URL isn’t working.
  
> >  
> > >  
> > > What is the meaning of the URL if it's not to fetch the file? How do I 
> > > fetch the file? Is there a different REST api call that will give me 
> > > the file directly (since I know everything else about it)
> > >  
> > > Thanks,
> > >  
> > > Roberto Leibman
> >  
> > --
> > Daniel DeLeo
>  



--  
Daniel DeLeo






Archive powered by MHonArc 2.6.16.

§