Use middleware, and resolve some comments

pull/8423/head
Anirudh M 5 years ago
parent 8455818e31
commit cf64fdb9f0

@ -16,6 +16,13 @@ func main() {
startServer() startServer()
} }
func setContentType(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
next.ServeHTTP(w, r)
})
}
func startServer() { func startServer() {
router := http.NewServeMux() router := http.NewServeMux()
@ -35,10 +42,10 @@ func startServer() {
api.NewUpgrader(actionUpgrade), api.NewUpgrader(actionUpgrade),
api.NewHistory(actionHistory)) api.NewHistory(actionHistory))
router.Handle("/ping", ping.Handler()) router.Handle("/ping", setContentType(ping.Handler()))
router.Handle("/list", api.List(service)) router.Handle("/list", setContentType(api.List(service)))
router.Handle("/install", api.Install(service)) router.Handle("/install", setContentType(api.Install(service)))
router.Handle("/upgrade", api.Upgrade(service)) router.Handle("/upgrade", setContentType(api.Upgrade(service)))
err := http.ListenAndServe(fmt.Sprintf(":%d", 8080), router) err := http.ListenAndServe(fmt.Sprintf(":%d", 8080), router)
if err != nil { if err != nil {

@ -2,10 +2,11 @@ package api
import ( import (
"encoding/json" "encoding/json"
"net/http"
"helm.sh/helm/v3/pkg/api/logger" "helm.sh/helm/v3/pkg/api/logger"
"helm.sh/helm/v3/pkg/release" "helm.sh/helm/v3/pkg/release"
"helm.sh/helm/v3/pkg/time" "helm.sh/helm/v3/pkg/time"
"net/http"
) )
type ListRequest struct { type ListRequest struct {
@ -19,19 +20,17 @@ type ListResponse struct {
} }
type Release struct { type Release struct {
Name string `json:"name"` Name string `json:"name"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
Revision int `json:"revision"` Revision int `json:"revision"`
Updated time.Time `json:"updated_at,omitempty"` Updated time.Time `json:"updated_at,omitempty"`
Status release.Status `json:"status"` Status release.Status `json:"status"`
Chart string `json:"chart"` Chart string `json:"chart"`
AppVersion string `json:"app_version"` AppVersion string `json:"app_version"`
} }
func List(svc Service) http.Handler { func List(svc Service) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
var response ListResponse var response ListResponse
var request ListRequest var request ListRequest
decoder := json.NewDecoder(r.Body) decoder := json.NewDecoder(r.Body)

@ -8,8 +8,6 @@ import (
func Handler() http.Handler { func Handler() http.Handler {
return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) { return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
res.Header().Set("Content-Type", "application/json")
defer req.Body.Close() defer req.Body.Close()
var request Req var request Req

@ -85,7 +85,7 @@ func (s Service) Upgrade(ctx context.Context, cfg ReleaseConfig, values ChartVal
if s.upgrader.GetInstall() { if s.upgrader.GetInstall() {
if _, err := s.history.Run(cfg.Name); err == driver.ErrReleaseNotFound { if _, err := s.history.Run(cfg.Name); err == driver.ErrReleaseNotFound {
fmt.Printf("Release %q does not exist. Installing it now.\n", cfg.Name) logger.Debugf("release %q does not exist. Installing it now.\n", cfg.Name)
return s.installChart(cfg, chart, vals) return s.installChart(cfg, chart, vals)
} }
} }
@ -162,10 +162,10 @@ func (s Service) List(releaseStatus string) ([]Release, error) {
var helmReleases []Release var helmReleases []Release
for _, eachRes := range releases { for _, eachRes := range releases {
r := Release{Name: eachRes.Name, r := Release{Name: eachRes.Name,
Namespace: eachRes.Namespace, Namespace: eachRes.Namespace,
Revision: eachRes.Version, Revision: eachRes.Version,
Updated: eachRes.Info.LastDeployed, Updated: eachRes.Info.LastDeployed,
Status: eachRes.Info.Status, Status: eachRes.Info.Status,
Chart: fmt.Sprintf("%s-%s", eachRes.Chart.Metadata.Name, eachRes.Chart.Metadata.Version), Chart: fmt.Sprintf("%s-%s", eachRes.Chart.Metadata.Name, eachRes.Chart.Metadata.Version),
AppVersion: eachRes.Chart.Metadata.AppVersion, AppVersion: eachRes.Chart.Metadata.AppVersion,
} }

@ -3,9 +3,10 @@ package api_test
import ( import (
"context" "context"
"errors" "errors"
"helm.sh/helm/v3/pkg/time"
"testing" "testing"
"helm.sh/helm/v3/pkg/time"
"helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/action"
"helm.sh/helm/v3/pkg/api" "helm.sh/helm/v3/pkg/api"

@ -22,7 +22,6 @@ type UpgradeResponse struct {
func Upgrade(svc Service) http.Handler { func Upgrade(svc Service) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
defer r.Body.Close() defer r.Body.Close()
var req UpgradeRequest var req UpgradeRequest

Loading…
Cancel
Save