@@ -18,7 +18,6 @@ import (
1818 "github.com/ipfs/fs-repo-migrations/ipfs-10-to-11/_vendor/github.com/ipfs/go-merkledag"
1919
2020 migrate "github.com/ipfs/fs-repo-migrations/go-migrate"
21- lock "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/repolock"
2221 mfsr "github.com/ipfs/fs-repo-migrations/mfsr"
2322 log "github.com/ipfs/fs-repo-migrations/stump"
2423)
@@ -37,14 +36,8 @@ func (m Migration) Apply(opts migrate.Options) error {
3736 log .Verbose = opts .Verbose
3837 log .Log ("applying %s repo migration" , m .Versions ())
3938
40- log .VLog ("locking repo at %q" , opts .Path )
41- lk , err := lock .Lock2 (opts .Path )
39+ err := setupPlugins (opts .Path )
4240 if err != nil {
43- return err
44- }
45- defer lk .Close ()
46-
47- if err = setupPlugins (opts .Path ); err != nil {
4841 log .Error ("failed to setup plugins" , err .Error ())
4942 return err
5043 }
@@ -56,7 +49,18 @@ func (m Migration) Apply(opts migrate.Options) error {
5649 ctx , cancel := context .WithCancel (context .Background ())
5750 defer cancel ()
5851
59- if err = transferPins (ctx , opts .Path ); err != nil {
52+ if ! fsrepo .IsInitialized (opts .Path ) {
53+ return fmt .Errorf ("ipfs repo %q not initialized" , opts .Path )
54+ }
55+
56+ log .VLog (" - opening datastore at %q" , opts .Path )
57+ r , err := fsrepo .Open (opts .Path )
58+ if err != nil {
59+ return fmt .Errorf ("cannot open datastore: %v" , err )
60+ }
61+ defer r .Close ()
62+
63+ if err = transferPins (ctx , r ); err != nil {
6064 log .Error ("failed to transfer pins:" , err .Error ())
6165 return err
6266 }
@@ -75,21 +79,27 @@ func (m Migration) Revert(opts migrate.Options) error {
7579 log .Verbose = opts .Verbose
7680 log .Log ("reverting migration" )
7781
78- lk , err := lock . Lock2 (opts .Path )
82+ err := setupPlugins (opts .Path )
7983 if err != nil {
84+ log .Error ("failed to setup plugins" , err .Error ())
8085 return err
8186 }
82- defer lk .Close ()
8387
84- if err = setupPlugins (opts .Path ); err != nil {
85- log .Error ("failed to setup plugins" , err .Error ())
86- return err
88+ if ! fsrepo .IsInitialized (opts .Path ) {
89+ return fmt .Errorf ("ipfs repo %q not initialized" , opts .Path )
90+ }
91+
92+ log .VLog (" - opening datastore at %q" , opts .Path )
93+ r , err := fsrepo .Open (opts .Path )
94+ if err != nil {
95+ return fmt .Errorf ("cannot open datastore: %v" , err )
8796 }
97+ defer r .Close ()
8898
8999 ctx , cancel := context .WithCancel (context .Background ())
90100 defer cancel ()
91101
92- if err = revertPins (ctx , opts . Path ); err != nil {
102+ if err = revertPins (ctx , r ); err != nil {
93103 return err
94104 }
95105
@@ -165,20 +175,9 @@ func makeStore(r repo.Repo) (datastore.Datastore, format.DAGService, format.DAGS
165175 return dstore , syncDs , syncInternalDag , nil
166176}
167177
168- func transferPins (ctx context.Context , repopath string ) error {
178+ func transferPins (ctx context.Context , r repo. Repo ) error {
169179 log .Log ("> Upgrading pinning to use datastore" )
170180
171- if ! fsrepo .IsInitialized (repopath ) {
172- return fmt .Errorf ("ipfs repo %q not initialized" , repopath )
173- }
174-
175- log .VLog (" - opening datastore at %q" , repopath )
176- r , err := fsrepo .Open (repopath )
177- if err != nil {
178- return fmt .Errorf ("cannot open datastore: %v" , err )
179- }
180- defer r .Close ()
181-
182181 dstore , dserv , internalDag , err := makeStore (r )
183182 if err != nil {
184183 return err
@@ -195,16 +194,9 @@ func transferPins(ctx context.Context, repopath string) error {
195194 return nil
196195}
197196
198- func revertPins (ctx context.Context , repopath string ) error {
197+ func revertPins (ctx context.Context , r repo. Repo ) error {
199198 log .Log ("> Reverting pinning to use ipld storage" )
200199
201- log .VLog (" - opening datastore at %q" , repopath )
202- r , err := fsrepo .Open (repopath )
203- if err != nil {
204- return fmt .Errorf ("cannot open datastore: %v" , err )
205- }
206- defer r .Close ()
207-
208200 dstore , dserv , internalDag , err := makeStore (r )
209201 if err != nil {
210202 return err
0 commit comments