From 3b6aeb986ebc42aba13eb6cd5b14b5bb4ecf32d9 Mon Sep 17 00:00:00 2001 From: Brent Pendergraft Date: Fri, 16 Nov 2018 14:35:46 -0600 Subject: [PATCH] mongo: remove drop dups option and return error if module exists (#913) --- pkg/storage/mongo/mongo.go | 1 - pkg/storage/mongo/saver.go | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/storage/mongo/mongo.go b/pkg/storage/mongo/mongo.go index 721929ff..ff379de5 100644 --- a/pkg/storage/mongo/mongo.go +++ b/pkg/storage/mongo/mongo.go @@ -62,7 +62,6 @@ func (m *ModuleStore) initDatabase() error { index := mgo.Index{ Key: []string{"base_url", "module", "version"}, Unique: true, - DropDups: true, Background: true, Sparse: true, } diff --git a/pkg/storage/mongo/saver.go b/pkg/storage/mongo/saver.go index dad3cd7b..3eb45f4c 100644 --- a/pkg/storage/mongo/saver.go +++ b/pkg/storage/mongo/saver.go @@ -16,6 +16,14 @@ func (s *ModuleStore) Save(ctx context.Context, module, version string, mod []by ctx, span := observ.StartSpan(ctx, op.String()) defer span.End() + exists, err := s.Exists(ctx, module, version) + if err != nil { + return errors.E(op, err, errors.M(module), errors.V(version)) + } + if exists { + return errors.E(op, "already exists", errors.M(module), errors.V(version), errors.KindAlreadyExists) + } + zipName := s.gridFileName(module, version) fs := s.s.DB(s.d).GridFS("fs") f, err := fs.Create(zipName)