package daemons

// type manifestValues struct{
// 	ARGO_FILE 		string
// 	LOKI_URL  		string
// 	CONTAINER_NAME 	string
// }

// manifest, err := em.CreateManifest(booking, argo_file_path)
// if err != nil {
// 	logger.Logger.Error().Msg("Could not create manifest " + err.Error())
// }

// // launch a pod that contains oc-monitor, give it the name of the workflow
// cmd := exec.Command("kubectl","apply","-f", "manifests/"+manifest)
// output , err := cmd.CombinedOutput()
// if err != nil {
// 	logger.Logger.Error().Msg("failed to create new pod for " + booking.Workflow + " :" + err.Error())
// 	return
// }

// func (*ExecutionManager) CreateManifest(booking models.Booking, argo_file string) (manifest_filepath string, err error) {

// 	var filled_template bytes.Buffer

// 	manifest_file, err := os.ReadFile("conf/monitor_pod_template.yml")
// 	if err != nil {
// 		logger.Logger.Error().Msg("Could not open the k8s template file for " + booking.Workflow)
// 		return "", err
// 	}

// 	container_name := getContainerName(argo_file)
// 	tmpl, err := template.New("manifest_template").Parse(string(manifest_file))
// 	if err != nil {
// 		logger.Logger.Error().Msg(err.Error())
// 		return "", err
// 	}

// 	manifest_data := manifestValues{
// 		ARGO_FILE: argo_file,
// 		LOKI_URL: conf.GetConfig().Logs,
// 		CONTAINER_NAME: container_name,
// 	}

// 	err = tmpl.Execute(&filled_template, manifest_data)
// 	if err != nil {
// 		logger.Logger.Error().Msg("Could not complete manifest template for " + booking.Workflow)
// 		return "", err	}

// 	manifest_filepath = booking.Workflow + "_manifest.yaml"

// 	err = os.WriteFile("manifests/" + manifest_filepath, filled_template.Bytes(),0644)
// 	if err != nil {
// 		logger.Logger.Error().Msg("Could not write the YAML file for " + booking.Workflow + "'s manifest")
// 		return "", err
// 	}

// 	return manifest_filepath, nil
// }

// func getContainerName(argo_file string) string {
// 	regex := "([a-zA-Z]+-[a-zA-Z]+)"
// 	re := regexp.MustCompile(regex)

// 	container_name := re.FindString(argo_file)
// 	return container_name
// }