From: John Spray Date: Thu, 19 May 2016 11:55:17 +0000 (+0100) Subject: msg: introduce mgr entity_type_t X-Git-Tag: v11.0.1~60^2~63 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=eaada77fea0e5b63bf5e7c9ab3fa04664d396569;p=ceph.git msg: introduce mgr entity_type_t Mgr will probably ultimately have different auth caps, so let's make it a separate entity up front instead of e.g. pretending to be a mon. Signed-off-by: John Spray --- diff --git a/src/common/ceph_strings.cc b/src/common/ceph_strings.cc index 71c7b08678a6..aebfb22e34c6 100644 --- a/src/common/ceph_strings.cc +++ b/src/common/ceph_strings.cc @@ -9,6 +9,7 @@ const char *ceph_entity_type_name(int type) case CEPH_ENTITY_TYPE_MDS: return "mds"; case CEPH_ENTITY_TYPE_OSD: return "osd"; case CEPH_ENTITY_TYPE_MON: return "mon"; + case CEPH_ENTITY_TYPE_MGR: return "mgr"; case CEPH_ENTITY_TYPE_CLIENT: return "client"; case CEPH_ENTITY_TYPE_AUTH: return "auth"; default: return "unknown"; diff --git a/src/common/entity_name.cc b/src/common/entity_name.cc index 2e0b0cb1d9ef..fbe8bd125dc8 100644 --- a/src/common/entity_name.cc +++ b/src/common/entity_name.cc @@ -33,6 +33,7 @@ static const str_to_entity_type_t STR_TO_ENTITY_TYPE[] = { { CEPH_ENTITY_TYPE_MON, "mon" }, { CEPH_ENTITY_TYPE_OSD, "osd" }, { CEPH_ENTITY_TYPE_MDS, "mds" }, + { CEPH_ENTITY_TYPE_MGR, "mgr" }, { CEPH_ENTITY_TYPE_CLIENT, "client" }, }; diff --git a/src/common/entity_name.h b/src/common/entity_name.h index e9329754762c..d1c6cbcdd7be 100644 --- a/src/common/entity_name.h +++ b/src/common/entity_name.h @@ -58,6 +58,7 @@ struct EntityName uint32_t get_type() const { return type; } bool is_osd() const { return get_type() == CEPH_ENTITY_TYPE_OSD; } + bool is_mgr() const { return get_type() == CEPH_ENTITY_TYPE_MGR; } bool is_mds() const { return get_type() == CEPH_ENTITY_TYPE_MDS; } bool is_client() const { return get_type() == CEPH_ENTITY_TYPE_CLIENT; } bool is_mon() const { return get_type() == CEPH_ENTITY_TYPE_MON; } diff --git a/src/include/msgr.h b/src/include/msgr.h index 4d90d4c7ee23..f60c9dfa4938 100644 --- a/src/include/msgr.h +++ b/src/include/msgr.h @@ -50,6 +50,7 @@ struct ceph_entity_name { #define CEPH_ENTITY_TYPE_MDS 0x02 #define CEPH_ENTITY_TYPE_OSD 0x04 #define CEPH_ENTITY_TYPE_CLIENT 0x08 +#define CEPH_ENTITY_TYPE_MGR 0x10 #define CEPH_ENTITY_TYPE_AUTH 0x20 #define CEPH_ENTITY_TYPE_ANY 0xFF diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index a71c95d94ff1..c7f21e2495c5 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -40,6 +40,7 @@ public: static const int TYPE_MDS = CEPH_ENTITY_TYPE_MDS; static const int TYPE_OSD = CEPH_ENTITY_TYPE_OSD; static const int TYPE_CLIENT = CEPH_ENTITY_TYPE_CLIENT; + static const int TYPE_MGR = CEPH_ENTITY_TYPE_MGR; static const int64_t NEW = -1; @@ -54,6 +55,7 @@ public: static entity_name_t MDS(int64_t i=NEW) { return entity_name_t(TYPE_MDS, i); } static entity_name_t OSD(int64_t i=NEW) { return entity_name_t(TYPE_OSD, i); } static entity_name_t CLIENT(int64_t i=NEW) { return entity_name_t(TYPE_CLIENT, i); } + static entity_name_t MGR(int64_t i=NEW) { return entity_name_t(TYPE_MGR, i); } int64_t num() const { return _num; } int type() const { return _type; } @@ -67,6 +69,7 @@ public: bool is_mds() const { return type() == TYPE_MDS; } bool is_osd() const { return type() == TYPE_OSD; } bool is_mon() const { return type() == TYPE_MON; } + bool is_mgr() const { return type() == TYPE_MGR; } operator ceph_entity_name() const { ceph_entity_name n = { _type, init_le64(_num) }; @@ -92,6 +95,9 @@ public: } else if (strstr(start, "client.") == start) { _type = TYPE_CLIENT; start += 7; + } else if (strstr(start, "mgr.") == start) { + _type = TYPE_MGR; + start += 4; } else { return false; } diff --git a/src/test/cli/ceph-conf/invalid-args.t b/src/test/cli/ceph-conf/invalid-args.t index d0fe553ed007..43cedf2da16d 100644 --- a/src/test/cli/ceph-conf/invalid-args.t +++ b/src/test/cli/ceph-conf/invalid-args.t @@ -8,7 +8,7 @@ [1] $ ceph-conf -c test.conf --name total.garbage - error parsing 'total.garbage': expected string of the form TYPE.ID, valid types are: auth, mon, osd, mds, client + error parsing 'total.garbage': expected string of the form TYPE.ID, valid types are: auth, mon, osd, mds, mgr, client [1] $ ceph-conf -c test.conf -s bar