public void Should_get_all_roles_for_default_and_regex_of_the_machines_hostname_direct_match() { var machineName = "abc"; var hname = "abc"; var sqlToGraphiteConfigHosts = new List<Host>(); var hosta = new Host { Name = "default", Roles = new List<Role>() }; var hostb = new Host { Name = "notThis", Roles = new List<Role>() }; var hostc = new Host { Name = hname, Roles = new List<Role>() }; hosta.Roles.Add(new Role { Name = "a1" }); hosta.Roles.Add(new Role { Name = "a2" }); hostb.Roles.Add(new Role { Name = "b1" }); hostc.Roles.Add(new Role { Name = "c1" }); sqlToGraphiteConfigHosts.Add(hosta); sqlToGraphiteConfigHosts.Add(hostb); sqlToGraphiteConfigHosts.Add(hostc); environment = MockRepository.GenerateMock<IEnvironment>(); environment.Expect(x => x.GetMachineName()).Return(machineName); var roleConfig = new RoleConfig(sqlToGraphiteConfigHosts, environment); var roleList = roleConfig.GetRoleListToRunOnThisMachine(); Assert.That(roleList.Count, Is.EqualTo(3)); Assert.That(roleList[0], Is.EqualTo("a1")); Assert.That(roleList[1], Is.EqualTo("a2")); Assert.That(roleList[2], Is.EqualTo("c1")); }
public void Should_not_validate_host_if_host_role_does_not_exist() { var h = new Host { Name = this.hostname1 }; var r = new Role { Name = this.rolename1 }; h.Roles.Add(r); this.config.Hosts.Add(h); //Test var ex = Assert.Throws<RoleNotDefinedForHostException>(() => this.config.Validate()); //Test Assert.That(ex.Message, Is.EqualTo(string.Format("The role {0} has not been defined for host {1}", this.rolename1, this.hostname1))); }
public void Should_add_single_host() { var h = new Host { Name = this.hostname1 }; var r = new Role { Name = this.rolename1 }; h.Roles.Add(r); this.config.Hosts.Add(h); //Test var sqlToGraphiteConfig = Helper.SerialiseDeserialise(this.config); //Assert Assert.That(sqlToGraphiteConfig.Hosts[0].Name, Is.EqualTo(this.hostname1)); Assert.That(sqlToGraphiteConfig.Hosts[0].Roles[0].Name, Is.EqualTo(this.rolename1)); }
public void Should_get_all_roles_for_default_and_not_host() { var sqlToGraphiteConfigHosts = new List<Host>(); var hosta = new Host { Name = "default", Roles = new List<Role>() }; var hostb = new Host { Name = "notThis", Roles = new List<Role>() }; hosta.Roles.Add(new Role { Name = "a1" }); hosta.Roles.Add(new Role { Name = "a2" }); hostb.Roles.Add(new Role { Name = "b1" }); sqlToGraphiteConfigHosts.Add(hosta); sqlToGraphiteConfigHosts.Add(hostb); var roleConfig = new RoleConfig(sqlToGraphiteConfigHosts, environment); var roleList = roleConfig.GetRoleListToRunOnThisMachine(); Assert.That(roleList.Count, Is.EqualTo(2)); Assert.That(roleList[0], Is.EqualTo("a1")); Assert.That(roleList[1], Is.EqualTo("a2")); }
public void Should_add_multiple_hosts_of_same_type() { var h1 = new Host { Name = this.hostname1 }; var h2 = new Host { Name = this.hostname2 }; var r1 = new Role { Name = this.rolename1 }; var r2 = new Role { Name = this.rolename2 }; h1.Roles.Add(r1); this.config.Hosts.Add(h1); h2.Roles.Add(r2); this.config.Hosts.Add(h2); //Test var sqlToGraphiteConfig = Helper.SerialiseDeserialise(this.config); //Assert Assert.That(sqlToGraphiteConfig.Hosts[0].Name, Is.EqualTo(this.hostname1)); Assert.That(sqlToGraphiteConfig.Hosts[0].Roles[0].Name, Is.EqualTo(this.rolename1)); Assert.That(sqlToGraphiteConfig.Hosts[1].Name, Is.EqualTo(this.hostname2)); Assert.That(sqlToGraphiteConfig.Hosts[1].Roles[0].Name, Is.EqualTo(this.rolename2)); }
public void AddHost(string name, List<Role> roles) { var host = new Host { Name = name, Roles = roles }; this.masterConfig.Hosts.Add(host); }
private static void ThrowExceptionIfHostIsNotFound(string hostname, Host foundHost) { if (foundHost == null) { throw new HostNotFoundException(string.Format("Host {0} has not been found", hostname)); } }
private static List<Host> CreateTwoHosts() { var hosts = new List<Host>(); var host1 = new Host { Name = "abc" }; host1.Roles.Add(new Role { Name = "123" }); var host2 = new Host { Name = "def" }; host2.Roles.Add(new Role { Name = "456" }); host2.Roles.Add(new Role { Name = "789" }); hosts.Add(host1); hosts.Add(host2); return hosts; }
public void Should_generate_test_config_file() { try { var log = LogManager.GetLogger("log"); var encryption = new Encryption(); var simpleCs = encryption.Encrypt("some Cs"); log4net.Config.XmlConfigurator.Configure(); var job1 = new WmiClient { ClientName = "GraphiteTcpClient", Name = "GetNumberOfTransactionsASecond", Hostname = simpleCs, Sql = "some sql" }; var job2 = new WmiClient { ClientName = "GraphiteUdpClient", Name = "GetNumberOfDeliveryies", Hostname = simpleCs, Sql = "some sql1" }; var client1 = new GraphiteTcpClient { ClientName = "GraphiteTcpClient", Port = 2003, Hostname = "metrics.london.ttldev.local" }; var client2 = new GraphiteUdpClient { ClientName = "GraphiteUdpClient", Port = 2003, Hostname = "metrics.london.ttldev.local" }; var config = new SqlToGraphiteConfig(new AssemblyResolver(new DirectoryImpl(), log), log); config.Jobs.Add(job1); config.Jobs.Add(job2); var host1 = new Host { Name = "TTL001121" }; var host2 = new Host { Name = "Server1" }; var role1 = new Role { Name = "ProductionTests" }; var role2 = new Role { Name = "default" }; var role3 = new Role { Name = "SqlTests" }; host1.Roles.Add(role1); host1.Roles.Add(role2); host2.Roles.Add(role2); host2.Roles.Add(role3); config.Hosts.Add(host1); config.Hosts.Add(host2); var template = new Template(); var wi = new WorkItems { RoleName = role1.Name, TaskSet = new List<TaskSet>() }; var taskSet = new TaskSet { Frequency = 1000 }; taskSet.Tasks.Add(new Task { JobName = job1.Name }); wi.TaskSet.Add(taskSet); template.WorkItems.Add(wi); var wi1 = new WorkItems { RoleName = role2.Name, TaskSet = new List<TaskSet>() }; var taskSet1 = new TaskSet { Frequency = 2000 }; taskSet1.Tasks.Add(new Task { JobName = job2.Name }); wi1.TaskSet.Add(taskSet1); template.WorkItems.Add(wi1); var wi2 = new WorkItems { RoleName = role3.Name, TaskSet = new List<TaskSet>() }; var taskSet2 = new TaskSet { Frequency = 3000 }; wi2.TaskSet.Add(taskSet2); template.WorkItems.Add(wi2); config.Templates.Add(template); config.Clients = new ListOfUniqueType<Client> { client1, client2 }; //var genericSerializer = new GenericSerializer(Global.GetNameSpace()); //string xml = genericSerializer.Serialize(config); //Console.WriteLine(xml); //var sqlToGraphiteConfig = genericSerializer.Deserialize<SqlToGraphiteConfig>(xml); //foreach (var job in sqlToGraphiteConfig.Jobs) //{ //Console.WriteLine(job.Type); //} } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void Should_validate_job_if_client_exist() { var clientName = "cName"; var c = new GraphiteTcpClient(); c.ClientName = clientName; var jobName = "jobName"; var job = new WmiClient(); job.Name = jobName; job.ClientName = clientName; var wi = CreateWorkItems(jobName, this.rolename1, 100); var t = new Template(); t.WorkItems.Add(wi); this.config.Templates.Add(t); this.config.Jobs.Add(job); //var job = new SqlServer { Name = this.rolename1 }; //job.ClientName = clientName; var h = new Host { Name = this.hostname1 }; var r = new Role { Name = this.rolename1 }; h.Roles.Add(r); this.config.Clients.Add(c); this.config.Hosts.Add(h); //config.Jobs.Add(job); //Test this.config.Validate(); }
private void CheckAllRolesExist(Host host) { foreach (var role in host.Roles) { var rtn = false; foreach (var template in this.Templates) { foreach (var wi in template.WorkItems) { if (role.Name == wi.RoleName) { rtn = true; } } } if (!rtn) { throw new RoleNotDefinedForHostException(string.Format("The role {0} has not been defined for host {1}", role.Name, host.Name)); } } }