]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "pybind/mgr: Generate pb2 file in src/pybind/mgr/dashboard/services/proto...
authorNizamudeen A <nia@redhat.com>
Tue, 4 Mar 2025 14:13:15 +0000 (19:43 +0530)
committerNizamudeen A <nia@redhat.com>
Tue, 4 Mar 2025 14:35:05 +0000 (20:05 +0530)
This reverts commit 7f2e1910af05803e5d19c993344a5b7f13040259.

Signed-off-by: Nizamudeen A <nia@redhat.com>
src/nvmeof/gateway
src/pybind/mgr/dashboard/CMakeLists.txt
src/pybind/mgr/dashboard/services/proto/.gitkeep [deleted file]
src/pybind/mgr/dashboard/services/proto/gateway.proto [new file with mode: 0644]

index bfed932f33367d055176fc921da68da517c59a6d..322a86f7348af1bc173f01e6cc4b64e9a8075727 160000 (submodule)
@@ -1 +1 @@
-Subproject commit bfed932f33367d055176fc921da68da517c59a6d
+Subproject commit 322a86f7348af1bc173f01e6cc4b64e9a8075727
index 9dc4ecc4a274cd79a1cdd2abda7607ff02bf37ae..091f7605cc94db6941746d2061960014c4e29d9c 100644 (file)
@@ -17,7 +17,6 @@ if(WITH_MGR_DASHBOARD_FRONTEND)
 
   # Required for building the dashboard grpc protos at build time
   set(CEPH_GRPC_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-grpc-virtualenv)
-  set(CEPH_NVME_GATEWAY_PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/nvmeof/gateway/control/proto)
 
   add_custom_command(
     OUTPUT ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools
@@ -29,10 +28,9 @@ if(WITH_MGR_DASHBOARD_FRONTEND)
   # protobuffer files generation
   add_custom_command(
     OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2.py" "${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2_grpc.py"
-    COMMAND cp ${CEPH_NVME_GATEWAY_PROTO_DIR}/gateway.proto dashboard/services/proto/gateway.proto
     COMMAND . ${CEPH_GRPC_VIRTUALENV}/bin/activate && ${CEPH_GRPC_VIRTUALENV}/bin/python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. dashboard/services/proto/gateway.proto && deactivate
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
-    DEPENDS ${CEPH_NVME_GATEWAY_PROTO_DIR}/gateway.proto ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway.proto ${CEPH_GRPC_VIRTUALENV}/lib/python*/site-packages/grpc_tools
     COMMENT "proto generation for grpc deps")
   add_custom_target(mgr-dashboard-services-deps
     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2.py ${CMAKE_CURRENT_SOURCE_DIR}/services/proto/gateway_pb2_grpc.py
diff --git a/src/pybind/mgr/dashboard/services/proto/.gitkeep b/src/pybind/mgr/dashboard/services/proto/.gitkeep
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/pybind/mgr/dashboard/services/proto/gateway.proto b/src/pybind/mgr/dashboard/services/proto/gateway.proto
new file mode 100644 (file)
index 0000000..3b44515
--- /dev/null
@@ -0,0 +1,488 @@
+//
+//  Copyright (c) 2021 International Business Machines
+//  All rights reserved.
+//
+//  SPDX-License-Identifier: MIT
+//
+//  Authors: anita.shekar@ibm.com, sandy.kaur@ibm.com
+//
+
+
+syntax = "proto3";
+
+enum AddressFamily {
+    ipv4 = 0;
+    ipv6 = 1;
+}
+
+enum LogLevel {
+    ERROR = 0;
+    WARNING = 1;
+    NOTICE = 2;
+    INFO = 3;
+    DEBUG = 4;
+}
+
+enum GwLogLevel {
+    notset = 0;
+    debug = 10;
+    info = 20;
+    warning = 30;
+    error = 40;
+    critical = 50;
+}
+
+service Gateway {
+       // Creates a namespace from an RBD image
+       rpc namespace_add(namespace_add_req) returns (nsid_status) {}
+
+       // Creates a subsystem
+       rpc create_subsystem(create_subsystem_req) returns(req_status) {}
+
+       // Deletes a subsystem
+       rpc delete_subsystem(delete_subsystem_req) returns(req_status) {}
+
+       // List namespaces
+       rpc list_namespaces(list_namespaces_req) returns(namespaces_info) {}
+
+       // Resizes a namespace
+       rpc namespace_resize(namespace_resize_req) returns (req_status) {}
+
+       // Gets namespace's IO stats
+       rpc namespace_get_io_stats(namespace_get_io_stats_req) returns (namespace_io_stats_info) {}
+
+       // Sets namespace's qos limits
+       rpc namespace_set_qos_limits(namespace_set_qos_req) returns (req_status) {}
+
+       // Changes namespace's load balancing group
+       rpc namespace_change_load_balancing_group(namespace_change_load_balancing_group_req) returns (req_status) {}
+
+       // Deletes a namespace
+       rpc namespace_delete(namespace_delete_req) returns (req_status) {}
+
+       // Adds a host to a subsystem
+       rpc add_host(add_host_req) returns (req_status) {}
+
+       // Removes a host from a subsystem
+       rpc remove_host(remove_host_req) returns (req_status) {}
+
+       // List hosts
+       rpc list_hosts(list_hosts_req) returns(hosts_info) {}
+
+       // List connections
+       rpc list_connections(list_connections_req) returns(connections_info) {}
+
+       // Creates a listener for a subsystem at a given IP/Port
+       rpc create_listener(create_listener_req) returns(req_status) {}
+
+       // Deletes a listener from a subsystem at a given IP/Port
+       rpc delete_listener(delete_listener_req) returns(req_status) {}
+
+       // List listeners
+       rpc list_listeners(list_listeners_req) returns(listeners_info) {}
+
+       // List subsystems
+       rpc list_subsystems(list_subsystems_req) returns(subsystems_info_cli) {}
+
+        // Gets subsystems
+        rpc get_subsystems(get_subsystems_req) returns(subsystems_info) {}
+
+       // Set gateway ANA states
+       rpc set_ana_state(ana_info) returns(req_status) {}
+
+       // Gets spdk nvmf log flags and level
+       rpc get_spdk_nvmf_log_flags_and_level(get_spdk_nvmf_log_flags_and_level_req) returns(spdk_nvmf_log_flags_and_level_info) {}
+
+        // Disables spdk nvmf logs
+        rpc disable_spdk_nvmf_logs(disable_spdk_nvmf_logs_req) returns(req_status) {}
+
+       // Set spdk nvmf logs
+       rpc set_spdk_nvmf_logs(set_spdk_nvmf_logs_req) returns(req_status) {}
+
+       // Get gateway info
+       rpc get_gateway_info(get_gateway_info_req) returns(gateway_info) {}
+
+       // Get gateway log level
+       rpc get_gateway_log_level(get_gateway_log_level_req) returns(gateway_log_level_info) {}
+
+       // Set gateway log level
+       rpc set_gateway_log_level(set_gateway_log_level_req) returns(req_status) {}
+}
+
+// Request messages
+
+message namespace_add_req {
+       string rbd_pool_name = 1;
+       string rbd_image_name = 2;
+       string subsystem_nqn = 3;
+       optional uint32 nsid = 4;
+       uint32 block_size = 5;
+       optional string uuid = 6;
+       optional int32 anagrpid = 7;
+       optional bool create_image = 8;
+       optional uint64 size = 9;
+       optional bool force = 10;
+}
+
+message namespace_resize_req {
+       string subsystem_nqn = 1;
+       optional uint32 nsid = 2;
+       optional string uuid = 3;
+       uint64 new_size = 4;
+}
+
+message namespace_get_io_stats_req {
+       string subsystem_nqn = 1;
+       optional uint32 nsid = 2;
+       optional string uuid = 3;
+}
+
+message namespace_set_qos_req {
+       string subsystem_nqn = 1;
+       optional uint32 nsid = 2;
+       optional string uuid = 3;
+       optional uint64 rw_ios_per_second = 4;
+       optional uint64 rw_mbytes_per_second = 5;
+       optional uint64 r_mbytes_per_second = 6;
+       optional uint64 w_mbytes_per_second = 7;
+}
+
+message namespace_change_load_balancing_group_req {
+       string subsystem_nqn = 1;
+       optional uint32 nsid = 2;
+       optional string uuid = 3;
+       int32 anagrpid = 4;
+}
+
+message namespace_delete_req {
+       string subsystem_nqn = 1;
+       optional uint32 nsid = 2;
+       optional string uuid = 3;
+}
+
+message create_subsystem_req {
+       string subsystem_nqn = 1;
+       string serial_number = 2;
+       optional uint32 max_namespaces = 3;
+       bool enable_ha = 4;
+}
+
+message delete_subsystem_req {
+       string subsystem_nqn = 1;
+       optional bool force = 2;
+}
+
+message list_namespaces_req {
+       string subsystem = 1;
+       optional uint32 nsid = 2;
+       optional string uuid = 3;
+}
+
+message add_host_req {
+       string subsystem_nqn = 1;
+       string host_nqn = 2;
+}
+
+message remove_host_req {
+       string subsystem_nqn = 1;
+       string host_nqn = 2;
+}
+
+message list_hosts_req {
+       string subsystem = 1;
+}
+
+message list_connections_req {
+       string subsystem = 1;
+}
+
+message create_listener_req {
+       string nqn = 1;
+       string host_name = 2;
+       string traddr = 3;
+       optional AddressFamily adrfam = 5;
+       optional uint32 trsvcid = 6;
+}
+
+message delete_listener_req {
+       string nqn = 1;
+       string host_name = 2;
+       string traddr = 3;
+       optional AddressFamily adrfam = 5;
+       optional uint32 trsvcid = 6;
+       optional bool force = 7;
+}
+
+message list_listeners_req {
+       string subsystem = 1;
+}
+
+message list_subsystems_req {
+       optional string subsystem_nqn = 1;
+       optional string serial_number = 2;
+}
+
+message get_subsystems_req {
+}
+
+message get_spdk_nvmf_log_flags_and_level_req {
+}
+
+message disable_spdk_nvmf_logs_req {
+}
+
+message set_spdk_nvmf_logs_req {
+       optional LogLevel log_level = 1;
+       optional LogLevel print_level = 2;
+}
+
+message get_gateway_info_req {
+       optional string cli_version = 1;
+}
+
+message get_gateway_log_level_req {
+}
+
+message set_gateway_log_level_req {
+       GwLogLevel log_level = 1;
+}
+
+// From https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4-2019.06.10-Ratified.pdf page 138
+// Asymmetric Namespace Access state for all namespaces in this ANA
+// Group when accessed through this controller.
+// Value Description Reference
+// 01h ANA Optimized state 8.20.3.1
+// 02h ANA Non-Optimized state 8.20.3.2
+// 03h ANA Inaccessible state 8.20.3.3
+// 04h ANA Persistent Loss state 8.20.3.4
+// 0Fh ANA Change state 8.20.3.5
+// All others Reserved
+enum ana_state {
+  UNSET         = 0;
+  OPTIMIZED     = 1;
+  NON_OPTIMIZED = 2;
+  INACCESSIBLE  = 3;
+}
+
+message ana_group_state {
+       uint32     grp_id = 1;  // groupd id
+       ana_state  state  = 2;  // ANA state
+}
+
+message nqn_ana_states {
+       string     nqn                     = 1; // subsystem nqn
+       repeated   ana_group_state  states = 2; // list of group states
+}
+
+message ana_info {
+       repeated nqn_ana_states states = 1; // list of nqn states
+}
+
+// Return messages 
+
+message req_status {
+       int32 status = 1;
+       string error_message = 2;
+}
+
+message nsid_status {
+       int32 status = 1;
+       string error_message = 2;
+       uint32 nsid = 3;
+}
+
+message subsystems_info {
+        repeated subsystem subsystems = 1;
+}
+
+message subsystem {
+        string nqn = 1;
+        string subtype = 2;
+        repeated listen_address listen_addresses = 3;
+        repeated host hosts = 4;
+        bool allow_any_host = 5;
+        optional string serial_number = 6;
+        optional string model_number = 7;
+        optional uint32 max_namespaces = 8;
+        optional uint32 min_cntlid = 9;
+        optional uint32 max_cntlid = 10;
+        repeated namespace namespaces = 11;
+}
+
+message listen_address {
+        string trtype = 1;
+        string adrfam = 2;
+        string traddr = 3;
+        string trsvcid = 4;
+        optional string transport = 5;
+}
+
+message namespace {
+    uint32 nsid = 1;
+    string name = 2;
+    optional string bdev_name = 3;
+    optional string nguid = 4;
+    optional string uuid = 5;
+    optional uint32 anagrpid = 6;
+    optional string nonce = 7;
+}
+
+message subsystems_info_cli {
+       int32 status = 1;
+       string error_message = 2;
+       repeated subsystem_cli subsystems = 3;
+}
+
+message subsystem_cli {
+       string nqn = 1;
+       bool enable_ha = 2;
+       string serial_number = 3;
+       string model_number = 4;
+       uint32 min_cntlid = 5;
+       uint32 max_cntlid = 6;
+       uint32 namespace_count = 7;
+       string subtype = 8;
+       uint32 max_namespaces = 9;
+}
+
+message gateway_info {
+       string cli_version = 1;
+       string version = 2;
+       string name = 3;
+       string group = 4;
+       string addr = 5;
+       string port = 6;
+       bool bool_status = 7;
+       int32 status = 8;
+       string error_message = 9;
+       optional string spdk_version = 10;
+        uint32 load_balancing_group = 11;
+       string hostname = 12;
+}
+
+message cli_version {
+       int32 status = 1;
+       string error_message = 2;
+       string version = 3;
+}
+
+message gw_version {
+       int32 status = 1;
+       string error_message = 2;
+       string version = 3;
+}
+
+message listener_info {
+       string host_name = 1;
+       string trtype = 2;
+       AddressFamily adrfam = 3;
+       string traddr = 4;
+       uint32 trsvcid = 5;
+}
+
+message listeners_info {
+       int32 status = 1;
+       string error_message = 2;
+       repeated listener_info listeners = 3;
+}
+
+message host {
+    string nqn = 1;
+}
+
+message hosts_info {
+       int32 status = 1;
+       string error_message = 2;
+       bool allow_any_host = 3;
+       string subsystem_nqn = 4;
+       repeated host hosts = 5;
+}
+
+message connection {
+       string nqn = 1;
+       string traddr = 2;
+       uint32 trsvcid = 3;
+        string trtype = 4;
+       AddressFamily adrfam = 5;
+       bool connected = 6;
+       int32 qpairs_count = 7;
+       int32 controller_id = 8;
+}
+
+message connections_info {
+       int32 status = 1;
+       string error_message = 2;
+       string subsystem_nqn = 3;
+       repeated connection connections = 4;
+}
+
+message namespace_cli {
+       uint32 nsid = 1;
+       string bdev_name = 2;
+       string rbd_image_name = 3;
+       string rbd_pool_name = 4;
+       uint32 load_balancing_group = 5;
+       uint32 block_size = 6;
+       uint64 rbd_image_size = 7;
+       string uuid = 8;
+       uint64 rw_ios_per_second = 9;
+       uint64 rw_mbytes_per_second = 10;
+       uint64 r_mbytes_per_second = 11;
+       uint64 w_mbytes_per_second = 12;
+}
+
+message namespaces_info {
+       int32 status = 1;
+       string error_message = 2;
+       string subsystem_nqn = 3;
+       repeated namespace_cli namespaces = 4;
+}
+
+message namespace_io_stats_info {
+       int32 status = 1;
+       string error_message = 2;
+       string subsystem_nqn = 3;
+       uint32 nsid = 4;
+       string uuid = 5;
+       string bdev_name = 6;
+       uint64 tick_rate = 7;
+       uint64 ticks = 8;
+       uint64 bytes_read = 9;
+       uint64 num_read_ops = 10;
+       uint64 bytes_written = 11;
+       uint64 num_write_ops = 12;
+       uint64 bytes_unmapped = 13;
+       uint64 num_unmap_ops = 14;
+       uint64 read_latency_ticks = 15;
+       uint64 max_read_latency_ticks = 16;
+       uint64 min_read_latency_ticks = 17;
+       uint64 write_latency_ticks = 18;
+       uint64 max_write_latency_ticks = 19;
+       uint64 min_write_latency_ticks = 20;
+       uint64 unmap_latency_ticks = 21;
+       uint64 max_unmap_latency_ticks = 22;
+       uint64 min_unmap_latency_ticks = 23;
+       uint64 copy_latency_ticks = 24;
+       uint64 max_copy_latency_ticks = 25;
+       uint64 min_copy_latency_ticks = 26;
+       repeated uint32 io_error = 27;
+}
+
+message spdk_log_flag_info {
+    string name = 1;
+    bool enabled = 2;
+}
+
+message spdk_nvmf_log_flags_and_level_info {
+       int32 status = 1;
+       string error_message = 2;
+       repeated spdk_log_flag_info nvmf_log_flags = 3;
+       LogLevel log_level = 4;
+       LogLevel log_print_level = 5;
+}
+
+message gateway_log_level_info {
+       int32 status = 1;
+       string error_message = 2;
+       GwLogLevel log_level = 3;
+}