Skip to content

Commit 6ad7ed0

Browse files
author
olegs-codefresh
committed
Add verbose mode
1 parent 803793b commit 6ad7ed0

24 files changed

+2184
-38
lines changed

Godeps/Godeps.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ Run `stevedore create --token {Codefresh JWT token}` to add all cluster from you
1414
# Todo:
1515
* [ ] Tests!
1616
* [ ] Support interactive mode
17-
* [ ] Support verbose/debug mode
17+
* [X] Support verbose/debug mode
1818
* [ ] Support service-accounts from not default namespace

cli.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"os"
66

7+
log "github.com/sirupsen/logrus"
78
"github.com/urfave/cli"
89
)
910

@@ -27,7 +28,27 @@ func setupCommands(app *cli.App) {
2728
Name: "create",
2829
Description: "Create clusters in Codefresh",
2930
Action: create,
31+
Before: func(c *cli.Context) error {
32+
log.SetLevel(log.WarnLevel)
33+
log.SetFormatter(&log.TextFormatter{})
34+
if c.IsSet("verbose") {
35+
log.SetLevel(log.InfoLevel)
36+
}
37+
38+
url := os.Getenv("CODEFRESH_URL")
39+
if url != "" {
40+
log.SetLevel(log.DebugLevel)
41+
log.Debug(fmt.Sprintf("Using other url %s\n", url))
42+
baseCodefreshURL = url
43+
}
44+
45+
return nil
46+
},
3047
Flags: []cli.Flag{
48+
cli.BoolFlag{
49+
Name: "verbose, v",
50+
Usage: "Turn on verbose mode, default is Warning",
51+
},
3152
cli.StringFlag{
3253
Name: "token",
3354
Usage: "Codefresh JWT token",

create-clusters.go

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"fmt"
77
"io/ioutil"
88
"net/http"
9-
"os"
109
"strings"
1110

11+
log "github.com/sirupsen/logrus"
1212
"github.com/urfave/cli"
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
"k8s.io/client-go/kubernetes"
@@ -19,16 +19,8 @@ import (
1919

2020
var baseCodefreshURL = "https://g.codefresh.io/"
2121

22-
func init() {
23-
// used to debug
24-
url := os.Getenv("CODEFRESH_URL")
25-
if url != "" {
26-
fmt.Printf("Using other url %s\n", url)
27-
baseCodefreshURL = url
28-
}
29-
}
30-
3122
func create(cli *cli.Context) {
23+
3224
cnf := clientcmd.GetConfigFromFileOrDie(kubeConfigPath)
3325
c := *cnf
3426
override := clientcmd.ConfigOverrides{
@@ -37,57 +29,54 @@ func create(cli *cli.Context) {
3729
},
3830
}
3931
for contextName := range c.Contexts {
40-
fmt.Println("Found context", contextName)
32+
logger := log.WithFields(log.Fields{
33+
"context_name": contextName,
34+
})
35+
logger.Info("Found context")
4136
config := clientcmd.NewNonInteractiveClientConfig(c, contextName, &override, nil)
4237
clientCnf, e := config.ClientConfig()
4338

4439
if e != nil {
45-
fmt.Println("Error!!")
46-
fmt.Println(e)
47-
fmt.Printf("\n\n")
40+
msg := fmt.Sprintf("Failed to create config with error:\n%s\n\n", e)
41+
logger.Warn(msg)
4842
continue
4943
}
50-
fmt.Println("Created config for context", contextName)
44+
logger.Info("Created config for context")
5145

5246
clientset, e := kubernetes.NewForConfig(clientCnf)
5347
if e != nil {
54-
fmt.Println(e)
55-
fmt.Printf("\n\n")
48+
msg := fmt.Sprintf("Failed to create kubernetes client with error:\n%s\n\n", e)
49+
logger.Warn(msg)
5650
continue
5751
}
58-
fmt.Println("Created client set for context", contextName)
52+
logger.Info("Created client set for context")
5953

6054
sa, e := clientset.CoreV1().ServiceAccounts("default").Get("default", metav1.GetOptions{})
6155
if e != nil {
62-
fmt.Println("Error!!")
63-
fmt.Println(e)
64-
fmt.Printf("\n\n")
56+
msg := fmt.Sprintf("Failed to get service account token with error:\n%s\n\n", e)
57+
logger.Warn(msg)
6558
continue
6659
}
6760
secretName := string(sa.Secrets[0].Name)
6861
namespace := sa.Secrets[0].Namespace
69-
fmt.Printf("Found service account accisiated with secret: %s on context %s in namespace %s\n", secretName, contextName, namespace)
62+
logger.Info(fmt.Sprintf("Found service account accisiated with secret: %s in namespace %s\n", secretName, namespace))
7063

7164
secret, e := clientset.CoreV1().Secrets("default").Get(secretName, metav1.GetOptions{})
7265
if e != nil {
73-
fmt.Println("Error!!")
74-
fmt.Println(e)
75-
fmt.Printf("\n\n")
66+
msg := fmt.Sprintf("Failed to get secrets with error:\n%s\n\n", e)
67+
logger.Warn(msg)
7668
continue
7769
}
78-
fmt.Println("Found secret")
70+
logger.Info(fmt.Sprintf("Found secret"))
7971

80-
fmt.Println("Creating cluster in Codefresh")
72+
logger.Info(fmt.Sprintf("Creating cluster in Codefresh"))
8173
body, e := addCluser(clientCnf.Host, contextName, secret.Data["token"], secret.Data["ca.crt"])
8274
if e != nil {
83-
fmt.Println("Error!!")
84-
fmt.Println(e)
85-
fmt.Printf("\n\n")
75+
msg := fmt.Sprintf("Failed to add cluster with error:\n%s\n\n", e)
76+
logger.Warn(msg)
8677
continue
8778
}
88-
fmt.Println(string(body))
89-
90-
fmt.Printf("\n\n")
79+
logger.Info(fmt.Sprintf("%s\n\n", string(body)))
9180
}
9281
}
9382

@@ -137,9 +126,7 @@ func testConnection(payload *requestPayload) error {
137126
req.Header.Add("content-type", "application/json")
138127
res, err := http.DefaultClient.Do(req)
139128
if err != nil {
140-
fmt.Println("Error during test cluster")
141-
fmt.Println(err)
142-
fmt.Printf("\n\n")
129+
return err
143130
}
144131
defer res.Body.Close()
145132
_, err = ioutil.ReadAll(res.Body)
@@ -149,7 +136,6 @@ func testConnection(payload *requestPayload) error {
149136
if res.StatusCode != 200 {
150137
return errors.New("Failed to test cluster")
151138
}
152-
fmt.Println("Test cluster passed")
153139
return nil
154140
}
155141

dist/bin/stevedore

112 KB
Binary file not shown.

vendor/github.com/sirupsen/logrus/.gitignore

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/sirupsen/logrus/.travis.yml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/sirupsen/logrus/CHANGELOG.md

Lines changed: 113 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/sirupsen/logrus/LICENSE

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)