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 2019/04/03 23:13:59 UTC
[mesos] 02/15: Adapted the unversioned `VolumeCapability`.
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 8bab02a44d3c6ce51398b92adba540d60191cf2c
Author: Chun-Hung Hsiao <ch...@apache.org>
AuthorDate: Mon Apr 1 23:23:41 2019 -0700
Adapted the unversioned `VolumeCapability`.
This patch makes the disk profile adaptor module API and the CSI volume
state protobuf to use the unversioned `VolumeCapability`, so the profile
adaptors and the volume state checkpoints can be upgraded to support CSI
v1 in a backward compatible way.
The `DiskProfileMapping` protobuf used by `UriDiskProfileAdaptor`,
however, still uses CSI v0 `VolumeCapability` for now, and devolve it
to the unversioned protobuf during profile translation.
Review: https://reviews.apache.org/r/70248/
---
.../resource_provider/storage/disk_profile_adaptor.hpp | 6 +++---
src/csi/state.proto | 4 ++--
src/resource_provider/state.proto | 6 +++---
src/resource_provider/storage/disk_profile_adaptor.cpp | 2 --
src/resource_provider/storage/provider.cpp | 16 ++++++++++------
.../storage/uri_disk_profile_adaptor.cpp | 4 +---
.../storage/uri_disk_profile_adaptor.hpp | 2 --
src/tests/disk_profile_adaptor_tests.cpp | 6 +++++-
8 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/include/mesos/resource_provider/storage/disk_profile_adaptor.hpp b/include/mesos/resource_provider/storage/disk_profile_adaptor.hpp
index 739585b..8b6da3a 100644
--- a/include/mesos/resource_provider/storage/disk_profile_adaptor.hpp
+++ b/include/mesos/resource_provider/storage/disk_profile_adaptor.hpp
@@ -21,10 +21,10 @@
#include <string>
#include <tuple>
-#include <csi/spec.hpp>
-
#include <mesos/mesos.hpp>
+#include <mesos/csi/types.hpp>
+
#include <process/future.hpp>
#include <stout/hashset.hpp>
@@ -63,7 +63,7 @@ public:
* of `VolumeCapability` objects, the module will only allow a single
* `VolumeCapability`.
*/
- csi::v0::VolumeCapability capability;
+ csi::types::VolumeCapability capability;
/**
* Free-form key-value pairs which should be passed into the body
diff --git a/src/csi/state.proto b/src/csi/state.proto
index b5ccf16..b7213ed 100644
--- a/src/csi/state.proto
+++ b/src/csi/state.proto
@@ -16,7 +16,7 @@
syntax = "proto3";
-import "csi.proto";
+import "mesos/csi/types.proto";
package mesos.csi.state;
@@ -44,7 +44,7 @@ message VolumeState {
State state = 1;
// The capability used to publish the volume. This is a REQUIRED field.
- .csi.v0.VolumeCapability volume_capability = 2;
+ types.VolumeCapability volume_capability = 2;
// The parameters used when creating the volume. This is an OPTIONAL field.
map<string, string> parameters = 6;
diff --git a/src/resource_provider/state.proto b/src/resource_provider/state.proto
index eb56a91..e19d609 100644
--- a/src/resource_provider/state.proto
+++ b/src/resource_provider/state.proto
@@ -16,10 +16,10 @@
syntax = "proto2";
-import "csi.proto";
-
import "mesos/mesos.proto";
+import "mesos/csi/types.proto";
+
package mesos.resource_provider;
option java_package = "org.apache.mesos.resource_provider";
@@ -38,7 +38,7 @@ message ResourceProviderState {
// Describes a manifest of CSI properties associated with a profile.
// See DiskProfileAdaptor::ProfileInfo.
message ProfileInfo {
- required .csi.v0.VolumeCapability capability = 1;
+ required csi.types.VolumeCapability capability = 1;
map<string, string> parameters = 2;
}
diff --git a/src/resource_provider/storage/disk_profile_adaptor.cpp b/src/resource_provider/storage/disk_profile_adaptor.cpp
index b4551a6..262f313 100644
--- a/src/resource_provider/storage/disk_profile_adaptor.cpp
+++ b/src/resource_provider/storage/disk_profile_adaptor.cpp
@@ -16,8 +16,6 @@
#include <string>
-#include <csi/spec.hpp>
-
#include <mesos/module/disk_profile_adaptor.hpp>
#include <mesos/resource_provider/storage/disk_profile_adaptor.hpp>
diff --git a/src/resource_provider/storage/provider.cpp b/src/resource_provider/storage/provider.cpp
index 7c14ff1..b762bb5 100644
--- a/src/resource_provider/storage/provider.cpp
+++ b/src/resource_provider/storage/provider.cpp
@@ -1784,7 +1784,8 @@ Future<Nothing> StorageLocalResourceProviderProcess::controllerPublish(
csi::v0::ControllerPublishVolumeRequest request;
request.set_volume_id(volumeId);
request.set_node_id(nodeId.get());
- *request.mutable_volume_capability() = volume.state.volume_capability();
+ *request.mutable_volume_capability() =
+ csi::v0::evolve(volume.state.volume_capability());
request.set_readonly(false);
*request.mutable_volume_attributes() = volume.state.volume_attributes();
@@ -1891,7 +1892,8 @@ Future<Nothing> StorageLocalResourceProviderProcess::nodeStage(
request.set_volume_id(volumeId);
*request.mutable_publish_info() = volume.state.publish_info();
request.set_staging_target_path(stagingPath);
- *request.mutable_volume_capability() = volume.state.volume_capability();
+ *request.mutable_volume_capability() =
+ csi::v0::evolve(volume.state.volume_capability());
*request.mutable_volume_attributes() = volume.state.volume_attributes();
return call<csi::v0::NODE_STAGE_VOLUME>(csi::NODE_SERVICE, std::move(request))
@@ -1993,7 +1995,8 @@ Future<Nothing> StorageLocalResourceProviderProcess::nodePublish(
request.set_volume_id(volumeId);
*request.mutable_publish_info() = volume.state.publish_info();
request.set_target_path(targetPath);
- *request.mutable_volume_capability() = volume.state.volume_capability();
+ *request.mutable_volume_capability() =
+ csi::v0::evolve(volume.state.volume_capability());
request.set_readonly(false);
*request.mutable_volume_attributes() = volume.state.volume_attributes();
@@ -2087,7 +2090,7 @@ Future<string> StorageLocalResourceProviderProcess::createVolume(
request.set_name(name);
request.mutable_capacity_range()->set_required_bytes(capacity.bytes());
request.mutable_capacity_range()->set_limit_bytes(capacity.bytes());
- *request.add_volume_capabilities() = profileInfo.capability;
+ *request.add_volume_capabilities() = csi::v0::evolve(profileInfo.capability);
*request.mutable_parameters() = profileInfo.parameters;
return call<csi::v0::CREATE_VOLUME>(
@@ -2276,7 +2279,7 @@ Future<Nothing> StorageLocalResourceProviderProcess::validateVolume(
// once we get CSI v1.
csi::v0::ValidateVolumeCapabilitiesRequest request;
request.set_volume_id(volumeId);
- *request.add_volume_capabilities() = profileInfo.capability;
+ *request.add_volume_capabilities() = csi::v0::evolve(profileInfo.capability);
*request.mutable_volume_attributes() = volumeAttributes;
return call<csi::v0::VALIDATE_VOLUME_CAPABILITIES>(
@@ -2365,7 +2368,8 @@ Future<Resources> StorageLocalResourceProviderProcess::getCapacities()
const DiskProfileAdaptor::ProfileInfo& profileInfo,
profileInfos) {
csi::v0::GetCapacityRequest request;
- *request.add_volume_capabilities() = profileInfo.capability;
+ *request.add_volume_capabilities() =
+ csi::v0::evolve(profileInfo.capability);
*request.mutable_parameters() = profileInfo.parameters;
futures.push_back(
diff --git a/src/resource_provider/storage/uri_disk_profile_adaptor.cpp b/src/resource_provider/storage/uri_disk_profile_adaptor.cpp
index cb574be..25b789d 100644
--- a/src/resource_provider/storage/uri_disk_profile_adaptor.cpp
+++ b/src/resource_provider/storage/uri_disk_profile_adaptor.cpp
@@ -20,8 +20,6 @@
#include <string>
#include <tuple>
-#include <csi/spec.hpp>
-
#include <mesos/type_utils.hpp>
#include <mesos/module/disk_profile_adaptor.hpp>
@@ -132,7 +130,7 @@ Future<DiskProfileAdaptor::ProfileInfo>
}
return DiskProfileAdaptor::ProfileInfo{
- manifest.volume_capabilities(),
+ csi::v0::devolve(manifest.volume_capabilities()),
manifest.create_parameters()
};
}
diff --git a/src/resource_provider/storage/uri_disk_profile_adaptor.hpp b/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
index 7e610d3..a5a34dc 100644
--- a/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
+++ b/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
@@ -20,8 +20,6 @@
#include <string>
#include <tuple>
-#include <csi/spec.hpp>
-
#include <mesos/resource_provider/storage/disk_profile_adaptor.hpp>
#include <process/future.hpp>
diff --git a/src/tests/disk_profile_adaptor_tests.cpp b/src/tests/disk_profile_adaptor_tests.cpp
index 0ccbc79..84e5cb0 100644
--- a/src/tests/disk_profile_adaptor_tests.cpp
+++ b/src/tests/disk_profile_adaptor_tests.cpp
@@ -19,6 +19,10 @@
#include <tuple>
#include <vector>
+#include <csi/spec.hpp>
+
+#include <mesos/csi/types.hpp>
+
#include <mesos/module/disk_profile_adaptor.hpp>
#include <mesos/resource_provider/storage/disk_profile_adaptor.hpp>
@@ -483,7 +487,7 @@ TEST_F(UriDiskProfileAdaptorTest, FetchFromFile)
AWAIT_ASSERT_READY(mapping);
ASSERT_TRUE(mapping->capability.has_block());
ASSERT_EQ(
- csi::v0::VolumeCapability::AccessMode::MULTI_NODE_SINGLE_WRITER,
+ csi::types::VolumeCapability::AccessMode::MULTI_NODE_SINGLE_WRITER,
mapping->capability.access_mode().mode());
Clock::resume();