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=edc8f80e69ceef096f4e47a8de1b5ccbd6392501;hpb=f95c1d3a137db6a4dd4ff7d8c3a8f5a2a7a55c2f;p=ric-plt%2Fricdms.git diff --git a/pkg/deploy/deployment_manager.go b/pkg/deploy/deployment_manager.go index edc8f80..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" @@ -38,16 +39,18 @@ type DeploymentManager struct { const ( HELM_DRIVER = "HELM_DRIVER" CHART_NAME_FORMAT = "chart-%s-%s.tgz" - RELESE_NAME_FORMAT = "ricdms-%s-rel" + RELESE_NAME_FORMAT = "ricdms-%s-rel-%s" ) func NewDeploymentManager() IDeploy { - return &DeploymentManager{} + return &DeploymentManager{ + settings: cli.New(), + } } -func (d *DeploymentManager) install(chartPath, appName, namesapce string) error { +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, namesapce string) error } install := action.NewInstall(&conf) - install.ReleaseName = fmt.Sprintf(RELESE_NAME_FORMAT, appName) + install.ReleaseName = fmt.Sprintf(RELESE_NAME_FORMAT, appName, strings.ReplaceAll(version, ".", "")) install.Namespace = namesapce cp, err := install.ChartPathOptions.LocateChart(chartPath, d.settings) @@ -105,9 +108,31 @@ func (d *DeploymentManager) Deploy(reader io.ReadCloser, appname, version, names return err } - err = d.install(fmt.Sprintf(CHART_NAME_FORMAT, appname, version), appname, namespace) + err = d.install(fmt.Sprintf(CHART_NAME_FORMAT, appname, version), appname, version, namespace) if err != nil { return err } 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 +}