in azkustoingest/result.go [35:78]
func (r *Result) putQueued(ctx context.Context, i *Ingestion) {
// If not checking status, just return queued
if !r.reportToTable {
r.record.Status = Queued
return
}
// Get table URI
tableResources, err := i.mgr.GetTables()
if err != nil {
r.record.Status = StatusRetrievalFailed
r.record.FailureStatus = Permanent
r.record.Details = "Failed getting status table URI: " + err.Error()
return
}
if len(tableResources) == 0 {
r.record.Status = StatusRetrievalFailed
r.record.FailureStatus = Permanent
r.record.Details = "Ingestion resources do not include a status table URI: " + err.Error()
return
}
// create a table client
client, err := status.NewTableClient(i.client.HttpClient(), *tableResources[0])
if err != nil {
r.record.Status = StatusRetrievalFailed
r.record.FailureStatus = Permanent
r.record.Details = "Failed Creating a Status Table client: " + err.Error()
return
}
// StreamIngest initial record
r.record.Status = Pending
err = client.Write(ctx, r.record.IngestionSourceID.String(), r.record.ToMap())
if err != nil {
r.record.Status = StatusRetrievalFailed
r.record.FailureStatus = Permanent
r.record.Details = "Failed writing initial status record: " + err.Error()
return
}
r.tableClient = client
}