code.vegaprotocol.io/vega@v0.79.0/cmd/data-node/commands/unsafe_reset_all.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package commands 17 18 import ( 19 "context" 20 "fmt" 21 22 "code.vegaprotocol.io/vega/cmd/data-node/commands/start" 23 "code.vegaprotocol.io/vega/datanode/config" 24 "code.vegaprotocol.io/vega/logging" 25 "code.vegaprotocol.io/vega/paths" 26 27 "github.com/jessevdk/go-flags" 28 ) 29 30 type UnsafeResetAllCmd struct { 31 config.VegaHomeFlag 32 *config.Config 33 } 34 35 //nolint:unparam 36 func (cmd *UnsafeResetAllCmd) Execute(_ []string) error { 37 ctx, cfunc := context.WithCancel(context.Background()) 38 defer cfunc() 39 log := logging.NewLoggerFromConfig( 40 logging.NewDefaultConfig(), 41 ) 42 defer log.AtExit() 43 44 vegaPaths := paths.New(cmd.VegaHome) 45 46 cfgLoader, err := config.InitialiseLoader(vegaPaths) 47 if err != nil { 48 return fmt.Errorf("couldn't initialise configuration loader: %w", err) 49 } 50 51 cmd.Config, err = cfgLoader.Get() 52 if err != nil { 53 return fmt.Errorf("failed to load configuration: %w", err) 54 } 55 56 connConfig := cmd.Config.SQLStore.ConnectionConfig 57 if start.ResetDatabaseAndNetworkHistory(ctx, log, vegaPaths, connConfig); err != nil { 58 return fmt.Errorf("failed to reset database and network history: %w", err) 59 } 60 61 return nil 62 } 63 64 var unsafeResetCmd UnsafeResetAllCmd 65 66 func UnsafeResetAll(_ context.Context, parser *flags.Parser) error { 67 unsafeResetCmd = UnsafeResetAllCmd{} 68 69 _, err := parser.AddCommand("unsafe_reset_all", "(unsafe) Remove all application state", "(unsafe) Remove all datanode application state (wipes the database and removes all network history)", &unsafeResetCmd) 70 return err 71 }