File tree 2 files changed +49
-21
lines changed
2 files changed +49
-21
lines changed Original file line number Diff line number Diff line change 5
5
package cli
6
6
7
7
import (
8
- "fmt"
9
- "os"
10
-
11
- log "github.com/scaleway/scaleway-cli/vendor/github.com/Sirupsen/logrus"
8
+ "github.com/scaleway/scaleway-cli/pkg/commands"
9
+ "github.com/scaleway/scaleway-cli/vendor/github.com/Sirupsen/logrus"
12
10
)
13
11
14
12
var cmdRestart = & Command {
@@ -25,28 +23,21 @@ func init() {
25
23
// Flags
26
24
var restartHelp bool // -h, --help flag
27
25
28
- func runRestart (cmd * Command , args []string ) {
26
+ func runRestart (cmd * Command , rawArgs []string ) {
29
27
if restartHelp {
30
28
cmd .PrintUsage ()
31
29
}
32
- if len (args ) < 1 {
30
+ if len (rawArgs ) < 1 {
33
31
cmd .PrintShortUsage ()
34
32
}
35
33
36
- hasError := false
37
- for _ , needle := range args {
38
- server := cmd .API .GetServerID (needle )
39
- err := cmd .API .PostServerAction (server , "reboot" )
40
- if err != nil {
41
- if err .Error () != "server is being stopped or rebooted" {
42
- log .Errorf ("failed to restart server %s: %s" , server , err )
43
- hasError = true
44
- }
45
- } else {
46
- fmt .Println (needle )
47
- }
48
- if hasError {
49
- os .Exit (1 )
50
- }
34
+ args := commands.RestartArgs {
35
+ Servers : rawArgs ,
36
+ }
37
+ ctx := cmd .GetContext (rawArgs )
38
+ err := commands .RunRestart (ctx , args )
39
+ if err != nil {
40
+ logrus .Fatalf ("Cannot execute 'restart': %v" , err )
51
41
}
42
+
52
43
}
Original file line number Diff line number Diff line change
1
+ // Copyright (C) 2015 Scaleway. All rights reserved.
2
+ // Use of this source code is governed by a MIT-style
3
+ // license that can be found in the LICENSE.md file.
4
+
5
+ package commands
6
+
7
+ import (
8
+ "fmt"
9
+
10
+ "github.com/scaleway/scaleway-cli/vendor/github.com/Sirupsen/logrus"
11
+ )
12
+
13
+ // RestartArgs are flags for the `RunRestart` function
14
+ type RestartArgs struct {
15
+ Servers []string
16
+ }
17
+
18
+ // RunRestart is the handler for 'scw restart'
19
+ func RunRestart (ctx CommandContext , args RestartArgs ) error {
20
+ hasError := false
21
+ for _ , needle := range args .Servers {
22
+ server := ctx .API .GetServerID (needle )
23
+ err := ctx .API .PostServerAction (server , "reboot" )
24
+ if err != nil {
25
+ if err .Error () != "server is being stopped or rebooted" {
26
+ logrus .Errorf ("failed to restart server %s: %s" , server , err )
27
+ hasError = true
28
+ }
29
+ } else {
30
+ fmt .Fprintln (ctx .Stdout , needle )
31
+ }
32
+ if hasError {
33
+ return fmt .Errorf ("at least 1 server failed to restart" )
34
+ }
35
+ }
36
+ return nil
37
+ }
You can’t perform that action at this time.
0 commit comments