off += data_len;
left -= data_len;
}
- ASSERT_EQ(0, left);
+ ASSERT_EQ(0U, left);
free(result);
printf("verified\n");
off += data_len;
left -= data_len;
}
- ASSERT_EQ(0, left);
+ ASSERT_EQ(0U, left);
free(result);
printf("verified\n");
off += data_len;
left -= data_len;
}
- ASSERT_EQ(0, left);
+ ASSERT_EQ(0U, left);
printf("verified\n");
*passed = true;
}
-void writesame_test_data(librbd::Image& image, const char *test_data, off_t off, size_t len,
- size_t data_len, uint32_t iohint, bool *passed)
+void writesame_test_data(librbd::Image& image, const char *test_data, off_t off,
+ ssize_t len, size_t data_len, uint32_t iohint,
+ bool *passed)
{
ssize_t written;
ceph::bufferlist bl;
off += data_len;
left -= data_len;
}
- ASSERT_EQ(0, left);
+ ASSERT_EQ(0U, left);
printf("verified\n");
*passed = true;
// template definitions
#include "tools/rbd_mirror/InstanceWatcher.cc"
-template class rbd::mirror::InstanceWatcher<librbd::MockTestImageCtx>;
namespace rbd {
namespace mirror {
v = boost::any(format);
}
+void validate(boost::any& v, const std::vector<std::string>& values,
+ Secret *target_type, int) {
+ std::cerr << "rbd: --secret is deprecated, use --keyfile" << std::endl;
+
+ po::validators::check_first_occurrence(v);
+ const std::string &s = po::validators::get_single_string(values);
+ g_conf->set_val_or_die("keyfile", s.c_str());
+ v = boost::any(s);
+}
+
} // namespace argument_types
} // namespace rbd
struct ExportFormat {};
-void validate(boost::any& v, const std::vector<std::string>& values,
- ExportFormat *target_type, int);
+struct Secret {};
void add_export_format_option(boost::program_options::options_description *opt);
std::string get_short_features_help(bool append_suffix);
std::string get_long_features_help();
+void validate(boost::any& v, const std::vector<std::string>& values,
+ ExportFormat *target_type, int);
void validate(boost::any& v, const std::vector<std::string>& values,
ImageSize *target_type, int);
void validate(boost::any& v, const std::vector<std::string>& values,
Format *target_type, int);
void validate(boost::any& v, const std::vector<std::string>& values,
JournalObjectSize *target_type, int);
+void validate(boost::any& v, const std::vector<std::string>& values,
+ Secret *target_type, int);
+
std::ostream &operator<<(std::ostream &os, const ImageFeatures &features);
static const std::string HELP_SPEC("help");
static const std::string BASH_COMPLETION_SPEC("bash-completion");
-struct Secret {};
-
-void validate(boost::any& v, const std::vector<std::string>& values,
- Secret *target_type, int) {
- std::cerr << "rbd: --secret is deprecated, use --keyfile" << std::endl;
-
- po::validators::check_first_occurrence(v);
- const std::string &s = po::validators::get_single_string(values);
- g_conf->set_val_or_die("keyfile", s.c_str());
- v = boost::any(s);
-}
-
std::string format_command_spec(const Shell::CommandSpec &spec) {
return joinify<std::string>(spec.begin(), spec.end(), " ");
}
("user", po::value<std::string>(), "client id (without 'client.' prefix)")
("name,n", po::value<std::string>(), "client name")
("mon_host,m", po::value<std::string>(), "monitor host")
- ("secret", po::value<Secret>(), "path to secret key (deprecated)")
+ ("secret", po::value<at::Secret>(), "path to secret key (deprecated)")
("keyfile,K", po::value<std::string>(), "path to secret key")
("keyring,k", po::value<std::string>(), "path to keyring");
}