X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fresthooks%2Fresthooks.go;h=5940694339a6fc2ac1664f88889c39cf01e2d6ca;hb=f95c1d3a137db6a4dd4ff7d8c3a8f5a2a7a55c2f;hp=519e636a4a24366251fb940f9176b3178c4b0933;hpb=be3a036a01ca73d2959aadc1c5f9b71ec569ac95;p=ric-plt%2Fricdms.git diff --git a/pkg/resthooks/resthooks.go b/pkg/resthooks/resthooks.go index 519e636..5940694 100644 --- a/pkg/resthooks/resthooks.go +++ b/pkg/resthooks/resthooks.go @@ -22,20 +22,23 @@ package resthooks import ( ch "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/charts" + "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/deploy" ph "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/health" "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/models" "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/onboard" "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/restapi/operations/charts" + dp "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/restapi/operations/deploy" "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/restapi/operations/health" "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/ricdms" "github.com/go-openapi/runtime/middleware" ) -func NewResthook(h ph.IHealthChecker, o onboard.IOnboarder, chMgr ch.IChartMgr) *Resthook { +func NewResthook(h ph.IHealthChecker, o onboard.IOnboarder, chMgr ch.IChartMgr, depMgr deploy.IDeploy) *Resthook { return &Resthook{ HealthChecker: h, Onboarder: o, ChartMgr: chMgr, + DeployMgr: depMgr, } } @@ -98,3 +101,19 @@ func (rh *Resthook) GetChartByNameAndVersion(name, version string) middleware.Re return charts.NewGetChartsFetcherOK().WithPayload(resp) } + +func (rh *Resthook) DownloadAndInstallChart(appname, version, namespace string) middleware.Responder { + ricdms.Logger.Debug("DownloadAndInstall Chart is invoked") + reader, err := rh.ChartMgr.DownloadChart(appname, version) + + if err != nil { + ricdms.Logger.Error("error in downloading the chart : %v", err) + return dp.NewPostDeployInternalServerError() + } + + err = rh.DeployMgr.Deploy(reader, appname, version, namespace) + if err != nil { + return dp.NewPostDeployInternalServerError() + } + return dp.NewPostDeployCreated() +}