Also enhanced identity service to make the ID of the current user accessible as current_user_id.
Note that the returned lists are empty (even if *_as_ids return values) unless the calling user has a role in the projects - i.e. the only projects returned are those for which the user has a role.
Initially the test failed because too many params are set to nil instead of just gateway_ip (see https://github.com/fog/fog/pull/3613) - in fact gateway_ip is the *only* parameter where a null value should be passed to OpenStack.
For reasons that are completely, positively, absolutely, beyond my
understanding, the contain_exactly matcher crashes on JRuby.
The stacktrace indicates that the `@service` member of the `volumes`
collection is somehow reset to `nil`, which I cannot reproduce in any
way outside the contain_exactly matcher.
This adds an RSpec.shared_context which contains the code that the
`before :all` blocks of both specs need.
I've merged and simplified the setup logic of both specs. Most
prominently, the environment variable $DEBUG is scrapped. There are only
two execution modes now, controlled by the presence of Openstack
credentials in the environment variables.
This has some code duplication with the Fog::Identity::OpenStack::V3
spec right now. I'm going to discuss this with @dhague next week and
consolidate this.
only Hash is passed as a first argument. The hash can have
specific fields, that will be recognized and deleted. Rest
of the Hash goes directly to request :query.
Also filtering of options has been deleted, so Fog is now
passing everything, this way we don't have to support changes
in API. Also default values page and per_page has been deleted
because these default values are already set on keystone side.
Default values has been deleted also from recorded VCRs.
This way we can start using the list methods the same. Which
is very important for handling e.g. pagination, filtering,
etc.
All changes are made backwards compatible, with deprecation
warnings, when old interface is used.
Fog::Identity::OpenStack.new() will return either a V2 API object or a V3 API object depending on the auth URL
Fog::OpenStack::Core.authenticate switches on the auth URL to call the V2 or V3 authentication API