Description
For most of the methods on the Provide
trait we offer a default implementation that generally just returns PsaErrorNotSupported
. This allows developers of providers to skip the implementation of those methods in particular if they're not supported for their backend or if they haven't done the implementation work yet.
However, providing these defaults doesn't always work as expected - the list_keys
operation, for example, is service-wide so one provider not supporting it would currently break the operation for the whole service.
There are two possible solutions:
- remove the default implementation for
list_keys
- keep the implementation, but allow the core provider to simply skip when it sees
PsaErrorNotSupported
as the returned error
Neither of those really fixes the problem - developers should really implement that functionality at some point and there's no way for us to know if they've done that currently. So I also propose updating the all_providers::normal::list_keys
test to loop through all providers returned by list_providers
and to generate a key for each one that supports generate_key
(and maybe try import
if generate
isn't supported?). Then we can check that they were all created.