Refactoring update workflow function (#2329)
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
This commit is contained in:
		
							parent
							
								
									03f2dbbfb3
								
							
						
					
					
						commit
						b955dc5dbf
					
				|  | @ -276,16 +276,35 @@ func DeleteCluster(cluster_id string, r store.StateData) (string, error) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func UpdateWorkflow(workflow *model.ChaosWorkFlowInput, r store.StateData) (*model.ChaosWorkFlowResponse, error) { | func UpdateWorkflow(workflow *model.ChaosWorkFlowInput, r store.StateData) (*model.ChaosWorkFlowResponse, error) { | ||||||
| 	query := bson.D{{"workflow_id", workflow.WorkflowID}} |  | ||||||
| 	update := bson.D{{"$set", bson.D{{"workflow_manifest", workflow.WorkflowManifest}, {"cronSyntax", workflow.CronSyntax}, {"workflow_name", workflow.WorkflowName}, {"workflow_description", workflow.WorkflowDescription}, {"isCustomWorkflow", workflow.IsCustomWorkflow}, {"weightages", workflow.Weightages}, {"updated_at", strconv.FormatInt(time.Now().Unix(), 10)}}}} |  | ||||||
| 
 | 
 | ||||||
| 	err := database.UpdateChaosWorkflow(query, update) | 	var newWeightages []*database.WeightagesInput | ||||||
|  | 	copier.Copy(&newWeightages, &workflow.Weightages) | ||||||
|  | 
 | ||||||
|  | 	var workflowManifest map[string]interface{} | ||||||
|  | 	err := json.Unmarshal([]byte(workflow.WorkflowManifest), &workflowManifest) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	newWorkflowManifest, err := sjson.Set(workflow.WorkflowManifest, "metadata.labels.workflow_id", workflow.WorkflowID) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if strings.ToLower(workflowManifest["kind"].(string)) == "cronworkflow" { | ||||||
|  | 		newWorkflowManifest, _ = sjson.Set(workflow.WorkflowManifest, "spec.workflowMetadata.labels.workflow_id", workflow.WorkflowID) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	query := bson.D{{"workflow_id", workflow.WorkflowID}} | ||||||
|  | 	update := bson.D{{"$set", bson.D{{"workflow_manifest", newWorkflowManifest}, {"cronSyntax", workflow.CronSyntax}, {"Workflow_name", workflow.WorkflowName}, {"Workflow_description", workflow.WorkflowDescription}, {"isCustomWorkflow", workflow.IsCustomWorkflow}, {"Weightages", newWeightages}, {"updated_at", strconv.FormatInt(time.Now().Unix(), 10)}}}} | ||||||
|  | 
 | ||||||
|  | 	err = database.UpdateChaosWorkflow(query, update) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	subscriptions.SendRequestToSubscriber(graphql.SubscriberRequests{ | 	subscriptions.SendRequestToSubscriber(graphql.SubscriberRequests{ | ||||||
| 		K8sManifest: workflow.WorkflowManifest, | 		K8sManifest: newWorkflowManifest, | ||||||
| 		RequestType: "update", | 		RequestType: "update", | ||||||
| 		ProjectID:   workflow.ProjectID, | 		ProjectID:   workflow.ProjectID, | ||||||
| 		ClusterID:   workflow.ClusterID, | 		ClusterID:   workflow.ClusterID, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue