예제 #1
0
        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" }
            });
        }
예제 #2
0
        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);
            }
        }