You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ch...@apache.org on 2018/04/12 21:02:42 UTC
[4/6] mesos git commit: Updated CSI client to support v0.2.
Updated CSI client to support v0.2.
To adapt the change in CSI package names (from `csi` to `csi.v0`), we
introduce a new `csi::v0` namespace in Mesos for v0 helpers. The CSI
client class is now defined in this namespace, and its public methods
are updated to reflect the changes in CSI v0.2.
Review: https://reviews.apache.org/r/66407/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/33eb3eb1
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/33eb3eb1
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/33eb3eb1
Branch: refs/heads/master
Commit: 33eb3eb10e8f991e380285d8a0ea8a83344e3eb2
Parents: ea7a94b
Author: Chun-Hung Hsiao <ch...@apache.org>
Authored: Thu Apr 12 12:07:11 2018 -0700
Committer: Chun-Hung Hsiao <ch...@mesosphere.io>
Committed: Thu Apr 12 14:01:52 2018 -0700
----------------------------------------------------------------------
include/csi/spec.hpp | 4 +-
src/csi/client.cpp | 98 ++++++++++++++++++++++---------------
src/csi/client.hpp | 27 +++++-----
src/tests/csi_client_tests.cpp | 13 ++---
src/tests/mock_csi_plugin.cpp | 8 +--
src/tests/mock_csi_plugin.hpp | 49 ++++++++++---------
6 files changed, 113 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/33eb3eb1/include/csi/spec.hpp
----------------------------------------------------------------------
diff --git a/include/csi/spec.hpp b/include/csi/spec.hpp
index da0caae..2e9b870 100644
--- a/include/csi/spec.hpp
+++ b/include/csi/spec.hpp
@@ -29,9 +29,11 @@
namespace mesos {
namespace csi {
+namespace v0 {
-using namespace ::csi;
+using namespace ::csi::v0;
+} // namespace v0 {
} // namespace csi {
} // namespace mesos {
http://git-wip-us.apache.org/repos/asf/mesos/blob/33eb3eb1/src/csi/client.cpp
----------------------------------------------------------------------
diff --git a/src/csi/client.cpp b/src/csi/client.cpp
index 5df788f..559e805 100644
--- a/src/csi/client.cpp
+++ b/src/csi/client.cpp
@@ -23,14 +23,15 @@ using process::grpc::RpcResult;
namespace mesos {
namespace csi {
+namespace v0 {
-Future<GetSupportedVersionsResponse> Client::GetSupportedVersions(
- const GetSupportedVersionsRequest& request)
+Future<GetPluginInfoResponse> Client::GetPluginInfo(
+ const GetPluginInfoRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Identity, GetSupportedVersions), request)
- .then([](const RpcResult<GetSupportedVersionsResponse>& result)
- -> Future<GetSupportedVersionsResponse> {
+ .call(channel, GRPC_RPC(Identity, GetPluginInfo), request)
+ .then([](const RpcResult<GetPluginInfoResponse>& result)
+ -> Future<GetPluginInfoResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -40,13 +41,29 @@ Future<GetSupportedVersionsResponse> Client::GetSupportedVersions(
}
-Future<GetPluginInfoResponse> Client::GetPluginInfo(
- const GetPluginInfoRequest& request)
+Future<GetPluginCapabilitiesResponse> Client::GetPluginCapabilities(
+ const GetPluginCapabilitiesRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Identity, GetPluginInfo), request)
- .then([](const RpcResult<GetPluginInfoResponse>& result)
- -> Future<GetPluginInfoResponse> {
+ .call(channel, GRPC_RPC(Identity, GetPluginCapabilities), request)
+ .then([](const RpcResult<GetPluginCapabilitiesResponse>& result)
+ -> Future<GetPluginCapabilitiesResponse> {
+ if (result.status.ok()) {
+ return result.response;
+ } else {
+ return Failure(result.status.error_message());
+ }
+ });
+}
+
+
+Future<ProbeResponse> Client::Probe(
+ const ProbeRequest& request)
+{
+ return runtime
+ .call(channel, GRPC_RPC(Identity, Probe), request)
+ .then([](const RpcResult<ProbeResponse>& result)
+ -> Future<ProbeResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -168,13 +185,13 @@ Future<GetCapacityResponse> Client::GetCapacity(
}
-Future<ControllerProbeResponse> Client::ControllerProbe(
- const ControllerProbeRequest& request)
+Future<ControllerGetCapabilitiesResponse> Client::ControllerGetCapabilities(
+ const ControllerGetCapabilitiesRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Controller, ControllerProbe), request)
- .then([](const RpcResult<ControllerProbeResponse>& result)
- -> Future<ControllerProbeResponse> {
+ .call(channel, GRPC_RPC(Controller, ControllerGetCapabilities), request)
+ .then([](const RpcResult<ControllerGetCapabilitiesResponse>& result)
+ -> Future<ControllerGetCapabilitiesResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -184,13 +201,13 @@ Future<ControllerProbeResponse> Client::ControllerProbe(
}
-Future<ControllerGetCapabilitiesResponse> Client::ControllerGetCapabilities(
- const ControllerGetCapabilitiesRequest& request)
+Future<NodeStageVolumeResponse> Client::NodeStageVolume(
+ const NodeStageVolumeRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Controller, ControllerGetCapabilities), request)
- .then([](const RpcResult<ControllerGetCapabilitiesResponse>& result)
- -> Future<ControllerGetCapabilitiesResponse> {
+ .call(channel, GRPC_RPC(Node, NodeStageVolume), request)
+ .then([](const RpcResult<NodeStageVolumeResponse>& result)
+ -> Future<NodeStageVolumeResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -200,13 +217,13 @@ Future<ControllerGetCapabilitiesResponse> Client::ControllerGetCapabilities(
}
-Future<NodePublishVolumeResponse> Client::NodePublishVolume(
- const NodePublishVolumeRequest& request)
+Future<NodeUnstageVolumeResponse> Client::NodeUnstageVolume(
+ const NodeUnstageVolumeRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Node, NodePublishVolume), request)
- .then([](const RpcResult<NodePublishVolumeResponse>& result)
- -> Future<NodePublishVolumeResponse> {
+ .call(channel, GRPC_RPC(Node, NodeUnstageVolume), request)
+ .then([](const RpcResult<NodeUnstageVolumeResponse>& result)
+ -> Future<NodeUnstageVolumeResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -216,13 +233,13 @@ Future<NodePublishVolumeResponse> Client::NodePublishVolume(
}
-Future<NodeUnpublishVolumeResponse> Client::NodeUnpublishVolume(
- const NodeUnpublishVolumeRequest& request)
+Future<NodePublishVolumeResponse> Client::NodePublishVolume(
+ const NodePublishVolumeRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Node, NodeUnpublishVolume), request)
- .then([](const RpcResult<NodeUnpublishVolumeResponse>& result)
- -> Future<NodeUnpublishVolumeResponse> {
+ .call(channel, GRPC_RPC(Node, NodePublishVolume), request)
+ .then([](const RpcResult<NodePublishVolumeResponse>& result)
+ -> Future<NodePublishVolumeResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -232,13 +249,13 @@ Future<NodeUnpublishVolumeResponse> Client::NodeUnpublishVolume(
}
-Future<GetNodeIDResponse> Client::GetNodeID(
- const GetNodeIDRequest& request)
+Future<NodeUnpublishVolumeResponse> Client::NodeUnpublishVolume(
+ const NodeUnpublishVolumeRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Node, GetNodeID), request)
- .then([](const RpcResult<GetNodeIDResponse>& result)
- -> Future<GetNodeIDResponse> {
+ .call(channel, GRPC_RPC(Node, NodeUnpublishVolume), request)
+ .then([](const RpcResult<NodeUnpublishVolumeResponse>& result)
+ -> Future<NodeUnpublishVolumeResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -248,13 +265,13 @@ Future<GetNodeIDResponse> Client::GetNodeID(
}
-Future<NodeProbeResponse> Client::NodeProbe(
- const NodeProbeRequest& request)
+Future<NodeGetIdResponse> Client::NodeGetId(
+ const NodeGetIdRequest& request)
{
return runtime
- .call(channel, GRPC_RPC(Node, NodeProbe), request)
- .then([](const RpcResult<NodeProbeResponse>& result)
- -> Future<NodeProbeResponse> {
+ .call(channel, GRPC_RPC(Node, NodeGetId), request)
+ .then([](const RpcResult<NodeGetIdResponse>& result)
+ -> Future<NodeGetIdResponse> {
if (result.status.ok()) {
return result.response;
} else {
@@ -279,5 +296,6 @@ Future<NodeGetCapabilitiesResponse> Client::NodeGetCapabilities(
});
}
+} // namespace v0 {
} // namespace csi {
} // namespace mesos {
http://git-wip-us.apache.org/repos/asf/mesos/blob/33eb3eb1/src/csi/client.hpp
----------------------------------------------------------------------
diff --git a/src/csi/client.hpp b/src/csi/client.hpp
index 1d55994..5d84674 100644
--- a/src/csi/client.hpp
+++ b/src/csi/client.hpp
@@ -25,6 +25,7 @@
namespace mesos {
namespace csi {
+namespace v0 {
class Client
{
@@ -34,12 +35,15 @@ public:
: channel(_channel), runtime(_runtime) {}
// RPCs for the Identity service.
- process::Future<GetSupportedVersionsResponse>
- GetSupportedVersions(const GetSupportedVersionsRequest& request);
-
process::Future<GetPluginInfoResponse>
GetPluginInfo(const GetPluginInfoRequest& request);
+ process::Future<GetPluginCapabilitiesResponse>
+ GetPluginCapabilities(const GetPluginCapabilitiesRequest& request);
+
+ process::Future<ProbeResponse>
+ Probe(const ProbeRequest& request);
+
// RPCs for the Controller service.
process::Future<CreateVolumeResponse>
CreateVolume(const CreateVolumeRequest& request);
@@ -63,24 +67,24 @@ public:
process::Future<GetCapacityResponse>
GetCapacity(const GetCapacityRequest& request);
- process::Future<ControllerProbeResponse>
- ControllerProbe(const ControllerProbeRequest& request);
-
process::Future<ControllerGetCapabilitiesResponse>
ControllerGetCapabilities(const ControllerGetCapabilitiesRequest& request);
// RPCs for the Node service.
+ process::Future<NodeStageVolumeResponse>
+ NodeStageVolume(const NodeStageVolumeRequest& request);
+
+ process::Future<NodeUnstageVolumeResponse>
+ NodeUnstageVolume(const NodeUnstageVolumeRequest& request);
+
process::Future<NodePublishVolumeResponse>
NodePublishVolume(const NodePublishVolumeRequest& request);
process::Future<NodeUnpublishVolumeResponse>
NodeUnpublishVolume(const NodeUnpublishVolumeRequest& request);
- process::Future<GetNodeIDResponse>
- GetNodeID(const GetNodeIDRequest& request);
-
- process::Future<NodeProbeResponse>
- NodeProbe(const NodeProbeRequest& request);
+ process::Future<NodeGetIdResponse>
+ NodeGetId(const NodeGetIdRequest& request);
process::Future<NodeGetCapabilitiesResponse>
NodeGetCapabilities(const NodeGetCapabilitiesRequest& request);
@@ -90,6 +94,7 @@ private:
process::grpc::client::Runtime runtime;
};
+} // namespace v0 {
} // namespace csi {
} // namespace mesos {
http://git-wip-us.apache.org/repos/asf/mesos/blob/33eb3eb1/src/tests/csi_client_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/csi_client_tests.cpp b/src/tests/csi_client_tests.cpp
index 566a85e..f5b9eac 100644
--- a/src/tests/csi_client_tests.cpp
+++ b/src/tests/csi_client_tests.cpp
@@ -28,7 +28,7 @@
using std::string;
-using mesos::csi::Client;
+using mesos::csi::v0::Client;
using process::Future;
@@ -104,8 +104,9 @@ INSTANTIATE_TEST_CASE_P(
Identity,
CSIClientTest,
Values(
- RPC_PARAM(Client::GetSupportedVersions),
- RPC_PARAM(Client::GetPluginInfo)),
+ RPC_PARAM(Client::GetPluginInfo),
+ RPC_PARAM(Client::GetPluginCapabilities),
+ RPC_PARAM(Client::Probe)),
RPCParam::Printer());
INSTANTIATE_TEST_CASE_P(
@@ -119,7 +120,6 @@ INSTANTIATE_TEST_CASE_P(
RPC_PARAM(Client::ValidateVolumeCapabilities),
RPC_PARAM(Client::ListVolumes),
RPC_PARAM(Client::GetCapacity),
- RPC_PARAM(Client::ControllerProbe),
RPC_PARAM(Client::ControllerGetCapabilities)),
RPCParam::Printer());
@@ -127,10 +127,11 @@ INSTANTIATE_TEST_CASE_P(
Node,
CSIClientTest,
Values(
+ RPC_PARAM(Client::NodeStageVolume),
+ RPC_PARAM(Client::NodeUnstageVolume),
RPC_PARAM(Client::NodePublishVolume),
RPC_PARAM(Client::NodeUnpublishVolume),
- RPC_PARAM(Client::GetNodeID),
- RPC_PARAM(Client::NodeProbe),
+ RPC_PARAM(Client::NodeGetId),
RPC_PARAM(Client::NodeGetCapabilities)),
RPCParam::Printer());
http://git-wip-us.apache.org/repos/asf/mesos/blob/33eb3eb1/src/tests/mock_csi_plugin.cpp
----------------------------------------------------------------------
diff --git a/src/tests/mock_csi_plugin.cpp b/src/tests/mock_csi_plugin.cpp
index 1dc8761..6983b84 100644
--- a/src/tests/mock_csi_plugin.cpp
+++ b/src/tests/mock_csi_plugin.cpp
@@ -19,10 +19,6 @@
using std::string;
using std::unique_ptr;
-using csi::Controller;
-using csi::Identity;
-using csi::Node;
-
using grpc::ChannelArguments;
using grpc::InsecureServerCredentials;
using grpc::Server;
@@ -30,6 +26,10 @@ using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
+using mesos::csi::v0::Controller;
+using mesos::csi::v0::Identity;
+using mesos::csi::v0::Node;
+
using process::grpc::Channel;
using testing::_;
http://git-wip-us.apache.org/repos/asf/mesos/blob/33eb3eb1/src/tests/mock_csi_plugin.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mock_csi_plugin.hpp b/src/tests/mock_csi_plugin.hpp
index b19870d..6f7a5ab 100644
--- a/src/tests/mock_csi_plugin.hpp
+++ b/src/tests/mock_csi_plugin.hpp
@@ -37,34 +37,35 @@ namespace mesos {
namespace internal {
namespace tests {
-#define CSI_METHOD_FOREACH(macro) \
- macro(GetSupportedVersions) \
- macro(GetPluginInfo) \
- macro(CreateVolume) \
- macro(DeleteVolume) \
- macro(ControllerPublishVolume) \
- macro(ControllerUnpublishVolume) \
- macro(ValidateVolumeCapabilities) \
- macro(ListVolumes) \
- macro(GetCapacity) \
- macro(ControllerProbe) \
- macro(ControllerGetCapabilities) \
- macro(NodePublishVolume) \
- macro(NodeUnpublishVolume) \
- macro(GetNodeID) \
- macro(NodeProbe) \
+#define CSI_METHOD_FOREACH(macro) \
+ macro(GetPluginInfo) \
+ macro(GetPluginCapabilities) \
+ macro(Probe) \
+ macro(CreateVolume) \
+ macro(DeleteVolume) \
+ macro(ControllerPublishVolume) \
+ macro(ControllerUnpublishVolume) \
+ macro(ValidateVolumeCapabilities) \
+ macro(ListVolumes) \
+ macro(GetCapacity) \
+ macro(ControllerGetCapabilities) \
+ macro(NodeStageVolume) \
+ macro(NodeUnstageVolume) \
+ macro(NodePublishVolume) \
+ macro(NodeUnpublishVolume) \
+ macro(NodeGetId) \
macro(NodeGetCapabilities)
-#define DECLARE_MOCK_CSI_METHOD(name) \
- MOCK_METHOD3(name, grpc::Status( \
- grpc::ServerContext* context, \
- const csi::name##Request* request, \
- csi::name##Response* response));
+#define DECLARE_MOCK_CSI_METHOD(name) \
+ MOCK_METHOD3(name, grpc::Status( \
+ grpc::ServerContext* context, \
+ const csi::v0::name##Request* request, \
+ csi::v0::name##Response* response));
// Definition of a mock CSI plugin to be used in tests with gmock.
-class MockCSIPlugin : public csi::Identity::Service,
- public csi::Controller::Service,
- public csi::Node::Service
+class MockCSIPlugin : public csi::v0::Identity::Service,
+ public csi::v0::Controller::Service,
+ public csi::v0::Node::Service
{
public:
MockCSIPlugin();