Skip to content

Resolve default implementation issue for list_keys in Provide #312

Closed
@ionut-arm

Description

@ionut-arm

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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions