]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add 'notieragent' flag to OSDMap
authorSage Weil <sage@inktank.com>
Mon, 27 Jan 2014 23:30:09 +0000 (15:30 -0800)
committerSage Weil <sage@inktank.com>
Sun, 16 Feb 2014 06:09:38 +0000 (22:09 -0800)
This will pause tiering agent work.

Signed-off-by: Sage Weil <sage@inktank.com>
qa/workunits/cephtool/test.sh
src/include/rados.h
src/mon/MonCommands.h
src/mon/OSDMonitor.cc
src/osd/OSDMap.cc

index 04dda5b0e4519b39e02eb00a15590d0bbc6999e7..262cf21f5a2262af03110e1aae541232827a61f5 100755 (executable)
@@ -229,7 +229,7 @@ ceph osd scrub 0
 ceph osd deep-scrub 0
 ceph osd repair 0
 
-for f in noup nodown noin noout noscrub nodeep-scrub nobackfill norecover
+for f in noup nodown noin noout noscrub nodeep-scrub nobackfill norecover notieragent
 do
     ceph osd set $f
     ceph osd unset $f
index 6693f9659ec5e1fd314ee61fc16d65a84e44f967..505676123567d76683289cf50227dd9acc665925 100644 (file)
@@ -141,6 +141,7 @@ extern const char *ceph_osd_state_name(int s);
 #define CEPH_OSDMAP_NORECOVER (1<<10) /* block osd recovery and backfill */
 #define CEPH_OSDMAP_NOSCRUB  (1<<11) /* block periodic scrub */
 #define CEPH_OSDMAP_NODEEP_SCRUB (1<<12) /* block periodic deep-scrub */
+#define CEPH_OSDMAP_NOTIERAGENT (1<<13) /* disable tiering agent */
 
 /*
  * The error code to return when an OSD can't handle a write
index 219229467aeec5341c79a30bd4266e0611129ffc..d80eb6a900c7eb1ccd4d1fcb1b78a6320b36eecf 100644 (file)
@@ -455,10 +455,10 @@ COMMAND("osd setmaxosd " \
 COMMAND("osd pause", "pause osd", "osd", "rw", "cli,rest")
 COMMAND("osd unpause", "unpause osd", "osd", "rw", "cli,rest")
 COMMAND("osd set " \
-       "name=key,type=CephChoices,strings=pause|noup|nodown|noout|noin|nobackfill|norecover|noscrub|nodeep-scrub", \
+       "name=key,type=CephChoices,strings=pause|noup|nodown|noout|noin|nobackfill|norecover|noscrub|nodeep-scrub|notieragent", \
        "set <key>", "osd", "rw", "cli,rest")
 COMMAND("osd unset " \
-       "name=key,type=CephChoices,strings=pause|noup|nodown|noout|noin|nobackfill|norecover|noscrub|nodeep-scrub", \
+       "name=key,type=CephChoices,strings=pause|noup|nodown|noout|noin|nobackfill|norecover|noscrub|nodeep-scrub|notieragent", \
        "unset <key>", "osd", "rw", "cli,rest")
 COMMAND("osd cluster_snap", "take cluster snapshot (disabled)", \
        "osd", "r", "")
index e0bef1f76f91ea006ec2390304470cd3c22b68f6..b25c4248babd39b496ea852a06d56dd89bcf460c 100644 (file)
@@ -2000,7 +2000,8 @@ void OSDMonitor::get_health(list<pair<health_status_t,string> >& summary,
                         CEPH_OSDMAP_NOBACKFILL |
                         CEPH_OSDMAP_NORECOVER |
                         CEPH_OSDMAP_NOSCRUB |
-                        CEPH_OSDMAP_NODEEP_SCRUB)) {
+                        CEPH_OSDMAP_NODEEP_SCRUB |
+                        CEPH_OSDMAP_NOTIERAGENT)) {
       ostringstream ss;
       ss << osdmap.get_flag_string() << " flag(s) set";
       summary.push_back(make_pair(HEALTH_WARN, ss.str()));
@@ -3914,6 +3915,8 @@ bool OSDMonitor::prepare_command_impl(MMonCommand *m,
       return prepare_set_flag(m, CEPH_OSDMAP_NOSCRUB);
     else if (key == "nodeep-scrub")
       return prepare_set_flag(m, CEPH_OSDMAP_NODEEP_SCRUB);
+    else if (key == "notieragent")
+      return prepare_set_flag(m, CEPH_OSDMAP_NOTIERAGENT);
 
   } else if (prefix == "osd unset") {
     string key;
@@ -3936,6 +3939,8 @@ bool OSDMonitor::prepare_command_impl(MMonCommand *m,
       return prepare_unset_flag(m, CEPH_OSDMAP_NOSCRUB);
     else if (key == "nodeep-scrub")
       return prepare_unset_flag(m, CEPH_OSDMAP_NODEEP_SCRUB);
+    else if (key == "notieragent")
+      return prepare_unset_flag(m, CEPH_OSDMAP_NOTIERAGENT);
 
   } else if (prefix == "osd cluster_snap") {
     // ** DISABLE THIS FOR NOW **
index 9bd5da82ea907dfda30e07b4df915319fd045d9f..49d905aef4c5cd28a339d4946aaa5bdf139f8332 100644 (file)
@@ -2089,6 +2089,8 @@ string OSDMap::get_flag_string(unsigned f)
     s += ",noscrub";
   if (f & CEPH_OSDMAP_NODEEP_SCRUB)
     s += ",nodeep-scrub";
+  if (f & CEPH_OSDMAP_NOTIERAGENT)
+    s += ",notieragent";
   if (s.length())
     s = s.erase(0, 1);
   return s;