17 #ifndef __CSI_V0_VOLUME_MANAGER_PROCESS_HPP__ 18 #define __CSI_V0_VOLUME_MANAGER_PROCESS_HPP__ 23 #include <google/protobuf/map.h> 48 #include "csi/state.hpp" 62 const std::string& _rootDir,
63 const CSIPluginInfo& _info,
75 const CSIVolume::VolumeCapability& capability,
76 const google::protobuf::Map<std::string, std::string>& parameters);
79 const std::string&
name,
80 const Bytes& capacity,
81 const CSIVolume::VolumeCapability& capability,
82 const google::protobuf::Map<std::string, std::string>& parameters);
86 const CSIVolume::VolumeCapability& capability,
87 const google::protobuf::Map<std::string, std::string>& parameters);
96 const std::string& volumeId,
111 template <
typename Request,
typename Response>
118 template <
typename Request,
typename Response>
120 const std::string& endpoint,
122 const Request& request);
124 template <
typename Response>
171 void checkpointVolumeState(
const std::string& volumeId);
173 void garbageCollectMountPath(
const std::string& volumeId);
177 void removeVolume(
const std::string& volumeId);
184 const google::protobuf::Map<std::string, Secret>& secrets);
186 const std::string rootDir;
187 const CSIPluginInfo info;
194 const std::string mountRootDir;
204 VolumeData(state::VolumeState&& _state)
207 state::VolumeState state;
221 #endif // __CSI_V0_VOLUME_MANAGER_PROCESS_HPP__ process::Future< Response > call(const Service &service, process::Future< RPCResult< Response >>(Client::*rpc)(Request), const Request &request, bool retry=false)
Definition: option.hpp:29
Future< Response > request(const Request &request, bool streamedResponse=false)
Asynchronously sends an HTTP request to the process and returns the HTTP response once the entire res...
process::Future< process::ControlFlow< Response > > __call(const RPCResult< Response > &result, const Option< Duration > &backoff)
Definition: volume_manager.hpp:48
process::Future< std::vector< VolumeInfo > > listVolumes()
process::Future< Nothing > recover()
Definition: metrics.hpp:28
process::Future< Nothing > publishVolume(const std::string &volumeId, const Option< state::VolumeState > &volumeState=None())
Definition: sequence.hpp:33
A copyable interface to manage an internal runtime process for asynchronous gRPC calls.
Definition: grpc.hpp:157
process::Future< Nothing > detachVolume(const std::string &volumeId)
process::Future< Nothing > attachVolume(const std::string &volumeId)
process::Future< Nothing > unpublishVolume(const std::string &volumeId)
CSIPluginContainerInfo::Service Service
Definition: service_manager.hpp:38
Definition: v0_volume_manager_process.hpp:58
process::Future< VolumeInfo > createVolume(const std::string &name, const Bytes &capacity, const CSIVolume::VolumeCapability &capability, const google::protobuf::Map< std::string, std::string > ¶meters)
process::Future< bool > deleteVolume(const std::string &volumeId)
Definition: resolver.hpp:34
Definition: process.hpp:505
Definition: service_manager.hpp:51
process::Future< RPCResult< Response > > _call(const std::string &endpoint, process::Future< RPCResult< Response >>(Client::*rpc)(Request), const Request &request)
constexpr const char * name
Definition: shell.hpp:41
Definition: v0_client.hpp:35
VolumeManagerProcess(const std::string &_rootDir, const CSIPluginInfo &_info, const hashset< Service > _services, const process::grpc::client::Runtime &_runtime, ServiceManager *_serviceManager, Metrics *_metrics, SecretResolver *_secretResolver)
process::Future< Bytes > getCapacity(const CSIVolume::VolumeCapability &capability, const google::protobuf::Map< std::string, std::string > ¶meters)
process::Future< Option< Error > > validateVolume(const VolumeInfo &volumeInfo, const CSIVolume::VolumeCapability &capability, const google::protobuf::Map< std::string, std::string > ¶meters)