public void Should_add_properties() { var info = new ReplicaInfo("environment", "application", "replica"); info.SetProperty("Process name", "Vostok.App.1"); info.SetProperty("Process ID", "4242"); info.Properties .Should() .BeEquivalentTo( new Dictionary <string, string> { { "Process name", "Vostok.App.1" }, { "Process ID", "4242" } }); }
public void Start_should_create_node_with_replica_properties() { var replica = new ReplicaInfo("default", "vostok", "https://github.com/vostok"); replica.SetProperty("key", "value"); CreateEnvironmentNode(replica.Environment); using (var beacon = GetServiceBeacon(replica)) { beacon.Start(); beacon.WaitForInitialRegistrationAsync().ShouldCompleteIn(DefaultTimeout); var path = new ServiceDiscoveryPathHelper(new ServiceBeaconSettings().ZooKeeperNodesPrefix, ZooKeeperPathEscaper.Instance) .BuildReplicaPath(replica.Environment, replica.Application, replica.Replica); var data = ZooKeeperClient.GetData(path).Data; var dict = ReplicaNodeDataSerializer.Deserialize(replica.Environment, replica.Application, replica.Replica, data).Properties; dict["key"].Should().Be("value"); } }
private void FillProperties(ReplicaInfo replicaInfo) { replicaInfo.SetProperty(ReplicaInfoKeys.Environment, environment); replicaInfo.SetProperty(ReplicaInfoKeys.Application, application); replicaInfo.SetProperty(ReplicaInfoKeys.Replica, replica); replicaInfo.SetProperty(ReplicaInfoKeys.Url, url?.ToString()); replicaInfo.SetProperty(ReplicaInfoKeys.Host, host); replicaInfo.SetProperty(ReplicaInfoKeys.ProcessName, processName); replicaInfo.SetProperty(ReplicaInfoKeys.ProcessId, processId?.ToString()); replicaInfo.SetProperty(ReplicaInfoKeys.BaseDirectory, baseDirectory); replicaInfo.SetProperty(ReplicaInfoKeys.CommitHash, commitHash); replicaInfo.SetProperty(ReplicaInfoKeys.ReleaseDate, releaseDate); replicaInfo.SetProperty(ReplicaInfoKeys.Dependencies, FormatDependencies()); replicaInfo.SetProperty(ReplicaInfoKeys.Port, port?.ToString()); foreach (var property in properties) { replicaInfo.SetProperty(property.Key, property.Value); } }