Remove the bug command

This commit is contained in:
Jean-Baptiste Doumenjou 2019-03-05 18:14:03 +01:00 committed by Traefiker Bot
parent ebded2cbc0
commit 3419f9aeb9
8 changed files with 1 additions and 231 deletions

View file

@ -23,7 +23,6 @@ If you intend to ask a support question: DO NOT FILE AN ISSUE.
HOW TO WRITE A GOOD ISSUE? HOW TO WRITE A GOOD ISSUE?
- Respect the issue template as much as possible. - Respect the issue template as much as possible.
- If possible, use the command `traefik bug`. See https://www.youtube.com/watch?v=Lyz62L8m93I.
- The title should be short and descriptive. - The title should be short and descriptive.
- Explain the conditions which led you to report this issue: the context. - Explain the conditions which led you to report this issue: the context.
- The context should lead to something, an idea or a problem that youre facing. - The context should lead to something, an idea or a problem that youre facing.

View file

@ -27,7 +27,6 @@ Bug
HOW TO WRITE A GOOD BUG REPORT? HOW TO WRITE A GOOD BUG REPORT?
- Respect the issue template as much as possible. - Respect the issue template as much as possible.
- If possible, use the command `traefik bug`. See https://www.youtube.com/watch?v=Lyz62L8m93I.
- The title should be short and descriptive. - The title should be short and descriptive.
- Explain the conditions which led you to report this issue: the context. - Explain the conditions which led you to report this issue: the context.
- The context should lead to something, an idea or a problem that youre facing. - The context should lead to something, an idea or a problem that youre facing.

View file

@ -27,7 +27,6 @@ Feature
HOW TO WRITE A GOOD ISSUE? HOW TO WRITE A GOOD ISSUE?
- Respect the issue template as much as possible. - Respect the issue template as much as possible.
- If possible, use the command `traefik bug`. See https://www.youtube.com/watch?v=Lyz62L8m93I.
- The title should be short and descriptive. - The title should be short and descriptive.
- Explain the conditions which led you to report this issue: the context. - Explain the conditions which led you to report this issue: the context.
- The context should lead to something, an idea or a problem that youre facing. - The context should lead to something, an idea or a problem that youre facing.

View file

@ -1,171 +0,0 @@
package bug
import (
"bytes"
"fmt"
"net/url"
"os/exec"
"runtime"
"text/template"
"github.com/containous/flaeg"
"github.com/containous/traefik/anonymize"
"github.com/containous/traefik/cmd"
"github.com/containous/traefik/cmd/version"
)
const (
bugTracker = "https://github.com/containous/traefik/issues/new"
bugTemplate = `<!--
DO NOT FILE ISSUES FOR GENERAL SUPPORT QUESTIONS.
The issue tracker is for reporting bugs and feature requests only.
For end-user related support questions, refer to one of the following:
- Stack Overflow (using the "traefik" tag): https://stackoverflow.com/questions/tagged/traefik
- the Traefik community Slack channel: https://slack.traefik.io
-->
### Do you want to request a *feature* or report a *bug*?
(If you intend to ask a support question: **DO NOT FILE AN ISSUE**.
Use [Stack Overflow](https://stackoverflow.com/questions/tagged/traefik)
or [Slack](https://slack.traefik.io) instead.)
### What did you do?
<!--
HOW TO WRITE A GOOD ISSUE?
- Respect the issue template as more as possible.
- If it's possible use the command ` + "`" + "traefik bug" + "`" + `. See https://www.youtube.com/watch?v=Lyz62L8m93I.
- The title must be short and descriptive.
- Explain the conditions which led you to write this issue: the context.
- The context should lead to something, an idea or a problem that youre facing.
- Remain clear and concise.
- Format your messages to help the reader focus on what matters and understand the structure of your message, use Markdown syntax https://help.github.com/articles/github-flavored-markdown
-->
### What did you expect to see?
### What did you see instead?
### Output of ` + "`" + `traefik version` + "`" + `: (_What version of Traefik are you using?_)
` + "```" + `
{{.Version}}
` + "```" + `
### What is your environment & configuration (arguments, toml, provider, platform, ...)?
` + "```" + `json
{{.Configuration}}
` + "```" + `
<!--
Add more configuration information here.
-->
### If applicable, please paste the log output at DEBUG level (` + "`" + `--logLevel=DEBUG` + "`" + ` switch)
` + "```" + `
(paste your output here)
` + "```" + `
`
)
// NewCmd builds a new Bug command
func NewCmd(traefikConfiguration *cmd.TraefikConfiguration, traefikPointersConfiguration *cmd.TraefikConfiguration) *flaeg.Command {
// version Command init
return &flaeg.Command{
Name: "bug",
Description: `Report an issue on Traefik bugtracker`,
Config: traefikConfiguration,
DefaultPointersConfig: traefikPointersConfiguration,
Run: runCmd(traefikConfiguration),
Metadata: map[string]string{
"parseAllSources": "true",
},
}
}
func runCmd(traefikConfiguration *cmd.TraefikConfiguration) func() error {
return func() error {
body, err := createReport(traefikConfiguration)
if err != nil {
return err
}
sendReport(body)
return nil
}
}
func createReport(traefikConfiguration *cmd.TraefikConfiguration) (string, error) {
var versionPrint bytes.Buffer
if err := version.GetPrint(&versionPrint); err != nil {
return "", err
}
tmpl, err := template.New("bug").Parse(bugTemplate)
if err != nil {
return "", err
}
config, err := anonymize.Do(traefikConfiguration, true)
if err != nil {
return "", err
}
v := struct {
Version string
Configuration string
}{
Version: versionPrint.String(),
Configuration: config,
}
var bug bytes.Buffer
if err := tmpl.Execute(&bug, v); err != nil {
return "", err
}
return bug.String(), nil
}
func sendReport(body string) {
URL := bugTracker + "?body=" + url.QueryEscape(body)
if err := openBrowser(URL); err != nil {
fmt.Printf("Please file a new issue at %s using this template:\n\n", bugTracker)
fmt.Print(body)
}
}
func openBrowser(u string) error {
var err error
switch runtime.GOOS {
case "linux":
err = exec.Command("xdg-open", u).Start()
case "windows":
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", u).Start()
case "darwin":
err = exec.Command("open", u).Start()
default:
err = fmt.Errorf("unsupported platform")
}
return err
}

View file

@ -1,45 +0,0 @@
package bug
import (
"testing"
"github.com/containous/traefik/anonymize"
"github.com/containous/traefik/cmd"
"github.com/containous/traefik/config/static"
"github.com/stretchr/testify/assert"
)
func Test_createReport(t *testing.T) {
traefikConfiguration := &cmd.TraefikConfiguration{
ConfigFile: "FOO",
Configuration: static.Configuration{
EntryPoints: static.EntryPoints{
"goo": &static.EntryPoint{
Address: "hoo.bar",
},
},
},
}
report, err := createReport(traefikConfiguration)
assert.NoError(t, err, report)
// exported anonymous configuration
assert.NotContains(t, "hoo.bar", report)
}
func Test_anonymize_traefikConfiguration(t *testing.T) {
traefikConfiguration := &cmd.TraefikConfiguration{
ConfigFile: "FOO",
Configuration: static.Configuration{
EntryPoints: static.EntryPoints{
"goo": &static.EntryPoint{
Address: "hoo.bar",
},
},
},
}
_, err := anonymize.Do(traefikConfiguration, true)
assert.NoError(t, err)
assert.Equal(t, "hoo.bar", traefikConfiguration.Configuration.EntryPoints["goo"].Address)
}

View file

@ -17,7 +17,6 @@ import (
"github.com/containous/staert" "github.com/containous/staert"
"github.com/containous/traefik/autogen/genstatic" "github.com/containous/traefik/autogen/genstatic"
"github.com/containous/traefik/cmd" "github.com/containous/traefik/cmd"
"github.com/containous/traefik/cmd/bug"
"github.com/containous/traefik/cmd/healthcheck" "github.com/containous/traefik/cmd/healthcheck"
"github.com/containous/traefik/cmd/storeconfig" "github.com/containous/traefik/cmd/storeconfig"
cmdVersion "github.com/containous/traefik/cmd/version" cmdVersion "github.com/containous/traefik/cmd/version"
@ -134,7 +133,6 @@ Complete documentation is available at https://traefik.io`,
// add commands // add commands
f.AddCommand(cmdVersion.NewCmd()) f.AddCommand(cmdVersion.NewCmd())
f.AddCommand(bug.NewCmd(traefikConfiguration, traefikPointersConfiguration))
f.AddCommand(storeConfigCmd) f.AddCommand(storeConfigCmd)
f.AddCommand(healthcheck.NewCmd(traefikConfiguration, traefikPointersConfiguration)) f.AddCommand(healthcheck.NewCmd(traefikConfiguration, traefikPointersConfiguration))

View file

@ -23,7 +23,7 @@ The title must be short and descriptive. (~60 characters)
## Description ## Description
Follow the [issue template](https://github.com/containous/traefik/blob/master/.github/ISSUE_TEMPLATE.md) as much as possible, and make use of the `traefik bug` command if you can (see the [video on Youtube](https://www.youtube.com/watch?v=Lyz62L8m93I)). Follow the [issue template](https://github.com/containous/traefik/blob/master/.github/ISSUE_TEMPLATE.md) as much as possible.
Explain us in which conditions you encountered the issue, what is your context. Explain us in which conditions you encountered the issue, what is your context.

View file

@ -13,7 +13,6 @@ Available commands:
- `version` : Print version - `version` : Print version
- `storeconfig` : Store the static Traefik configuration into a Key-value stores. Please refer to the `Store Traefik configuration`(TODO: add doc and link) section to get documentation on it. - `storeconfig` : Store the static Traefik configuration into a Key-value stores. Please refer to the `Store Traefik configuration`(TODO: add doc and link) section to get documentation on it.
- `bug`: The easiest way to submit a pre-filled issue.
- `healthcheck`: Calls Traefik `/ping` to check health. - `healthcheck`: Calls Traefik `/ping` to check health.
Each command can have additional flags. Each command can have additional flags.
@ -35,14 +34,6 @@ docker run traefik[:version] --help
# ex: docker run traefik:1.5 --help # ex: docker run traefik:1.5 --help
``` ```
## Command: bug
The easiest way to submit a pre-filled issue on [Traefik GitHub](https://github.com/containous/traefik)! Watch [this demo](https://www.youtube.com/watch?v=Lyz62L8m93I) for more information.
```bash
traefik bug
```
### Command: healthcheck ### Command: healthcheck
Checks the health of Traefik. Checks the health of Traefik.