@@ -660,6 +660,11 @@ type ScalewayTokensDefinition struct {
660
660
Token ScalewayTokenDefinition `json:"token"`
661
661
}
662
662
663
+ // ScalewayGetTokens represents a list of Scaleway Tokens
664
+ type ScalewayGetTokens struct {
665
+ Tokens []ScalewayTokenDefinition `json:"tokens"`
666
+ }
667
+
663
668
// ScalewayContainerData represents a Scaleway container data (S3)
664
669
type ScalewayContainerData struct {
665
670
LastModified string `json:"last_modified"`
@@ -1908,7 +1913,6 @@ func (s *ScalewayAPI) GetTasks() (*[]ScalewayTask, error) {
1908
1913
// CheckCredentials performs a dummy check to ensure we can contact the API
1909
1914
func (s * ScalewayAPI ) CheckCredentials () error {
1910
1915
query := url.Values {}
1911
- query .Set ("token_id" , s .Token )
1912
1916
1913
1917
resp , err := s .GetResponsePaginate (AccountAPI , "tokens" , query )
1914
1918
if resp != nil {
@@ -1917,10 +1921,25 @@ func (s *ScalewayAPI) CheckCredentials() error {
1917
1921
if err != nil {
1918
1922
return err
1919
1923
}
1924
+ body , err := s .handleHTTPError ([]int {http .StatusOK }, resp )
1925
+ if err != nil {
1926
+ return err
1927
+ }
1928
+ found := false
1929
+ var tokens ScalewayGetTokens
1920
1930
1921
- if _ , err := s . handleHTTPError ([] int { http . StatusOK }, resp ); err != nil {
1931
+ if err = json . Unmarshal ( body , & tokens ); err != nil {
1922
1932
return err
1923
1933
}
1934
+ for _ , token := range tokens .Tokens {
1935
+ if token .ID == s .Token {
1936
+ found = true
1937
+ break
1938
+ }
1939
+ }
1940
+ if ! found {
1941
+ return fmt .Errorf ("Invalid token %v" , s .Token )
1942
+ }
1924
1943
return nil
1925
1944
}
1926
1945
0 commit comments