public void Catalog_RegistrationDeregistration() { var c = ClientTest.MakeClient(); var service = new AgentService() { ID = "redis1", Service = "redis", Tags = new[] {"master", "v1"}, Port = 8000 }; var check = new AgentCheck() { Node = "foobar", CheckID = "service:redis1", Name = "Redis health check", Notes = "Script based health check", Status = CheckStatus.Passing, ServiceID = "redis1" }; var reg = new CatalogRegistration() { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10", Service = service, Check = check }; c.Catalog.Register(reg); var node = c.Catalog.Node("foobar"); Assert.IsTrue(node.Response.Services.ContainsKey("redis1")); var health = c.Health.Node("foobar"); Assert.AreEqual("service:redis1", health.Response[0].CheckID); var dereg = new CatalogDeregistration() { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10", CheckID = "service:redis1" }; c.Catalog.Deregister(dereg); health = c.Health.Node("foobar"); Assert.AreEqual(0, health.Response.Length); dereg = new CatalogDeregistration() { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10" }; c.Catalog.Deregister(dereg); node = c.Catalog.Node("foobar"); Assert.IsNull(node.Response); }
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); }
public async Task Catalog_EnableTagOverride() { var service = new AgentService() { ID = "redis1", Service = "redis", Tags = new[] { "master", "v1" }, Port = 8000 }; var registration = new CatalogRegistration() { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10", Service = service }; using (IConsulClient client = new ConsulClient()) { await client.Catalog.Register(registration); var node = await client.Catalog.Node("foobar"); Assert.Contains("redis1", node.Response.Services.Keys); Assert.False(node.Response.Services["redis1"].EnableTagOverride); var services = await client.Catalog.Service("redis"); Assert.NotEmpty(services.Response); Assert.Equal("redis", services.Response[0].ServiceName); Assert.False(services.Response[0].ServiceEnableTagOverride); } // Use a new scope using (IConsulClient client = new ConsulClient()) { service.EnableTagOverride = true; await client.Catalog.Register(registration); var node = await client.Catalog.Node("foobar"); Assert.Contains("redis1", node.Response.Services.Keys); Assert.True(node.Response.Services["redis1"].EnableTagOverride); var services = await client.Catalog.Service("redis"); Assert.NotEmpty(services.Response); Assert.Equal("redis", services.Response[0].ServiceName); Assert.True(services.Response[0].ServiceEnableTagOverride); } }
public async Task Catalog_RegistrationDeregistration() { var svcID = KVTest.GenerateTestKeyName(); var service = new AgentService { ID = svcID, Service = "redis", Tags = new[] { "master", "v1" }, Port = 8000 }; var check = new AgentCheck { Node = "foobar", CheckID = "service:" + svcID, Name = "Redis health check", Notes = "Script based health check", Status = HealthStatus.Passing, ServiceID = svcID }; var registration = new CatalogRegistration { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10", Service = service, Check = check }; await _client.Catalog.Register(registration); var node = await _client.Catalog.Node("foobar"); Assert.True(node.Response.Services.ContainsKey(svcID)); var health = await _client.Health.Node("foobar"); Assert.Equal("service:" + svcID, health.Response[0].CheckID); var dereg = new CatalogDeregistration { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10", CheckID = "service:" + svcID }; await _client.Catalog.Deregister(dereg); health = await _client.Health.Node("foobar"); Assert.Empty(health.Response); dereg = new CatalogDeregistration { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10" }; await _client.Catalog.Deregister(dereg); node = await _client.Catalog.Node("foobar"); Assert.Null(node.Response); }
public async Task Catalog_EnableTagOverride() { var svcID = KVTest.GenerateTestKeyName(); var service = new AgentService { ID = svcID, Service = svcID, Tags = new[] { "master", "v1" }, Port = 8000 }; var registration = new CatalogRegistration { Datacenter = "dc1", Node = "foobar", Address = "192.168.10.10", Service = service }; using (IConsulClient client = new ConsulClient(c => { c.Token = TestHelper.MasterToken; c.Address = TestHelper.HttpUri; })) { await client.Catalog.Register(registration); var node = await client.Catalog.Node("foobar"); Assert.Contains(svcID, node.Response.Services.Keys); Assert.False(node.Response.Services[svcID].EnableTagOverride); var services = await client.Catalog.Service(svcID); Assert.NotEmpty(services.Response); Assert.Equal(svcID, services.Response[0].ServiceName); Assert.False(services.Response[0].ServiceEnableTagOverride); } // Use a new scope using (IConsulClient client = new ConsulClient(c => { c.Token = TestHelper.MasterToken; c.Address = TestHelper.HttpUri; })) { service.EnableTagOverride = true; await client.Catalog.Register(registration); var node = await client.Catalog.Node("foobar"); Assert.Contains(svcID, node.Response.Services.Keys); Assert.True(node.Response.Services[svcID].EnableTagOverride); var services = await client.Catalog.Service(svcID); Assert.NotEmpty(services.Response); Assert.Equal(svcID, services.Response[0].ServiceName); Assert.True(services.Response[0].ServiceEnableTagOverride); } }
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 <bool> CatalogRegister(CatalogRegistration reg, WriteOptions q) { var result = await _consulClient.Catalog.Register(reg, q); return(result.StatusCode == HttpStatusCode.OK); }
public Task <WriteResult> Register(CatalogRegistration reg, WriteOptions q, CancellationToken ct = new CancellationToken()) { throw new System.NotImplementedException(); }