Railsで warning: duplicated key at line 196 ignored: :openstack_region のエラー

gemのfog(1.27)内でworningが出ていたので調べました。

エラーが出ていた部分は『lib/fog/openstack/volume.rb』の188行目のauthenticateメソッドの中にあるoptionsに代入しているところで『:openstack_region => @openstack_region,』が2回書かれていたからでした。 なので、依存などでバージョンが上げられない場合でもそのままでも問題はなさそうです。

ちなみにプルリクを漁ったら既に解決済みでした。 Remove duplicate openstack_region key by kyletolle · Pull Request #3392 · fog/fog · GitHub

対象部分のコード

lib/fog/openstack/volume.rb

def authenticate
  if !@openstack_management_url || @openstack_must_reauthenticate
    options = {
      :openstack_region   => @openstack_region,
      :openstack_tenant   => @openstack_tenant,
      :openstack_api_key  => @openstack_api_key,
      :openstack_username => @openstack_username,
      :openstack_auth_uri => @openstack_auth_uri,
      :openstack_region   => @openstack_region,
      :openstack_auth_token => @openstack_must_reauthenticate ? nil : @openstack_auth_token,
      :openstack_service_type => @openstack_service_type,
      :openstack_service_name => @openstack_service_name,
      :openstack_endpoint_type => @openstack_endpoint_type
    }

    credentials = Fog::OpenStack.authenticate_v2(options, @connection_options)

    @current_user = credentials[:user]
    @current_tenant = credentials[:tenant]

    @openstack_must_reauthenticate = false
    @auth_token = credentials[:token]
    @openstack_management_url = credentials[:server_management_url]
    uri = URI.parse(@openstack_management_url)
  else
    @auth_token = @openstack_auth_token
    uri = URI.parse(@openstack_management_url)
  end

  @host   = uri.host
  @path   = uri.path
  @path.sub!(/\/$/, '')
  @port   = uri.port
  @scheme = uri.scheme
  true
end