Skip to content

Commit

Permalink
update openapi fetch command
Browse files Browse the repository at this point in the history
  • Loading branch information
natasha41575 committed Apr 30, 2021
1 parent 0df531e commit 45fc670
Showing 1 changed file with 5 additions and 26 deletions.
31 changes: 5 additions & 26 deletions kustomize/commands/openapi/fetch/fetch.go
Expand Up @@ -6,7 +6,6 @@ import (
"fmt"
"io"
"os/exec"
"time"

"github.com/spf13/cobra"
)
Expand All @@ -28,31 +27,17 @@ in the user's kubeconfig`,
}

func printSchema(w io.Writer) {
fmt.Fprintln(w, "Fetching schema from cluster")
errMsg := `
Error fetching schema from cluster.
Please make sure port 8081 is available, kubectl is installed, and its context is set correctly.
Please make sure kubectl is installed and its context is set correctly.
Installation and setup instructions: https://kubernetes.io/docs/tasks/tools/install-kubectl/`

command := exec.Command("kubectl", []string{"proxy", "--port=8081", "&"}...)
command := exec.Command("kubectl", []string{"get", "--raw", "/openapi/v2"}...)
var stderr bytes.Buffer
command.Stderr = &stderr
err := command.Start()
defer killProcess(command)

// give the proxy a second to start up
time.Sleep(time.Second)

if err != nil || stderr.String() != "" {
fmt.Fprintln(w, err, stderr.String()+errMsg)
return
}

commandCurl := exec.Command("curl", []string{"http://localhost:8081/openapi/v2"}...)
var stdout bytes.Buffer
commandCurl.Stdout = &stdout
commandCurl.Stderr = &stderr
err = commandCurl.Run()
command.Stdout = &stdout
command.Stderr = &stderr
err := command.Run()
if err != nil || stdout.String() == "" {
fmt.Fprintln(w, err, stderr.String()+errMsg)
return
Expand All @@ -65,9 +50,3 @@ Installation and setup instructions: https://kubernetes.io/docs/tasks/tools/inst
output, _ = json.MarshalIndent(jsonSchema, "", " ")
fmt.Fprintln(w, string(output))
}

func killProcess(command *exec.Cmd) {
if command.Process != nil {
command.Process.Kill()
}
}

0 comments on commit 45fc670

Please sign in to comment.