17 #ifndef __CSI_UTILS_HPP__
18 #define __CSI_UTILS_HPP__
21 #include <type_traits>
23 #include <google/protobuf/map.h>
25 #include <google/protobuf/util/json_util.h>
39 const ControllerServiceCapability& left,
40 const ControllerServiceCapability& right);
46 bool operator==(
const VolumeCapability& left,
const VolumeCapability& right);
65 typename std::enable_if<std::is_convertible<
66 Message*, google::protobuf::Message*>::value,
int>
::type = 0>
67 std::ostream&
operator<<(std::ostream& stream,
const Message& message)
71 google::protobuf::util::MessageToJsonString(message, &output);
72 return stream << output;
85 template <
typename Iterable>
88 foreach (
const auto& capability, capabilities) {
89 if (capability.has_rpc() &&
90 ControllerServiceCapability::RPC::Type_IsValid(
91 capability.rpc().type())) {
92 switch(capability.rpc().type()) {
95 case ControllerServiceCapability::RPC::CREATE_DELETE_VOLUME:
98 case ControllerServiceCapability::RPC::PUBLISH_UNPUBLISH_VOLUME:
101 case ControllerServiceCapability::RPC::LIST_VOLUMES:
104 case ControllerServiceCapability::RPC::GET_CAPACITY:
107 case google::protobuf::kint32min:
108 case google::protobuf::kint32max:
124 std::ostream&
operator<<(std::ostream& stream,
const VolumeState::State& state);
130 #endif // __CSI_UTILS_HPP__
bool operator==(const ControllerServiceCapability &left, const ControllerServiceCapability &right)
ControllerCapabilities()=default
ControllerCapabilities(const Iterable &capabilities)
Definition: utils.hpp:86
bool listVolumes
Definition: utils.hpp:117
std::ostream & operator<<(std::ostream &stream, const VolumeState::State &state)
bool createDeleteVolume
Definition: utils.hpp:115
bool operator!=(const Version &left, const Version &right)
process::Future< Version > version()
Definition: version.hpp:32
const int UNKNOWN
Definition: diagnosis.hpp:39
#define UNREACHABLE()
Definition: unreachable.hpp:22
std::ostream & operator<<(std::ostream &stream, const ControllerServiceCapability::RPC::Type &type)
Type
Definition: capabilities.hpp:79
bool publishUnpublishVolume
Definition: utils.hpp:116
Definition: version.hpp:41
Try< uint32_t > type(const std::string &path)
bool getCapacity
Definition: utils.hpp:118