public void SiloAddress_ToFrom_ParsableString() { string testName = TestContext.TestName; Console.WriteLine(testName); SiloAddress address1 = SiloAddress.NewLocalAddress(12345); string addressStr1 = address1.ToParsableString(); SiloAddress addressObj1 = SiloAddress.FromParsableString(addressStr1); Console.WriteLine("Convert -- From: {0} Got result string: '{1}' object: {2}", address1, addressStr1, addressObj1); Assert.AreEqual(address1, addressObj1, "SiloAddress equal after To-From-ParsableString"); //const string addressStr2 = "127.0.0.1-11111-144611139"; const string addressStr2 = "127.0.0.1:11111@144611139"; SiloAddress addressObj2 = SiloAddress.FromParsableString(addressStr2); string addressStr2Out = addressObj2.ToParsableString(); Console.WriteLine("Convert -- From: {0} Got result string: '{1}' object: {2}", addressStr2, addressStr2Out, addressObj2); Assert.AreEqual(addressStr2, addressStr2Out, "SiloAddress equal after From-To-ParsableString"); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { SiloAddress addr = (SiloAddress)value; writer.WriteStartObject(); writer.WritePropertyName("SiloAddress"); writer.WriteValue(addr.ToParsableString()); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { SiloAddress sa = (SiloAddress)value; JObject jo = new JObject(); jo.Add("SiloAddress", sa.ToParsableString()); jo.WriteTo(writer); }
private static FabricSiloInfo CreateSiloInfo(SiloAddress silo, SiloAddress gateway, string name) { return(new FabricSiloInfo { Name = name, Silo = silo.ToParsableString(), Gateway = gateway.ToParsableString() }); }
public async Task <MembershipTableData> ReadRow(SiloAddress key) { if (_logger.IsEnabled(LogLevel.Trace)) { _logger.Trace($"RedisMembershipTable.ReadRow called with key: {key}."); } var hashKeyData = $"{key.ToParsableString()}-data"; var hashKeyAlive = $"{key.ToParsableString()}-alive"; var hashKeyEtag = $"{key.ToParsableString()}-etag"; RedisValue[] redisFields = { TableVersionKey, TableVersionEtagKey, hashKeyData, hashKeyAlive, hashKeyEtag }; RedisValue[] results; try { results = await _db.HashGetAsync(_clusterKey, redisFields); } catch (Exception ex) { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.Debug("RedisMembershipTable.ReadRow failed: {0}", ex); } throw; } var tableVersion = results[0].IsNull ? 0 : (int)results[0]; var tableVersionEtag = results[1].IsNull ? "" : (string)results[1]; if (results.Skip(2).Any(result => string.IsNullOrEmpty(result))) { return(new MembershipTableData(new List <Tuple <MembershipEntry, string> >(), new TableVersion(tableVersion, tableVersionEtag))); } var data = JsonConvert.DeserializeObject <MembershipEntry>(results[2], SerializationSettings.Value); var alive = JsonConvert.DeserializeObject <DateTime>(results[3], SerializationSettings.Value); var etag = (string)results[4]; data.IAmAliveTime = alive; return(new MembershipTableData(new Tuple <MembershipEntry, string>(data, etag), new TableVersion(tableVersion, tableVersionEtag))); }
/// <summary> /// Gets the local replica grain. Use of this grain requires a co-hosted deployment (caller api and silo in the same process so the local <see cref="SiloAddress"/> is available. /// </summary> /// <param name="factory">The factory to use.</param> /// <param name="address">This must be the local silo address.</param> /// <param name="key">Sharding key of the data graph.</param> public static ISimpleStreamingReplicaGrain GetSimpleStreamingReplicaGrain(this IGrainFactory factory, SiloAddress address, string key) { if (factory is null) { throw new ArgumentNullException(nameof(key)); } key = key.Trim().ToUpperInvariant(); var parsable = address.ToParsableString(); return(factory.GetGrain <ISimpleStreamingReplicaGrain>($"{key}|{parsable}")); }
public void SiloAddress_ToFrom_ParsableString() { SiloAddress address1 = SiloAddress.NewLocalAddress(12345); string addressStr1 = address1.ToParsableString(); SiloAddress addressObj1 = SiloAddress.FromParsableString(addressStr1); output.WriteLine("Convert -- From: {0} Got result string: '{1}' object: {2}", address1, addressStr1, addressObj1); Assert.Equal(address1, addressObj1); // SiloAddress equal after To-From-ParsableString //const string addressStr2 = "127.0.0.1-11111-144611139"; const string addressStr2 = "127.0.0.1:11111@144611139"; SiloAddress addressObj2 = SiloAddress.FromParsableString(addressStr2); string addressStr2Out = addressObj2.ToParsableString(); output.WriteLine("Convert -- From: {0} Got result string: '{1}' object: {2}", addressStr2, addressStr2Out, addressObj2); Assert.Equal(addressStr2, addressStr2Out); // SiloAddress equal after From-To-ParsableString }
internal static String ParseDeploymentSiloKey(String deploymentId, SiloAddress siloAddress) { return String.Format("{0}{1}{2}", ParseDeploymentKVPrefix(deploymentId), KeySeparator, siloAddress.ToParsableString()); }
internal static string FormatDeploymentSiloKey(string deploymentId, string rootKvFolder, SiloAddress siloAddress) { return($"{FormatDeploymentKVPrefix(deploymentId, rootKvFolder)}{KeySeparator}{siloAddress.ToParsableString()}"); }
public async Task <MembershipTableData> ReadRow(SiloAddress key) { List <Tuple <MembershipEntry, string> > entries = new List <Tuple <MembershipEntry, string> >(); IOperationResult <CouchBaseSiloRegistration> row = await bucket.GetAsync <CouchBaseSiloRegistration>(key.ToParsableString()).ConfigureAwait(false); if (row.Success) { entries.Add(CouchbaseSiloRegistrationmUtility.ToMembershipEntry(row.Value, row.Cas.ToString())); } return(new MembershipTableData(entries, new TableVersion(0, "0"))); }
private static string ConvertToRowPath(SiloAddress siloAddress) { return("/" + siloAddress.ToParsableString()); }
internal static String ParseDeploymentSiloKey(String deploymentId, SiloAddress siloAddress) { return(String.Format("{0}{1}{2}", ParseDeploymentKVPrefix(deploymentId), KeySeparator, siloAddress.ToParsableString())); }
private static string BuildKey(SiloAddress address) { return(address.ToParsableString().Replace('.', '_')); }
public bool UpdateIAmAlive(string clusterId, SiloAddress address, DateTime iAmAlivetime) { bool ret = false; string val = iAmAlivetime.ToString(); var item = list.ToArray().Where((x) => x != null && x.DeploymentId == clusterId && x.ParsableAddress == address.ToParsableString()).First(); if (item != null) { item.IAmAliveTime = iAmAlivetime; ret = true; } return(ret); }
public MembershipTableData ToMembershipTableData(SiloAddress key) { var data = list.ToArray().Where((x) => x != null) .Select(x => x.ToMembershipEntryTuple()) .ToList(); var items = data.TakeWhile((x) => x.Item1.SiloAddress.ToParsableString() == key.ToParsableString()).ToList(); return(new MembershipTableData(items, _tableVersion)); }