From 763e5ecd2126f4444bc86cf4e9ed385f86552ca2 Mon Sep 17 00:00:00 2001 From: AKYD <> Date: Wed, 25 May 2022 11:49:04 +0300 Subject: [PATCH] Normalize ceph-ansible version format --- ceph/version.go | 5 +++++ ceph/version_test.go | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ceph/version.go b/ceph/version.go index 1297183..c09ce33 100644 --- a/ceph/version.go +++ b/ceph/version.go @@ -17,6 +17,7 @@ package ceph import ( "errors" "fmt" + "regexp" "strconv" "strings" ) @@ -89,6 +90,10 @@ func (version *Version) String() string { // ParseCephVersion parses the given ceph version string to a *Version or error func ParseCephVersion(cephVersion string) (*Version, error) { + // standardize ceph-ansible version format + var re = regexp.MustCompile(`(\d+\.\d+\.\d+-\d+)\.(.*)`) + cephVersion = re.ReplaceAllString(cephVersion, `$1-$2`) + splitVersion := strings.Split(cephVersion, " ") if len(splitVersion) < 3 { return nil, ErrInvalidVersion diff --git a/ceph/version_test.go b/ceph/version_test.go index 441341b..034cf82 100644 --- a/ceph/version_test.go +++ b/ceph/version_test.go @@ -47,6 +47,12 @@ func TestParseCephVersion(t *testing.T) { want: &Version{Major: 14, Minor: 2, Patch: 18, Revision: 97, Commit: "gcc1e126"}, wantErr: false, }, + { + name: "nautilus-ceph-ansible", + args: args{cephVersion: "ceph version 14.2.11-184.el8cp (44441323476fee97be0ff7a92c6065958c77f1b9) nautilus (stable)"}, + want: &Version{Major: 14, Minor: 2, Patch: 11, Revision: 184, Commit: "el8cp"}, + wantErr: false, + }, { name: "octopus", args: args{cephVersion: "ceph version 15.2.0-1-gcc1e126"},