Implement health check for xApp
[ric-plt/ricdms.git] / pkg / resthooks / resthooks.go
index 5940694..e0d7df2 100644 (file)
@@ -47,6 +47,15 @@ func (rh *Resthook) GetDMSHealth() (resp middleware.Responder) {
        return health.NewGetHealthCheckOK().WithPayload(rh.HealthChecker.GetStatus())
 }
 
+func (rh *Resthook) GetxAppHealth(appname, namespace string) (resp middleware.Responder) {
+       ricdms.Logger.Debug("Healthchecker: xApp health check is initiated")
+       status := rh.HealthChecker.GetxAppStatus(appname, namespace)
+       if status == nil {
+               return health.NewGetHealthCheckInternalServerError()
+       }
+       return health.NewGetHealthCheckOK().WithPayload(status)
+}
+
 func (rh *Resthook) OnBoard(params *models.Descriptor) (resp middleware.Responder) {
        ricdms.Logger.Debug("onboarder: invoked")
        return rh.Onboarder.Onboard(params)
@@ -117,3 +126,14 @@ func (rh *Resthook) DownloadAndInstallChart(appname, version, namespace string)
        }
        return dp.NewPostDeployCreated()
 }
+
+func (rh *Resthook) UninstallChart(appname, version, namespace string) middleware.Responder {
+       ricdms.Logger.Debug("Uninstall chart is invoked")
+       err := rh.DeployMgr.Uninstall(appname, version, namespace)
+       if err != nil {
+               ricdms.Logger.Error("Uninstall failed: %v", err)
+               return dp.NewDeleteDeployInternalServerError()
+       }
+
+       return dp.NewDeleteDeployCreated()
+}