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)); }
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); }