The new 'none' auth plugin and the old 'admin_token' plugin are subclasses of BaseAuthPluign, not BaseIdentityPlugin. That means if someone does: s = session.Session(noauth.NoAuth()) a = adapter.Adapter(s, endpoint_override='https://example.com') to get an Adapter on an endpoint using the none plugin, then does either: a.get_api_major_version() or: a.get_endpoint_data() it will fail because the none plugin doesn't have those methods. There is, however, nothing about those methods that necessarily needs authentication. That is, they can work just fine in contexts without a keystone token or without authentication of any sort. Ironic/Bifrost is specifically a usecase here, as standalone Ironic wants to use the 'none' plugin, but consuming the API still needs to get microversion info from the given endpoint. Add methods to BaseAuthPlugin that take less arguments since the ones about finding services in catalogs make zero sense in none/admin_token context. Change-Id: Id9bd19cca68206fc64d23b0eaa95aa3e5b01b676
29 KiB
29 KiB