Exemplo n.º 1
0
        public Task <RpcCallResult <Unit> > AttachAsync(OpenBond.BuildStartData message)
        {
            var grpcMessage = message.ToGrpc();

            return(m_connectionManager.CallAsync(
                       (callOptions) => m_client.AttachAsync(grpcMessage, options: callOptions),
                       "Attach",
                       waitForConnection: true));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Attaches the worker to the build session and sends the build data
        /// </summary>
        public async Task <RpcCallResult <Unit> > AttachAsync(OpenBond.BuildStartData message)
        {
            var internalBondMessage = message.ToInternalBond();

            var result = await m_proxyManager.Call <BuildStartData, Void>(
                internalBondMessage,
                functionName : "Attach");

            return(result.ToUnit());
        }
Exemplo n.º 3
0
        public Task <RpcCallResult <Unit> > AttachAsync(OpenBond.BuildStartData message)
        {
            var grpcMessage = message.ToGrpc();

            return(m_connectionManager.CallAsync(
                       async(callOptions) =>
            {
                using (await m_attachAcquireAsync(callOptions.CancellationToken))
                {
                    return await m_client.AttachAsync(grpcMessage, options: callOptions);
                }
            },
                       "Attach",
                       waitForConnection: true));
        }
Exemplo n.º 4
0
 public static BuildStartData ToInternalBond(this OpenBond.BuildStartData message)
 {
     return(new BuildStartData()
     {
         CachedGraphDescriptor = message.CachedGraphDescriptor.ToDistributionPipGraphCacheDescriptor(),
         FingerprintSalt = message.FingerprintSalt,
         MasterLocation = new ServiceLocation()
         {
             IpAddress = message.MasterLocation.IpAddress,
             Port = message.MasterLocation.Port
         },
         SessionId = message.SessionId,
         SymlinkFileContentHash = message.SymlinkFileContentHash.ToDistributedContentHash(),
         EnvironmentVariables = message.EnvironmentVariables,
         WorkerId = message.WorkerId,
     });
 }
Exemplo n.º 5
0
        public async Task <RpcCallResult <Unit> > AttachAsync(OpenBond.BuildStartData message, CancellationToken cancellationToken)
        {
            var grpcMessage = message.ToGrpc();

            var attachment = await m_connectionManager.CallAsync(
                async (callOptions) => await m_client.AttachAsync(grpcMessage, options: callOptions),
                "Attach",
                cancellationToken,
                waitForConnection : true);

            if (attachment.Succeeded)
            {
                m_connectionManager.OnAttachmentCompleted();
            }

            return(attachment);
        }
Exemplo n.º 6
0
        public static BuildStartData ToGrpc(this OpenBond.BuildStartData message, SenderInfo senderInfo)
        {
            var buildStartData = new BuildStartData()
            {
                Sender   = senderInfo,
                WorkerId = message.WorkerId,
                CachedGraphDescriptor = new BuildXL.Distribution.Grpc.PipGraphCacheDescriptor()
                {
                    Id                 = message.CachedGraphDescriptor.Id,
                    TraceInfo          = message.CachedGraphDescriptor.TraceInfo,
                    ConfigState        = message.CachedGraphDescriptor.ConfigState?.Data.ToByteString() ?? ByteString.Empty,
                    DirectedGraph      = message.CachedGraphDescriptor.DirectedGraph?.Data.ToByteString() ?? ByteString.Empty,
                    EngineState        = message.CachedGraphDescriptor.EngineState?.Data.ToByteString() ?? ByteString.Empty,
                    HistoricTableSizes = message.CachedGraphDescriptor.HistoricTableSizes?.Data.ToByteString() ?? ByteString.Empty,
                    MountPathExpander  = message.CachedGraphDescriptor.MountPathExpander?.Data.ToByteString() ?? ByteString.Empty,
                    PathTable          = message.CachedGraphDescriptor.PathTable?.Data.ToByteString() ?? ByteString.Empty,
                    PipGraph           = message.CachedGraphDescriptor.PipGraph?.Data.ToByteString() ?? ByteString.Empty,
                    PipGraphId         = message.CachedGraphDescriptor.PipGraphId?.Data.ToByteString() ?? ByteString.Empty,
                    PipTable           = message.CachedGraphDescriptor.PipTable?.Data.ToByteString() ?? ByteString.Empty,
                    PreviousInputs     = message.CachedGraphDescriptor.PreviousInputs?.Data.ToByteString() ?? ByteString.Empty,
                    QualifierTable     = message.CachedGraphDescriptor.QualifierTable?.Data.ToByteString() ?? ByteString.Empty,
                    StringTable        = message.CachedGraphDescriptor.StringTable?.Data.ToByteString() ?? ByteString.Empty,
                    SymbolTable        = message.CachedGraphDescriptor.SymbolTable?.Data.ToByteString() ?? ByteString.Empty,
                },
                FingerprintSalt = message.FingerprintSalt,
                MasterLocation  = new ServiceLocation()
                {
                    IpAddress = message.MasterLocation.IpAddress,
                    Port      = message.MasterLocation.Port
                },
                SessionId = message.SessionId,
                SymlinkFileContentHash = message.SymlinkFileContentHash.Data.ToByteString()
            };

            foreach (var kvp in message.EnvironmentVariables)
            {
                buildStartData.EnvironmentVariables.Add(kvp.Key, kvp.Value);
            }

            return(buildStartData);
        }