// buildTransferRequests builds the DPN ReplicationTransfer requests // that we need to create with the new DPN bag. The ReplicationTransfers // will be attached to the DPNIngestManifest and saved in our local DPN // REST server, after we save the DPN bag. func (recorder *DPNIngestRecorder) buildTransferRequests(manifest *models.DPNIngestManifest) { localNode := recorder.getLocalNode(manifest) if manifest.RecordSummary.HasErrors() { return } remoteNodes := recorder.chooseReplicationNodes(manifest, localNode) if manifest.RecordSummary.HasErrors() { return } for _, toNode := range remoteNodes { domain, err := localNode.FQDN() if err != nil { manifest.RecordSummary.AddError("Can't get FQDN from node %s. APIRoot is %s. "+ "Error is %v", localNode.Namespace, localNode.APIRoot, err) return } link := fmt.Sprintf("dpn.%s@%s:outbound/%s.tar", toNode, domain, manifest.DPNBag.UUID) xfer, err := manifest.BuildReplicationTransfer( recorder.Context.Config.DPN.LocalNode, toNode, link) if err != nil { manifest.RecordSummary.AddError("Error building ReplicationTransfer: %v ", err) return } manifest.ReplicationTransfers = append(manifest.ReplicationTransfers, xfer) } }