func()

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
}