示例#1
0
        public async Task PreparedQuery_Test()
        {
            var client = new ConsulClient();

            var registration = new CatalogRegistration()
            {
                Datacenter = "dc1",
                Node       = "foobaz",
                Address    = "192.168.10.10",
                Service    = new AgentService()
                {
                    ID      = "sql1",
                    Service = "sql",
                    Tags    = new[] { "master", "v1" },
                    Port    = 8000
                }
            };

            await client.Catalog.Register(registration);

            Assert.NotNull((await client.Catalog.Node("foobaz")).Response);

            var mgmtquerytoken = new QueryOptions()
            {
                Token = "yep"
            };

            var def = new PreparedQueryDefinition {
                Service = new ServiceQuery()
                {
                    Service = "sql"
                }
            };

            var id = (await client.PreparedQuery.Create(def)).Response;

            def.ID = id;

            var defs = (await client.PreparedQuery.Get(id)).Response;

            Assert.NotNull(defs);
            Assert.True(defs.Length == 1);
            Assert.Equal(def.Service.Service, defs[0].Service.Service);

            defs = null;
            defs = (await client.PreparedQuery.List(mgmtquerytoken)).Response;

            Assert.NotNull(defs);
            Assert.True(defs.Length == 1);
            Assert.Equal(def.Service.Service, defs[0].Service.Service);

            def.Name = "my-query";

            await client.PreparedQuery.Update(def);

            defs = null;
            defs = (await client.PreparedQuery.Get(id)).Response;

            Assert.NotNull(defs);
            Assert.True(defs.Length == 1);
            Assert.Equal(def.Name, defs[0].Name);

            var results = (await client.PreparedQuery.Execute(id)).Response;

            Assert.NotNull(results);
            var nodes = results.Nodes.Where(n => n.Node.Name == "foobaz").ToArray();

            Assert.True(nodes.Length == 1);
            Assert.Equal(nodes[0].Node.Name, "foobaz");

            results = null;
            results = (await client.PreparedQuery.Execute("my-query")).Response;

            Assert.NotNull(results);
            nodes = results.Nodes.Where(n => n.Node.Name == "foobaz").ToArray();
            Assert.True(nodes.Length == 1);
            Assert.Equal(results.Nodes[0].Node.Name, "foobaz");

            await client.PreparedQuery.Delete(id);

            defs = null;
            defs = (await client.PreparedQuery.List(mgmtquerytoken)).Response;

            Assert.True(defs.Length == 0);
        }
        public async Task PreparedQuery_Test()
        {
            var client = new ConsulClient();

            var registration = new CatalogRegistration()
            {
                Datacenter = "dc1",
                Node = "foobar",
                Address = "192.168.10.10",
                Service = new AgentService()
                {
                    ID = "redis1",
                    Service = "redis",
                    Tags = new[] { "master", "v1" },
                    Port = 8000
                }
            };

            await client.Catalog.Register(registration);

            Assert.NotNull((await client.Catalog.Node("foobar")).Response);

            var mgmtquerytoken = new QueryOptions() { Token = "yep" };

            var def = new PreparedQueryDefinition { Service = new ServiceQuery() { Service = "redis" } };

            var id = (await client.PreparedQuery.Create(def)).Response;
            def.ID = id;

            var defs = (await client.PreparedQuery.Get(id)).Response;

            Assert.NotNull(defs);
            Assert.True(defs.Length == 1);
            Assert.Equal(def.Service.Service, defs[0].Service.Service);

            defs = null;
            defs = (await client.PreparedQuery.List(mgmtquerytoken)).Response;

            Assert.NotNull(defs);
            Assert.True(defs.Length == 1);
            Assert.Equal(def.Service.Service, defs[0].Service.Service);

            def.Name = "my-query";

            await client.PreparedQuery.Update(def);

            defs = null;
            defs = (await client.PreparedQuery.Get(id)).Response;

            Assert.NotNull(defs);
            Assert.True(defs.Length == 1);
            Assert.Equal(def.Name, defs[0].Name);

            var results = (await client.PreparedQuery.Execute(id)).Response;

            Assert.NotNull(results);
            Assert.True(results.Nodes.Length == 1);
            Assert.Equal(results.Nodes[0].Node.Name, "foobar");

            results = null;
            results = (await client.PreparedQuery.Execute("my-query")).Response;

            Assert.NotNull(results);
            Assert.True(results.Nodes.Length == 1);
            Assert.Equal(results.Nodes[0].Node.Name, "foobar");

            await client.PreparedQuery.Delete(id);

            defs = null;
            defs = (await client.PreparedQuery.List(mgmtquerytoken)).Response;

            Assert.True(defs.Length == 0);
        }