Example #1
0
        internal async Task <bool> TryCreateGatewayEntryAsync(GatewayEntry entry)
        {
            var row = new GossipTableEntry()
            {
                PartitionKey    = GlobalServiceId,
                RowKey          = GossipTableEntry.ConstructRowKey(entry.SiloAddress, entry.ClusterId),
                Status          = entry.Status.ToString(),
                GossipTimestamp = entry.HeartbeatTimestamp
            };

            return(await TryCreateTableEntryAsync(row).ConfigureAwait(false));
        }
Example #2
0
        internal async Task <GossipTableEntry> ReadGatewayEntryAsync(GatewayEntry gateway)
        {
            var result = await storage.ReadSingleTableEntryAsync(this.GlobalServiceId, GossipTableEntry.ConstructRowKey(gateway.SiloAddress, gateway.ClusterId)).ConfigureAwait(false);

            if (result != null)
            {
                var tableEntry = result.Item1;
                try
                {
                    tableEntry.ParseSiloAddressFromRowKey();
                    return(tableEntry);
                }
                catch (Exception exc)
                {
                    logger.Error(
                        (int)TableStorageErrorCode.AzureTable_61,
                        string.Format("Intermediate error parsing GossipTableEntry: {0}. Ignoring this entry.", tableEntry),
                        exc);
                }
            }

            return(null);
        }