Step one: auth-less batch api

This commit is contained in:
rubyist 2015-06-18 12:31:33 -04:00
parent 80564d3002
commit 647e719310

@ -186,7 +186,7 @@ func Batch(objects []*objectResource) ([]*objectResource, *WrappedError) {
return nil, Error(err)
}
req, creds, err := newApiRequest("POST", "batch")
req, creds, err := newBatchApiRequest()
if err != nil {
return nil, Error(err)
}
@ -563,6 +563,59 @@ func newClientRequest(method, rawurl string) (*http.Request, Creds, error) {
return req, creds, nil
}
func newBatchApiRequest() (*http.Request, Creds, error) {
endpoint := Config.Endpoint()
res, err := sshAuthenticate(endpoint, "download", "")
if err != nil {
tracerx.Printf("ssh: attempted with %s. Error: %s",
endpoint.SshUserAndHost, err.Error(),
)
}
if len(res.Href) > 0 {
endpoint.Url = res.Href
}
u, err := ObjectUrl(endpoint, "batch")
if err != nil {
return nil, nil, err
}
req, creds, err := newBatchClientRequest("POST", u.String())
if err != nil {
return nil, nil, err
}
req.Header.Set("Accept", mediaType)
if res.Header != nil {
for key, value := range res.Header {
req.Header.Set(key, value)
}
}
return req, creds, nil
}
func newBatchClientRequest(method, rawurl string) (*http.Request, Creds, error) {
req, err := http.NewRequest(method, rawurl, nil)
if err != nil {
return nil, nil, err
}
req.Header.Set("User-Agent", UserAgent)
// Get the creds if we're private
/*
creds, err := getCreds(req)
if err != nil {
return nil, nil, err
}
*/
return req, nil, nil
}
func getCreds(req *http.Request) (Creds, error) {
if len(req.Header.Get("Authorization")) > 0 {
return nil, nil