- logger := log.New(os.Stdout, "helmplugin ", log.LstdFlags|log.Lshortfile)
- uninstallChart(req.GetWorkloadId(), req.GetHostIp())
- resp = &lcmservice.TerminateResponse{
- Status: "Success",
+ // Input validation
+ if (req.GetHostIp() == "") || (req.GetWorkloadId() == "") {
+ return nil, s.logError(status.Errorf(codes.InvalidArgument, "Nil input HostIp: %s or workloadId: %s. " +
+ "Err: %s", req.GetHostIp(), req.GetWorkloadId(), err))
+ }
+
+ // Create HELM client
+ hc, err := NewHelmClient(req.GetHostIp(), s.logger)
+ if os.IsNotExist(err) {
+ return nil, s.logError(status.Errorf(codes.InvalidArgument, "Kubeconfig for HostIp can't be found: %s. " +
+ "Err: %s", req.GetHostIp(), err))
+ }
+
+ // Uninstall chart
+ err = hc.uninstallChart(req.GetWorkloadId())
+
+ if (err != nil) {
+ resp = &lcmservice.TerminateResponse{
+ Status: "Failure",
+ }
+ return resp, s.logError(status.Errorf(codes.NotFound, "Chart not found for workloadId: %s. Err: %s",
+ req.GetWorkloadId(), err))
+ } else {
+ resp = &lcmservice.TerminateResponse{
+ Status: "Success",
+ }
+ return resp, nil