]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmonctl: send data payload
authorSage Weil <sage@newdream.net>
Thu, 28 Feb 2008 00:52:13 +0000 (16:52 -0800)
committerSage Weil <sage@newdream.net>
Thu, 28 Feb 2008 00:52:13 +0000 (16:52 -0800)
src/cmonctl.cc

index 67f920cefbe4c8657e888415c13bc13edb0f82ba..2f4ecc554f8015a7eababac30fb82d485acb0f92 100644 (file)
@@ -79,11 +79,22 @@ int main(int argc, const char **argv, const char *envp[]) {
 
   vec_to_argv(args, argc, argv);
 
+  bufferlist indata;
   vector<const char*> nargs;
   for (unsigned i=0; i<args.size(); i++) {
     if (strcmp(args[i],"-o") == 0) 
       outfile = args[++i];
-    else 
+    else if (strcmp(args[i], "-i") == 0) {
+      int fd = ::open(args[++i], O_RDONLY);
+      struct stat st;
+      if (::fstat(fd, &st) == 0) {
+       indata.push_back(buffer::create(st.st_size));
+       indata.zero();
+       ::read(fd, indata.c_str(), st.st_size);
+       ::close(fd);
+       cout << "read " << st.st_size << " bytes from " << args[i] << std::endl;
+      }
+    } else
       nargs.push_back(args[i]);
   }
 
@@ -101,6 +112,7 @@ int main(int argc, const char **argv, const char *envp[]) {
   
   // build command
   MMonCommand *m = new MMonCommand(messenger->get_myinst());
+  m->set_data(indata);
   string cmd;
   for (unsigned i=0; i<nargs.size(); i++) {
     if (i) cmd += " ";