]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/version: include release name and type in version string
authorSage Weil <sage@redhat.com>
Sat, 27 May 2017 19:38:10 +0000 (15:38 -0400)
committerSage Weil <sage@redhat.com>
Wed, 31 May 2017 02:47:26 +0000 (22:47 -0400)
 ceph version 12.0.2-1687-ge042051 (e0420518d712d87a4882b3a327eaf1d3fcea12df) luminous (dev)

Signed-off-by: Sage Weil <sage@redhat.com>
src/CMakeLists.txt
src/ceph.in
src/ceph_release [new file with mode: 0644]
src/ceph_ver.h.in.cmake
src/common/admin_socket.cc
src/common/version.cc
src/common/version.h

index 3b3350b40862865ce63e794991134e37c485e9cd..51a59058b7b2faf6b859d56a04e92290bf4c4df6 100644 (file)
@@ -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,
+#   <release number, e.g. '12' for luminous>
+#   <release name, e.g. 'luminous'>
+#   <release type: 'dev' for x.0.z, 'rc' or x.1.z, or 'stable' or x.2.z>
+# 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)
index 049c094da02e14408cba7c20c18e380739f5065b..e0c715fb68155489bc705535263da536b46d6c9f 100755 (executable)
@@ -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 (file)
index 0000000..cfcf789
--- /dev/null
@@ -0,0 +1,3 @@
+12
+luminous
+dev
index 9c269cdf500cf14a620658a5ba37177c4539c1ef..d7e1c8e9bddff8ebc129820375f759dc5b74dd15 100644 (file)
@@ -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
index 711d2040b170f9422e078a5f2d5b24f1b9c9d9d0..00bf9edbcdeda5791af7be180bd179dfb2758071 100644 (file)
@@ -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);
index d5ce748ddd90467691195938c81484785e0e5e18..addfafb8724d43556039cd15adea611be37275ec 100644 (file)
  *
  */
 
+#include <string.h>
+
 #include "ceph_ver.h"
 #include "common/version.h"
+#include "include/rados.h"
 
 #include <sstream>
 
@@ -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;
+}
index fae88f835a7ee883fb1487ed005d841bdea6e502..3d9d6622ccd709f8e76d2c47b3f9efa8f8189f6b 100644 (file)
@@ -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