Documentation ¶
Index ¶
- Constants
- Variables
- func CancelPauseJobOrder(jobID common.JobID, desiredJobStatus common.JobStatus) common.CancelPauseResumeResponse
- func ExecuteNewCopyJobPartOrder(order common.CopyJobPartOrderRequest) common.CopyJobPartOrderResponse
- func GetJobFromTo(r common.GetJobFromToRequest) common.GetJobFromToResponse
- func GetJobLCMWrapper(jobID common.JobID) common.LifecycleMgr
- func GetJobSummary(jobID common.JobID) common.ListJobSummaryResponse
- func ListJobTransfers(r common.ListJobTransfersRequest) common.ListJobTransfersResponse
- func ListJobs(givenStatus common.JobStatus) common.ListJobsResponse
- func MainSTE(concurrency ste.ConcurrencySettings, targetRateInMegaBitsPerSec float64, ...) error
- func ResumeJobOrder(req common.ResumeJobRequest) common.CancelPauseResumeResponse
- func ToFixed(num float64, precision int) float64
Constants ¶
const EMPTY_SAS_STRING = ""
Variables ¶
var JobsAdmin interface { NewJobPartPlanFileName(jobID common.JobID, partNumber common.PartNumber) ste.JobPartPlanFileName // JobIDDetails returns point-in-time list of JobIDDetails JobIDs() []common.JobID // JobMgr returns the specified JobID's JobMgr JobMgr(jobID common.JobID) (ste.IJobMgr, bool) JobMgrEnsureExists(jobID common.JobID, level common.LogLevel, commandString string) ste.IJobMgr // ChangeLogLevel change the log level for specific job. ChangeLogLevel(level pipeline.LogLevel, jobId common.JobID) error // AddJobPartMgr associates the specified JobPartMgr with the Jobs Administrator //AddJobPartMgr(appContext context.Context, planFile JobPartPlanFileName) IJobPartMgr /*ScheduleTransfer(jptm IJobPartTransferMgr)*/ ResurrectJob(jobId common.JobID, sourceSAS string, destinationSAS string) bool ResurrectJobParts() // AppPathFolder returns the Azcopy application path folder. // JobPartPlanFile will be created inside this folder. AppPathFolder() string // returns the current value of bytesOverWire. BytesOverWire() int64 LogToJobLog(msg string, level pipeline.LogLevel) //DeleteJob(jobID common.JobID) common.ILoggerCloser CurrentMainPoolSize() int TryGetPerformanceAdvice(bytesInJob uint64, filesInJob uint32, fromTo common.FromTo, dir common.TransferDirection, p *ste.PipelineNetworkStats) []common.PerformanceAdvice SetConcurrencySettingsToAuto() // JobMgrCleanUp do the JobMgr cleanup. JobMgrCleanUp(jobId common.JobID) }
JobAdmin is the singleton that manages ALL running Jobs, their parts, & their transfers
Functions ¶
func CancelPauseJobOrder ¶
func ExecuteNewCopyJobPartOrder ¶
func ExecuteNewCopyJobPartOrder(order common.CopyJobPartOrderRequest) common.CopyJobPartOrderResponse
ExecuteNewCopyJobPartOrder api executes a new job part order
func GetJobFromTo ¶
func GetJobFromTo(r common.GetJobFromToRequest) common.GetJobFromToResponse
GetJobFromTo api returns the job FromTo info.
func GetJobLCMWrapper ¶
func GetJobLCMWrapper(jobID common.JobID) common.LifecycleMgr
func GetJobSummary ¶
func GetJobSummary(jobID common.JobID) common.ListJobSummaryResponse
GetJobSummary api returns the job progress summary of an active job
* Return following Properties in Job Progress Summary * CompleteJobOrdered - determines whether final part of job has been ordered or not * TotalTransfers - total number of transfers available for the given job * TotalNumberOfTransfersCompleted - total number of transfers in the job completed * NumberOfTransfersCompletedAfterCheckpoint - number of transfers completed after the last checkpoint * NumberOfTransferFailedAfterCheckpoint - number of transfers failed after last checkpoint timestamp * PercentageProgress - job progress reported in terms of percentage * FailedTransfers - list of transfer after last checkpoint timestamp that failed.
func ListJobTransfers ¶
func ListJobTransfers(r common.ListJobTransfersRequest) common.ListJobTransfersResponse
ListJobTransfers api returns the list of transfer with specific status for given jobId in http response
func ListJobs ¶
func ListJobs(givenStatus common.JobStatus) common.ListJobsResponse
ListJobs returns the jobId of all the jobs existing in the current instance of azcopy
func MainSTE ¶
func MainSTE(concurrency ste.ConcurrencySettings, targetRateInMegaBitsPerSec float64, azcopyJobPlanFolder, azcopyLogPathFolder string, providePerfAdvice bool) error
MainSTE initializes the Storage Transfer Engine
func ResumeJobOrder ¶
func ResumeJobOrder(req common.ResumeJobRequest) common.CancelPauseResumeResponse
// Search for the Part 0 of the Job, since the Part 0 status concludes the actual status of the Job jpm, found := jm.JobPartMgr(0) if !found { return common.CancelPauseResumeResponse{ CancelledPauseResumed: false, ErrorMsg: fmt.Sprintf("job with JobId %s has a missing 0th part", jobID.String()), } } jpp0 := jpm.Plan() var jr common.CancelPauseResumeResponse switch jpp0.JobStatus() { // Current status case common.EJobStatus.Completed(): // You can't change state of a completed job jr = common.CancelPauseResumeResponse{ CancelledPauseResumed: false, ErrorMsg: fmt.Sprintf("Can't %s JobID=%v because it has already completed", verb, jobID), } case common.EJobStatus.Cancelled(): // If the status of Job is cancelled, it means that it has already been cancelled // No need to cancel further jr = common.CancelPauseResumeResponse{ CancelledPauseResumed: false, ErrorMsg: fmt.Sprintf("cannot cancel the job %s since it is already cancelled", jobID), } case common.EJobStatus.Cancelling(): // If the status of Job is cancelling, it means that it has already been requested for cancellation // No need to cancel further jr = common.CancelPauseResumeResponse{ CancelledPauseResumed: true, ErrorMsg: fmt.Sprintf("cannot cancel the job %s since it has already been requested for cancellation", jobID), } case common.EJobStatus.InProgress(): // If the Job status is in Progress and Job is not completely ordered // Job cannot be resumed later, hence graceful cancellation is not required // hence sending the response immediately. Response CancelPauseResumeResponse // returned has CancelledPauseResumed set to false, because that will let // Job immediately stop. fallthrough case common.EJobStatus.Paused(): // Logically, It's OK to pause an already-paused job jpp0.SetJobStatus(desiredJobStatus) msg := fmt.Sprintf("JobID=%v %s", jobID, common.IffString(desiredJobStatus == common.EJobStatus.Paused(), "paused", "canceled")) if jm.ShouldLog(pipeline.LogInfo) { jm.Log(pipeline.LogInfo, msg) } jm.Cancel() // Stop all inflight-chunks/transfer for this job (this includes all parts) jr = common.CancelPauseResumeResponse{ CancelledPauseResumed: true, ErrorMsg: msg, } } return jr }
Types ¶
This section is empty.