Skip to content

Commit

Permalink
Move SessionUtilities service to session_utilities.proto file (#798)
Browse files Browse the repository at this point in the history
* Move SessionUtilities service to session_utilities.proto file.
We want to use the session message definition in other projects but do not want to include SessionUtilities.  SessionUtilities is not heavily used and moving to another proto file should not be disruptive to many users.

* Fixing session utilities python examples

* Fix spacing in CMakeLists.txt

Co-authored-by: Ryan Eckenrode <ryan.eckenrode@ni.com>
  • Loading branch information
ccifra and reckenro committed Nov 21, 2022
1 parent f313f5e commit 51154f8
Show file tree
Hide file tree
Showing 8 changed files with 129 additions and 95 deletions.
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ set(nidriver_service_srcs
# Proto file
#----------------------------------------------------------------------
get_filename_component(session_proto "source/protobuf/session.proto" ABSOLUTE)
get_filename_component(session_utilities_proto "source/protobuf/session_utilities.proto" ABSOLUTE)
get_filename_component(nidevice_proto "source/protobuf/nidevice.proto" ABSOLUTE)
get_filename_component(debugsessionproperties_restricted_proto "source/protobuf_restricted/debugsessionproperties_restricted.proto" ABSOLUTE)
get_filename_component(session_proto_path "${session_proto}" PATH)
Expand Down Expand Up @@ -262,6 +263,10 @@ set(session_proto_srcs "${proto_srcs_dir}/session.pb.cc")
set(session_proto_hdrs "${proto_srcs_dir}/session.pb.h")
set(session_grpc_srcs "${proto_srcs_dir}/session.grpc.pb.cc")
set(session_grpc_hdrs "${proto_srcs_dir}/session.grpc.pb.h")
set(session_utilities_proto_srcs "${proto_srcs_dir}/session_utilities.pb.cc")
set(session_utilities_proto_hdrs "${proto_srcs_dir}/session_utilities.pb.h")
set(session_utilities_grpc_srcs "${proto_srcs_dir}/session_utilities.grpc.pb.cc")
set(session_utilities_grpc_hdrs "${proto_srcs_dir}/session_utilities.grpc.pb.h")
set(nidevice_proto_srcs "${proto_srcs_dir}/nidevice.pb.cc")
set(nidevice_proto_hdrs "${proto_srcs_dir}/nidevice.pb.h")
set(debugsessionproperties_restricted_proto_srcs "${proto_srcs_dir}/debugsessionproperties_restricted.pb.cc")
Expand All @@ -280,6 +285,16 @@ GenerateGrpcSources(
"${session_grpc_hdrs}"
)

GenerateGrpcSources(
PROTO
${session_utilities_proto}
OUTPUT
"${session_utilities_proto_srcs}"
"${session_utilities_proto_hdrs}"
"${session_utilities_grpc_srcs}"
"${session_utilities_grpc_hdrs}"
)

GenerateGrpcSources(
PROTO
${nidevice_proto}
Expand Down Expand Up @@ -338,6 +353,8 @@ add_executable(ni_grpc_device_server
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
${nidriver_service_srcs})
Expand Down Expand Up @@ -428,6 +445,8 @@ add_executable(IntegrationTestsRunner
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
"${proto_srcs_dir}/nifake.pb.cc"
Expand Down Expand Up @@ -491,6 +510,8 @@ add_executable(UnitTestsRunner
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
"${proto_srcs_dir}/nifake.pb.cc"
Expand Down Expand Up @@ -589,6 +610,8 @@ set(system_test_runner_sources
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
${nidriver_service_srcs}
Expand Down
4 changes: 2 additions & 2 deletions examples/session/session-reservation.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
import grpc
import niscope_pb2 as niscope_types
import niscope_pb2_grpc as grpc_niscope
import session_pb2 as session_types
import session_pb2_grpc as grpc_session
import session_utilities_pb2 as session_types
import session_utilities_pb2_grpc as grpc_session

SERVER_ADDRESS = "localhost"
SERVER_PORT = "31763"
Expand Down
4 changes: 2 additions & 2 deletions examples/session/session-utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import argparse

import grpc
import session_pb2 as session_types
import session_pb2_grpc as grpc_session
import session_utilities_pb2 as session_types
import session_utilities_pb2_grpc as grpc_session


def main(args):
Expand Down
91 changes: 0 additions & 91 deletions source/protobuf/session.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,6 @@ option csharp_namespace = "NationalInstruments.Grpc.Device";

package nidevice_grpc;

service SessionUtilities {
// Provides a list of devices or chassis connected to server under localhost
rpc EnumerateDevices(EnumerateDevicesRequest)
returns (EnumerateDevicesResponse);

// Provides a list of NI software installed on server under localhost
rpc EnumerateInstalledSoftware(EnumerateInstalledSoftwareRequest)
returns (EnumerateInstalledSoftwareResponse);

// Reserve a set of client defined resources for exclusive use
rpc Reserve(ReserveRequest) returns (ReserveResponse);

// Determines if a set of client defined resources is currently reserved by a
// specific client
rpc IsReservedByClient(IsReservedByClientRequest)
returns (IsReservedByClientResponse);

// Unreserves a previously reserved resource
rpc Unreserve(UnreserveRequest) returns (UnreserveResponse);

// Resets the server to a default state with no open sessions
rpc ResetServer(ResetServerRequest) returns (ResetServerResponse);
}

enum SessionInitializationBehavior {
SESSION_INITIALIZATION_BEHAVIOR_UNSPECIFIED = 0;
SESSION_INITIALIZATION_BEHAVIOR_INITIALIZE_NEW = 1;
Expand All @@ -40,70 +16,3 @@ enum SessionInitializationBehavior {
message Session {
string name = 1;
}

message DeviceProperties {
string name = 1;
string model = 2;
string vendor = 3;
string serial_number = 4;
uint32 product_id = 5;
}

message EnumerateDevicesRequest {}

message EnumerateDevicesResponse {
repeated DeviceProperties devices = 1;
}

message SoftwareProperties {
string package_id = 1;
string package_version = 2;
string product_name = 3;
}

message EnumerateInstalledSoftwareRequest {
bool include_hidden_packages = 1;
}

message EnumerateInstalledSoftwareResponse {
repeated SoftwareProperties software = 1;
}

message ReserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message ReserveResponse {
bool is_reserved = 1;
}

message IsReservedByClientRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message IsReservedByClientResponse {
bool is_reserved = 1;
}

message UnreserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message UnreserveResponse {
bool is_unreserved = 1;
}

message ResetServerRequest {}

message ResetServerResponse {
bool is_server_reset = 1;
}
99 changes: 99 additions & 0 deletions source/protobuf/session_utilities.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.ni.grpc.device";
option java_outer_classname = "NiDevice";
option csharp_namespace = "NationalInstruments.Grpc.Device";

package nidevice_grpc;

service SessionUtilities {
// Provides a list of devices or chassis connected to server under localhost
rpc EnumerateDevices(EnumerateDevicesRequest)
returns (EnumerateDevicesResponse);

// Provides a list of NI software installed on server under localhost
rpc EnumerateInstalledSoftware(EnumerateInstalledSoftwareRequest)
returns (EnumerateInstalledSoftwareResponse);

// Reserve a set of client defined resources for exclusive use
rpc Reserve(ReserveRequest) returns (ReserveResponse);

// Determines if a set of client defined resources is currently reserved by a
// specific client
rpc IsReservedByClient(IsReservedByClientRequest)
returns (IsReservedByClientResponse);

// Unreserves a previously reserved resource
rpc Unreserve(UnreserveRequest) returns (UnreserveResponse);

// Resets the server to a default state with no open sessions
rpc ResetServer(ResetServerRequest) returns (ResetServerResponse);
}

message DeviceProperties {
string name = 1;
string model = 2;
string vendor = 3;
string serial_number = 4;
uint32 product_id = 5;
}

message EnumerateDevicesRequest {}

message EnumerateDevicesResponse {
repeated DeviceProperties devices = 1;
}

message SoftwareProperties {
string package_id = 1;
string package_version = 2;
string product_name = 3;
}

message EnumerateInstalledSoftwareRequest {
bool include_hidden_packages = 1;
}

message EnumerateInstalledSoftwareResponse {
repeated SoftwareProperties software = 1;
}

message ReserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message ReserveResponse {
bool is_reserved = 1;
}

message IsReservedByClientRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message IsReservedByClientResponse {
bool is_reserved = 1;
}

message UnreserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message UnreserveResponse {
bool is_unreserved = 1;
}

message ResetServerRequest {}

message ResetServerResponse {
bool is_server_reset = 1;
}
1 change: 1 addition & 0 deletions source/server/device_enumerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <grpcpp/grpcpp.h>
#include <nisyscfg.h>
#include <session.grpc.pb.h>
#include <session_utilities.grpc.pb.h>
#include <shared_mutex>

#include "syscfg_library_interface.h"
Expand Down
1 change: 1 addition & 0 deletions source/server/software_enumerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <grpcpp/grpcpp.h>
#include <nisyscfg.h>
#include <session.grpc.pb.h>
#include <session_utilities.grpc.pb.h>

#include <shared_mutex>

Expand Down
1 change: 1 addition & 0 deletions source/tests/system/device_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <register_all_services.h>
#include <server/feature_toggles.h>
#include <session.grpc.pb.h>
#include <session_utilities.grpc.pb.h>

namespace ni {
namespace tests {
Expand Down

0 comments on commit 51154f8

Please sign in to comment.