diff --git a/cmd/add.go b/cmd/add.go index 5de6044604b8effb47c39caa8f356e3f9e831b3f..6d6282182d526b7dab7880d54034ff561a6faa85 100644 --- a/cmd/add.go +++ b/cmd/add.go @@ -16,14 +16,10 @@ limitations under the License. package cmd import ( - "bytes" "context" "fmt" - "io" "io/ioutil" - "mime/multipart" "net/http" - "os" "time" "github.com/projectrekor/rekor-cli/log" @@ -83,28 +79,11 @@ For more information, visit [domain]`, ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - f, err := os.Open(linkfile) - if err != nil { - log.Fatal(err) - } + request, err := http.NewRequestWithContext(ctx, "POST", url, nil) - body := &bytes.Buffer{} - writer := multipart.NewWriter(body) - part, err := writer.CreateFormFile("fileupload", "link.json") - - if err != nil { + if err := addFileToRequest(request, linkfile); err != nil { log.Fatal(err) } - - io.Copy(part, f) - writer.Close() - request, err := http.NewRequestWithContext(ctx, "POST", url, body) - - if err != nil { - log.Fatal(err) - } - - request.Header.Add("Content-Type", writer.FormDataContentType()) client := &http.Client{} response, err := client.Do(request) diff --git a/cmd/file.go b/cmd/file.go new file mode 100644 index 0000000000000000000000000000000000000000..b03b489377f807b1fe0a7205ad69ba89dba326d4 --- /dev/null +++ b/cmd/file.go @@ -0,0 +1,33 @@ +package cmd + +import ( + "bytes" + "io" + "io/ioutil" + "mime/multipart" + "net/http" + "os" +) + +func addFileToRequest(request *http.Request, path string) error { + f, err := os.Open(path) + if err != nil { + return err + } + + body := &bytes.Buffer{} + writer := multipart.NewWriter(body) + defer writer.Close() + part, err := writer.CreateFormFile("fileupload", "link.json") + if err != nil { + return err + } + + if _, err := io.Copy(part, f); err != nil { + return err + } + + request.Body = ioutil.NopCloser(body) + request.Header.Add("Content-Type", writer.FormDataContentType()) + return nil +} diff --git a/cmd/get.go b/cmd/get.go index 5d2b7f4e402db95159f1a9144439b6ea6c0245a3..2c045b7b902b8d2c871100dd874c0a5119e5695b 100644 --- a/cmd/get.go +++ b/cmd/get.go @@ -19,13 +19,11 @@ import ( "context" "fmt" "io/ioutil" - "os" + "net/http" "time" - "github.com/google/trillian" "github.com/projectrekor/rekor-cli/log" "github.com/spf13/viper" - "google.golang.org/grpc" "github.com/spf13/cobra" ) @@ -39,32 +37,38 @@ var getCmd = &cobra.Command{ For more information, visit [domain]`, Run: func(cmd *cobra.Command, args []string) { log := log.Logger - logRpcServer := viper.GetString("log_rpc_server") - tLogID := viper.GetInt64("tlog_id") + rekorServer := viper.GetString("rekor_server") + url := rekorServer + "/api/v1/get" linkfile := viper.GetString("linkfile") + // Set Context with Timeout for connects to thde log rpc server ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - conn, err := grpc.DialContext(ctx, logRpcServer, grpc.WithInsecure()) + request, err := http.NewRequestWithContext(ctx, "POST", url, nil) if err != nil { - log.Errorf("Failed to connect to log server:", err) + log.Fatal(err) } - defer conn.Close() - jsonFile, err := os.Open(linkfile) + if err := addFileToRequest(request, linkfile); err != nil { + log.Fatal(err) + } + + client := &http.Client{} + response, err := client.Do(request) + if err != nil { - fmt.Println(err) + log.Fatal(err) } - byteValue, _ := ioutil.ReadAll(jsonFile) - defer jsonFile.Close() + defer response.Body.Close() - tLogClient := trillian.NewTrillianLogClient(conn) - server := serverInstance(tLogClient, tLogID) + content, err := ioutil.ReadAll(response.Body) + + if err != nil { + log.Fatal(err) + } - resp := &Response{} - resp, err = server.getLeaf(byteValue, tLogID) - log.Infof("Server GET Response: %s", resp.status) + fmt.Println(string(content)) }, }