func CopyStateForUpdate()

in internal/cmds/cmds.go [339:360]


func CopyStateForUpdate(ctx log.Logger) error {
	// Copy .mrseq files (Most Recently executed Sequence number) that helps determine whether a sequence number of Run Command has been previously executed or not.
	mrseqFilesNameList, mrseqFileCopyErr := copyFiles(ctx, ".mrseq", "")
	if mrseqFileCopyErr != nil {
		return mrseqFileCopyErr
	}

	// Copy .status files of already executed sequence numbers
	_, statusFileCopyErr := copyFiles(ctx, ".status", constants.StatusFileDirectory)
	if statusFileCopyErr != nil {
		return statusFileCopyErr
	}

	// If status file corresponding to a .mrseq file does not exist, create a dummy status file to prevent poll status timeouts for already executed Run Commands after upgrade.
	if mrseqFilesNameList != nil && mrseqFilesNameList.Len() > 0 {
		// This is best effort - Do not return error if any case of failures.
		// Worst case that could happen is poll status timeouts for those few cases where creating dummy status file failed for some reason.
		createDummyStatusFilesIfNeeded(ctx, mrseqFilesNameList)
	}

	return nil
}