From: Sage Weil Date: Sat, 27 May 2017 19:38:10 +0000 (-0400) Subject: common/version: include release name and type in version string X-Git-Tag: v12.1.0~263^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=32f10b36529924d982093ad3b8e199d6e89664ee;p=ceph.git common/version: include release name and type in version string ceph version 12.0.2-1687-ge042051 (e0420518d712d87a4882b3a327eaf1d3fcea12df) luminous (dev) Signed-off-by: Sage Weil --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3b3350b40862..51a59058b7b2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -202,6 +202,8 @@ endif(USE_NSS) set(GCOV_PREFIX_STRIP 4) +# the src/.git_version file may be written out by make-dist; otherwise +# we pull the git version from .git option(ENABLE_GIT_VERSION "build Ceph with git version string" ON) if(${ENABLE_GIT_VERSION}) get_git_head_revision(GIT_REFSPEC CEPH_GIT_VER) @@ -220,6 +222,17 @@ else(${ENABLE_GIT_VERSION}) set(CEPH_GIT_NICE_VER "Development") endif(${ENABLE_GIT_VERSION}) +# the src/ceph_release file is 3 lines, +# +# +# +# note that the release name is semi-redundant and must match CEPH_RELEASE_* +# definitions in include/rados.h and common/ceph_strings.c. +file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/ceph_release CEPH_RELEASE_FILE) +list(GET CEPH_RELEASE_FILE 0 CEPH_RELEASE) +list(GET CEPH_RELEASE_FILE 1 CEPH_RELEASE_NAME) +list(GET CEPH_RELEASE_FILE 2 CEPH_RELEASE_TYPE) + option(WITH_OCF "build OCF-compliant cluster resource agent" OFF) if(WITH_OCF) add_subdirectory(ocf) diff --git a/src/ceph.in b/src/ceph.in index 049c094da02e..e0c715fb6815 100755 --- a/src/ceph.in +++ b/src/ceph.in @@ -32,6 +32,9 @@ except NameError: CEPH_GIT_VER="@CEPH_GIT_VER@" CEPH_GIT_NICE_VER="@CEPH_GIT_NICE_VER@" +CEPH_RELEASE="@CEPH_RELEASE@" +CEPH_RELEASE_NAME="@CEPH_RELEASE_NAME@" +CEPH_RELEASE_TYPE="@CEPH_RELEASE_TYPE@" # Flags from src/mon/Monitor.h FLAG_NOFORWARD = (1 << 0) @@ -780,7 +783,11 @@ def main(): parser, parsed_args, childargs = parse_cmdargs() if parsed_args.version: - print('ceph version {0} ({1})'.format(CEPH_GIT_NICE_VER, CEPH_GIT_VER)) # noqa + print('ceph version {0} ({1}) {2} ({3})'.format( + CEPH_GIT_NICE_VER, + CEPH_GIT_VER, + CEPH_RELEASE_NAME, + CEPH_RELEASE_TYPE)) # noqa return 0 global verbose diff --git a/src/ceph_release b/src/ceph_release new file mode 100644 index 000000000000..cfcf789ecc22 --- /dev/null +++ b/src/ceph_release @@ -0,0 +1,3 @@ +12 +luminous +dev diff --git a/src/ceph_ver.h.in.cmake b/src/ceph_ver.h.in.cmake index 9c269cdf500c..d7e1c8e9bddf 100644 --- a/src/ceph_ver.h.in.cmake +++ b/src/ceph_ver.h.in.cmake @@ -3,5 +3,8 @@ #define CEPH_GIT_VER @CEPH_GIT_VER@ #define CEPH_GIT_NICE_VER "@CEPH_GIT_NICE_VER@" +#define CEPH_RELEASE @CEPH_RELEASE@ +#define CEPH_RELEASE_NAME "@CEPH_RELEASE_NAME@" +#define CEPH_RELEASE_TYPE "@CEPH_RELEASE_TYPE@" #endif diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index 711d2040b170..00bf9edbcded 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -509,10 +509,13 @@ public: } else { JSONFormatter jf; jf.open_object_section("version"); - if (command == "version") + if (command == "version") { jf.dump_string("version", ceph_version_to_str()); - else if (command == "git_version") + jf.dump_string("release", ceph_release_name(ceph_release())); + jf.dump_string("release_type", ceph_release_type()); + } else if (command == "git_version") { jf.dump_string("git_version", git_version_to_str()); + } ostringstream ss; jf.close_section(); jf.flush(ss); diff --git a/src/common/version.cc b/src/common/version.cc index d5ce748ddd90..addfafb8724d 100644 --- a/src/common/version.cc +++ b/src/common/version.cc @@ -12,8 +12,11 @@ * */ +#include + #include "ceph_ver.h" #include "common/version.h" +#include "include/rados.h" #include @@ -33,7 +36,19 @@ const char *git_version_to_str(void) std::string const pretty_version_to_str(void) { std::ostringstream oss; - oss << "ceph version " << CEPH_GIT_NICE_VER << " (" - << STRINGIFY(CEPH_GIT_VER) << ")"; + oss << "ceph version " << " " << CEPH_GIT_NICE_VER + << " (" << STRINGIFY(CEPH_GIT_VER) << ") " + << ceph_release_name(CEPH_RELEASE) + << " (" << CEPH_RELEASE_TYPE << ")"; return oss.str(); } + +unsigned ceph_release(void) +{ + return CEPH_RELEASE; +} + +const char *ceph_release_type(void) +{ + return CEPH_RELEASE_TYPE; +} diff --git a/src/common/version.h b/src/common/version.h index fae88f835a7e..3d9d6622ccd7 100644 --- a/src/common/version.h +++ b/src/common/version.h @@ -26,4 +26,11 @@ const char *git_version_to_str(void); // Return a formatted string describing the ceph and git versions std::string const pretty_version_to_str(void); +// Release number (e.g., 12 for luminous); see CEPH_RELEASE_* in include/rados.h +// and use const char *ceph_release_name(int) to translate to a string. +unsigned ceph_release(void); + +// Release type ("dev", "rc", or "stable") +const char *ceph_release_type(void); + #endif