+ return experiment.NewPostCustomOnboardOK()
+}
+
+// onboard provided helm chart
+func (o *Onboarder) CustomOnboard(reader io.Reader) middleware.Responder {
+ ricdms.Logger.Debug("onboarder received req to onboard")
+ resp, err := http.Post(ricdms.Config.CustomOnboardURL, "application/x-www-form-urlencoded", reader)
+ if err != nil {
+ ricdms.Logger.Error("err received while onboarding chart to chartmuseum: %v", err)
+ errmsg := err.Error()
+ resp := experiment.NewPostCustomOnboardInternalServerError()
+ resp.SetPayload(&models.ErrorMessage{
+ ErrorMessage: &errmsg,
+ })
+ return resp
+ }
+
+ defer resp.Body.Close()
+ if resp.StatusCode < 200 || resp.StatusCode >= 300 {
+ // TODO: return error code in response
+ ricdms.Logger.Error("chartmuseum returned bad status code(%d): %+v", resp.StatusCode, resp)
+ errmsg := fmt.Sprintf("chartmuseum returns status code :%d", resp.StatusCode)
+ resp := experiment.NewPostCustomOnboardInternalServerError()
+ resp.SetPayload(&models.ErrorMessage{
+ ErrorMessage: &errmsg,
+ })
+ return resp
+ }
+ return &experiment.PostCustomOnboardOK{}