X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fdeploy%2Fdeployment_manager.go;h=0bd04617118ce512d6053aa83f3d6a75dc18d92e;hb=31505299317b3fbc8b5f918e7bb811c243606705;hp=8d55b9ee4da84b54bc180300d815147b58db44c7;hpb=b0e549aa3da1398ee8fa0967926b361768e12542;p=ric-plt%2Fricdms.git diff --git a/pkg/deploy/deployment_manager.go b/pkg/deploy/deployment_manager.go index 8d55b9e..0bd0461 100644 --- a/pkg/deploy/deployment_manager.go +++ b/pkg/deploy/deployment_manager.go @@ -24,6 +24,7 @@ import ( "fmt" "io" "os" + "strings" "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/ricdms" "helm.sh/helm/v3/pkg/action" @@ -42,12 +43,14 @@ const ( ) func NewDeploymentManager() IDeploy { - return &DeploymentManager{} + return &DeploymentManager{ + settings: cli.New(), + } } func (d *DeploymentManager) install(chartPath, appName, version, namesapce string) error { conf := action.Configuration{} - err := conf.Init(d.settings.RESTClientGetter(), "namespace", os.Getenv(HELM_DRIVER), ricdms.Logger.Debug) + err := conf.Init(d.settings.RESTClientGetter(), namesapce, os.Getenv(HELM_DRIVER), ricdms.Logger.Debug) if err != nil { ricdms.Logger.Error("not able to prepare install configuration: %v", err) @@ -55,7 +58,7 @@ func (d *DeploymentManager) install(chartPath, appName, version, namesapce strin } install := action.NewInstall(&conf) - install.ReleaseName = fmt.Sprintf(RELESE_NAME_FORMAT, appName, version) + install.ReleaseName = fmt.Sprintf(RELESE_NAME_FORMAT, appName, strings.ReplaceAll(version, ".", "")) install.Namespace = namesapce cp, err := install.ChartPathOptions.LocateChart(chartPath, d.settings) @@ -111,3 +114,25 @@ func (d *DeploymentManager) Deploy(reader io.ReadCloser, appname, version, names } return nil } + +func (d *DeploymentManager) Uninstall(appname, version, namespace string) error { + conf := action.Configuration{} + + err := conf.Init(d.settings.RESTClientGetter(), namespace, os.Getenv(HELM_DRIVER), ricdms.Logger.Debug) + if err != nil { + ricdms.Logger.Error("Not able to prepare uninstall configuration: %v", err) + return err + } + + uninstall := action.NewUninstall(&conf) + uninstall.Wait = true + + resp, err := uninstall.Run(fmt.Sprintf(RELESE_NAME_FORMAT, appname, strings.ReplaceAll(version, ".", ""))) + if err != nil { + ricdms.Logger.Error("Error while uninstalling deployment: %v", err) + return err + } + + ricdms.Logger.Info("deployment uninstallation comlete : %", resp.Info) + return nil +}