Skip to content

feat: Add OS-EP-FILTER provider CRUD to the catalog - #1075

Merged
gtema merged 2 commits into
openstack-experimental:mainfrom
mashawes:endpoint-filter-crud
Jul 30, 2026
Merged

feat: Add OS-EP-FILTER provider CRUD to the catalog#1075
gtema merged 2 commits into
openstack-experimental:mainfrom
mashawes:endpoint-filter-crud

Conversation

@mashawes

Copy link
Copy Markdown
Collaborator

Summary

Implements the OS-EP-FILTER provider surface in the catalog provider, following the existing region/service/endpoint CRUD pattern against the pre-existing endpoint_group, project_endpoint, and project_endpoint_group tables.

  • Endpoint group CRUD: create, get, list, update, delete. Adds EndpointGroup, EndpointGroupCreate, EndpointGroupUpdate, and EndpointGroupListParameters in core-types, an EndpointGroupNotFound error, and an EndpointGroup event payload wired into the CADF audit mapping. The filters column is modelled as a HashMap<String, Value>.
  • Project/endpoint associations: associate, disassociate, check, and list the endpoints for a project. Add and remove are idempotent.
  • Project/endpoint-group associations: associate, disassociate, check, and list the endpoint groups for a project.

All operations are threaded through the CatalogApi provider (provider_api, service, mock) and implemented in the catalog-sql driver. Endpoint group create, update, and delete emit audit events; the association operations are plain link-table mutations.

Test plan

Driver unit tests for every operation. Integration tests covering endpoint group CRUD (with validation and not-found cases) and full association lifecycles for both project/endpoint and project/endpoint-group. Run with cargo test and all pass.

Closes #914

Note: this contribution was developed with AI assistance.

@mashawes
mashawes requested a review from gtema July 22, 2026 15:08
@mashawes mashawes changed the title Endpoint filter crud feat: Add OS-EP-FILTER provider CRUD to the catalog Jul 22, 2026
Comment thread crates/core/src/catalog/service.rs Outdated
project_id: &'a str,
endpoint_id: &'a str,
) -> Result<(), CatalogProviderError> {
self.backend_driver

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all modification operation must emit audit entry and notification event. Here is it done only for endpoint groups, but not modifying project<->endpoint bindings

Comment thread crates/core/src/catalog/service.rs Outdated
project_id: &'a str,
endpoint_id: &'a str,
) -> Result<(), CatalogProviderError> {
self.backend_driver

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also here audit and notifications are completely missing

@mashawes
mashawes force-pushed the endpoint-filter-crud branch from 9ea977d to d44a71f Compare July 29, 2026 15:47
mashawes added 2 commits July 29, 2026 20:47
Signed-off-by: Mohammed <mashawes@andrew.cmu.edu>
Signed-off-by: Mohammed <mashawes@andrew.cmu.edu>
@gtema
gtema force-pushed the endpoint-filter-crud branch from d44a71f to deaa944 Compare July 29, 2026 18:47
@gtema
gtema added this pull request to the merge queue Jul 30, 2026
Merged via the queue into openstack-experimental:main with commit b74a946 Jul 30, 2026
35 of 36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Endpoint Filter provider CRUD part of the catalog provider

2 participants