Skip to content

Commit

Permalink
Add bucket and region to federation_token.go
Browse files Browse the repository at this point in the history
[#161256726]

Signed-off-by: Vitaliy Krasylovets <[email protected]>
  • Loading branch information
Sajid Raihan authored and vitakras committed Oct 16, 2018
1 parent 0dba5eb commit 6f2810f
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 21 deletions.
17 changes: 9 additions & 8 deletions federation_token.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package pivnet

import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"encoding/json"
"bytes"
)

type FederationTokenService struct {
client Client
}

type FederationToken struct {
AccessKeyID string `json:"access_key_id,omitempty" yaml:"access_key_id,omitempty"`
SecretAccessKey string `json:"secret_access_key,omitempty" yaml:"secret_access_key,omitempty"`
SessionToken string `json:"session_token,omitempty" yaml:"session_token,omitempty"`
AccessKeyID string `json:"access_key_id,omitempty" yaml:"access_key_id,omitempty"`
SecretAccessKey string `json:"secret_access_key,omitempty" yaml:"secret_access_key,omitempty"`
SessionToken string `json:"session_token,omitempty" yaml:"session_token,omitempty"`
Bucket string `json:"bucket,omitempty" yaml:"bucket,omitempty"`
Region string `json:"region,omitempty" yaml:"region,omitempty"`
}

type createFederationTokenBody struct {
ProductID string `json:"product_id"`
ProductID string `json:"product_id"`
}


func (f FederationTokenService) GenerateFederationToken(productSlug string) (FederationToken, error) {
url := fmt.Sprintf("/federation_token")

Expand Down Expand Up @@ -55,4 +56,4 @@ func (f FederationTokenService) GenerateFederationToken(productSlug string) (Fed
}

return token, nil
}
}
34 changes: 21 additions & 13 deletions federation_token_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@ var _ = Describe("PivnetClient - federation token", func() {
apiAddress string
userAgent string

response interface{}
responseStatusCode int
mockedResponse interface{}
responseStatusCode int
expectedRequestBody requestBody
newClientConfig pivnet.ClientConfig
fakeLogger logger.Logger
newClientConfig pivnet.ClientConfig
fakeLogger logger.Logger

productSlug string
expectedFederationToken pivnet.FederationToken
)

BeforeEach(func() {
Expand Down Expand Up @@ -61,7 +62,7 @@ var _ = Describe("PivnetClient - federation token", func() {
fmt.Sprintf("%s/federation_token", apiPrefix),
),
ghttp.VerifyJSONRepresenting(&expectedRequestBody),
ghttp.RespondWithJSONEncoded(responseStatusCode, response),
ghttp.RespondWithJSONEncoded(responseStatusCode, mockedResponse),
),
)
})
Expand All @@ -74,13 +75,22 @@ var _ = Describe("PivnetClient - federation token", func() {
BeforeEach(func() {
productSlug = "banana"

response = pivnet.FederationToken{
AccessKeyID: "some-AccessKeyID",
mockedResponse = pivnet.FederationToken{
AccessKeyID: "some-AccessKeyID",
SecretAccessKey: "some-SecretAccessKey",
SessionToken: "some-SessionToken",
SessionToken: "some-SessionToken",
Bucket: "some-bucket",
Region: "some-region",
}

responseStatusCode = http.StatusOK
expectedFederationToken = pivnet.FederationToken{
AccessKeyID: "some-AccessKeyID",
SecretAccessKey: "some-SecretAccessKey",
SessionToken: "some-SessionToken",
Bucket: "some-bucket",
Region: "some-region",
}
})

It("returns the federated token without error", func() {
Expand All @@ -90,17 +100,15 @@ var _ = Describe("PivnetClient - federation token", func() {
Expect(err).NotTo(HaveOccurred())

Expect(federationToken).ToNot(Equal(nil))
Expect(federationToken.AccessKeyID).To(Equal("some-AccessKeyID"))
Expect(federationToken.SecretAccessKey).To(Equal("some-SecretAccessKey"))
Expect(federationToken.SessionToken).To(Equal("some-SessionToken"))
Expect(federationToken).To(Equal(expectedFederationToken))
})
})

Describe("Err when trying to generate token for restricted product", func() {
BeforeEach(func() {
productSlug = "something-i-dont-manage"

response = pivnetErr{Message: "only available for product admins and partner product admins"}
mockedResponse = pivnetErr{Message: "only available for product admins and partner product admins"}

responseStatusCode = http.StatusForbidden
})
Expand All @@ -115,4 +123,4 @@ var _ = Describe("PivnetClient - federation token", func() {
Expect(err.Error()).To(ContainSubstring("403 - only available for product admins and partner product admins"))
})
})
})
})

0 comments on commit 6f2810f

Please sign in to comment.