Skip to content

Commit

Permalink
[core] @credential should always be a symbol
Browse files Browse the repository at this point in the history
Similar to fog#504, say your ~/.fog had multiple stanzas:

```yaml
:default:
  :aws_access_key_id: aaa
test:
  :aws_access_key_id: bbb
:prod:
  :aws_access_key_id: ccc
```

By default, fog will look for either the credential *symbol* `:default` or for the *string* stored in `FOG_CREDENTIAL` (in `lib/fog/core/credentials.rb` method `self.credential`). When the fog credentials file given above is read in, it’s passed through `self.symbolize_credentials` which makes *symbols* out of all the keys (so `prod`, `test`, and `default` will all be symbols) and saves the list to credentials then looks for `credentials[credential]` which is indexing a string in a hash of symbols.

Any value that `@credential` is set to should be a symbol, because the hash keys will only be symbols.
  • Loading branch information
hunner committed Nov 16, 2011
1 parent 40e2c2b commit d25b394
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions lib/fog/core/credentials.rb
Expand Up @@ -8,12 +8,12 @@ module Fog
# @ return [String, Symbol] name of the new credential
def self.credential=(new_credential)
@credentials = nil
@credential = new_credential
@credential = new_credential.to_sym
end

# @return [String, Symbol] The credential to use in Fog
def self.credential
@credential ||= ENV["FOG_CREDENTIAL"] || :default
@credential ||= ENV["FOG_CREDENTIAL"].to_sym || :default
end

# @return [String] The path for configuration_file
Expand Down
4 changes: 2 additions & 2 deletions tests/core/credential_tests.rb
Expand Up @@ -18,12 +18,12 @@
tests('credential') do
returns(:default, "is :default") { Fog.credential }

returns("foo", "can be set directly") do
returns(:foo, "can be set directly") do
Fog.credential = "foo"
Fog.credential
end

returns("bar", "can be set with environment variable") do
returns(:bar, "can be set with environment variable") do
ENV["FOG_CREDENTIAL"] = "bar"
Fog.credential
end
Expand Down

0 comments on commit d25b394

Please sign in to comment.