diff --git a/driver/swift.go b/driver/swift.go index 2f62eb39..0c1e4fe9 100644 --- a/driver/swift.go +++ b/driver/swift.go @@ -58,9 +58,14 @@ func NewSwiftDriver(source *models.Source) (Driver, error) { return nil, fmt.Errorf("Unable to get container by name '%s', inner error: %s", source.OpenStack.Container, err.Error()) } - initialVersion, err := semver.Parse(source.InitialVersion) - if err != nil { - return nil, fmt.Errorf("Initial version was not a valid sem ver: %s", err.Error()) + var initialVersion semver.Version + if source.InitialVersion != "" { + initialVersion, err = semver.Parse(source.InitialVersion) + if err != nil { + return nil, fmt.Errorf("Initial version was not a valid sem ver: %s", err.Error()) + } + } else { + initialVersion = semver.Version{Major: 0, Minor: 0, Patch: 0} } driver := &SwiftDriver{ diff --git a/driver/swift_test.go b/driver/swift_test.go index b03da54d..c34aaba7 100644 --- a/driver/swift_test.go +++ b/driver/swift_test.go @@ -183,6 +183,16 @@ var _ = Describe("Swift", func() { Expect(semVers).To(HaveLen(1)) Expect(semVers[0].String()).To(Equal("2.0.10")) }) + + It("the initial version is optional", func() { + driver, err := newTestSwiftDriver("", "testitem4.txt") + defer deleteObject("testitem4.txt") + Expect(err).To(BeNil()) + + semVers, err := driver.Check(nil) + Expect(err).To(BeNil()) + Expect(semVers).To(HaveLen(0)) + }) }) func newTestSwiftDriver(initialVersion string, itemName string) (Driver, error) {