diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-25 13:27:59 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-25 13:34:11 +0000 |
commit | bf13afeb506b581aa7af898941c3c5cf885946d4 (patch) | |
tree | 4bfc92d95caa87e446c84726998ce083fb361337 /vespalib | |
parent | a105ffc48d22834af461cafd17da6e4bc8c7e715 (diff) |
Add capabilities and RPC filters for sentinel and internal Proton APIs
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/net/tls/capabilities/capabilities_test.cpp | 28 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/net/tls/capability.cpp | 4 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/net/tls/capability.h | 11 |
3 files changed, 31 insertions, 12 deletions
diff --git a/vespalib/src/tests/net/tls/capabilities/capabilities_test.cpp b/vespalib/src/tests/net/tls/capabilities/capabilities_test.cpp index 4a20200c631..96d345a40f0 100644 --- a/vespalib/src/tests/net/tls/capabilities/capabilities_test.cpp +++ b/vespalib/src/tests/net/tls/capabilities/capabilities_test.cpp @@ -38,12 +38,14 @@ TEST("CapabilitySet instances are equality comparable") { } TEST("Can get underlying name of all Capability instances") { - EXPECT_EQUAL(Capability::content_storage_api().name(), "vespa.content.storage_api"sv); - EXPECT_EQUAL(Capability::content_document_api().name(), "vespa.content.document_api"sv); - EXPECT_EQUAL(Capability::content_search_api().name(), "vespa.content.search_api"sv); - EXPECT_EQUAL(Capability::slobrok_api().name(), "vespa.slobrok.api"sv); - EXPECT_EQUAL(Capability::content_status_pages().name(), "vespa.content.status_pages"sv); - EXPECT_EQUAL(Capability::content_metrics_api().name(), "vespa.content.metrics_api"sv); + EXPECT_EQUAL(Capability::content_storage_api().name(), "vespa.content.storage_api"sv); + EXPECT_EQUAL(Capability::content_document_api().name(), "vespa.content.document_api"sv); + EXPECT_EQUAL(Capability::content_search_api().name(), "vespa.content.search_api"sv); + EXPECT_EQUAL(Capability::content_proton_admin_api().name(), "vespa.content.proton_admin_api"sv); + EXPECT_EQUAL(Capability::slobrok_api().name(), "vespa.slobrok.api"sv); + EXPECT_EQUAL(Capability::config_sentinel_api().name(), "vespa.config.sentinel_api"sv); + EXPECT_EQUAL(Capability::content_status_pages().name(), "vespa.content.status_pages"sv); + EXPECT_EQUAL(Capability::content_metrics_api().name(), "vespa.content.metrics_api"sv); EXPECT_EQUAL(Capability::content_cluster_controller_internal_state_api().name(), "vespa.content.cluster_controller.internal_state_api"sv); } @@ -69,12 +71,14 @@ void check_capability_set_mapping(const std::string& name, CapabilitySet expecte } TEST("All known capabilities can be looked up by name") { - check_capability_mapping("vespa.content.storage_api", Capability::content_storage_api()); - check_capability_mapping("vespa.content.document_api", Capability::content_document_api()); - check_capability_mapping("vespa.content.search_api", Capability::content_search_api()); - check_capability_mapping("vespa.slobrok.api", Capability::slobrok_api()); - check_capability_mapping("vespa.content.status_pages", Capability::content_status_pages()); - check_capability_mapping("vespa.content.metrics_api", Capability::content_metrics_api()); + check_capability_mapping("vespa.content.storage_api", Capability::content_storage_api()); + check_capability_mapping("vespa.content.document_api", Capability::content_document_api()); + check_capability_mapping("vespa.content.search_api", Capability::content_search_api()); + check_capability_mapping("vespa.content.proton_admin_api", Capability::content_proton_admin_api()); + check_capability_mapping("vespa.slobrok.api", Capability::slobrok_api()); + check_capability_mapping("vespa.config.sentinel_api", Capability::config_sentinel_api()); + check_capability_mapping("vespa.content.status_pages", Capability::content_status_pages()); + check_capability_mapping("vespa.content.metrics_api", Capability::content_metrics_api()); check_capability_mapping("vespa.content.cluster_controller.internal_state_api", Capability::content_cluster_controller_internal_state_api()); } diff --git a/vespalib/src/vespa/vespalib/net/tls/capability.cpp b/vespalib/src/vespa/vespalib/net/tls/capability.cpp index 64de250e60d..db357ffd820 100644 --- a/vespalib/src/vespa/vespalib/net/tls/capability.cpp +++ b/vespalib/src/vespa/vespalib/net/tls/capability.cpp @@ -16,8 +16,10 @@ constexpr std::array<std::string_view, Capability::max_value_count()> capability "vespa.content.storage_api"sv, "vespa.content.document_api"sv, "vespa.content.search_api"sv, + "vespa.content.proton_admin_api"sv, "vespa.content.cluster_controller.internal_state_api"sv, "vespa.slobrok.api"sv, + "vespa.config.sentinel_api"sv, "vespa.content.status_pages"sv, "vespa.content.metrics_api"sv, }; @@ -40,8 +42,10 @@ std::optional<Capability> Capability::find_capability(const string& cap_name) no {"vespa.content.storage_api", content_storage_api()}, {"vespa.content.document_api", content_document_api()}, {"vespa.content.search_api", content_search_api()}, + {"vespa.content.proton_admin_api", content_proton_admin_api()}, {"vespa.content.cluster_controller.internal_state_api", content_cluster_controller_internal_state_api()}, {"vespa.slobrok.api", slobrok_api()}, + {"vespa.config.sentinel_api", config_sentinel_api()}, {"vespa.content.status_pages", content_status_pages()}, {"vespa.content.metrics_api", content_metrics_api()}, }); diff --git a/vespalib/src/vespa/vespalib/net/tls/capability.h b/vespalib/src/vespa/vespalib/net/tls/capability.h index 842e3f3a363..3b4f7d79264 100644 --- a/vespalib/src/vespa/vespalib/net/tls/capability.h +++ b/vespalib/src/vespa/vespalib/net/tls/capability.h @@ -23,12 +23,15 @@ private: // Each ID value corresponds to a unique single-bit position. // These values shall never be exposed outside the running process, i.e. they // must be possible to change arbitrarily internally across versions. + // Changes must be reflected in capabilities_test.cpp enum class Id : uint32_t { ContentStorageApi = 0, // Must start at zero ContentDocumentApi, ContentSearchApi, + ContentProtonAdminApi, ContentClusterControllerInternalStateApi, SlobrokApi, + ConfigSentinelApi, ContentStatusPages, ContentMetricsApi, // When adding a capability ID to the end, max_value_count() MUST be updated @@ -80,6 +83,10 @@ public: return Capability(Id::ContentSearchApi); } + constexpr static Capability content_proton_admin_api() noexcept { + return Capability(Id::ContentProtonAdminApi); + } + constexpr static Capability content_cluster_controller_internal_state_api() noexcept { return Capability(Id::ContentClusterControllerInternalStateApi); } @@ -88,6 +95,10 @@ public: return Capability(Id::SlobrokApi); } + constexpr static Capability config_sentinel_api() noexcept { + return Capability(Id::ConfigSentinelApi); + } + constexpr static Capability content_status_pages() noexcept { return Capability(Id::ContentStatusPages); } |