コード例 #1
0
        public void Should_map_sucessfully()
        {
            string hostname = "hostname";
            var clientName = "someClient";
            var freq = 100;
            var configMapper = new ConfigMapper(hostname, this.stop, this.dataClientFactory, this.graphiteClientFactory, this.log, configRepository);
            var taskSets = new List<TaskSet>();
            var taskSet = new TaskSet { Frequency = freq, Tasks = new List<Task>() };
            string name = new Guid().ToString();
            Job job = new WmiClient();
            job.ClientName = clientName;

            configRepository.Expect(y => y.GetJob(name)).Return(job);
            configRepository.Expect(y => y.GetClient(clientName)).Return(new GraphiteTcpClient());

            taskSet.Tasks.Add(new Task() { JobName = name });
            taskSets.Add(taskSet);
            //Test
            var taskList = configMapper.Map(taskSets);
            //Assert
            Assert.That(taskList.Count, Is.EqualTo(1));
            Assert.That(taskList[0].Frequency, Is.EqualTo(freq));
            Assert.That(taskList[0].Tasks.Count, Is.EqualTo(1));
            Assert.That(taskList[0].Tasks[0].GetType(), Is.EqualTo(typeof(RunableRunTask)));
            configRepository.VerifyAllExpectations();
        }
コード例 #2
0
        public void Should_throw_exception_if_graphite_client_is_unknown()
        {
            string clientName = "notKnown";
            string jobName = "someJob";
            var job = new WmiClient();
            var msg = "some exception message";
            job.ClientName = clientName;
            job.Name = jobName;
            configRepository.Expect(x => x.GetClient(clientName)).Throw(new ClientNotFoundException(msg));
            configRepository.Expect(x => x.GetJob(jobName)).Return(job);
            string hostname = "hostname";
            var configMapper = new ConfigMapper(hostname, this.stop, this.dataClientFactory, this.graphiteClientFactory, this.log, configRepository);
            var taskSets = new List<TaskSet>();
            var taskSet = new TaskSet { Frequency = 100, Tasks = new List<Task>() };
            var t = new Task { JobName = jobName };

            taskSet.Tasks.Add(t);

            taskSets.Add(taskSet);
            //Test
            var ex = Assert.Throws<ClientNotFoundException>(() => configMapper.Map(taskSets));
            //Assert
            Assert.That(ex.Message, Is.EqualTo(msg));
        }
コード例 #3
0
 private TaskSet CreateTaskSetItem(TaskDetails taskProperties)
 {
     var tasks = new List<Task> { CreateTask(taskProperties) };
     var taskSetItem = new TaskSet { Frequency = taskProperties.Frequency, Tasks = tasks };
     return taskSetItem;
 }
コード例 #4
0
        /*
        This needs to be better should should be able to not have to loop so much.
        */
        private static bool RemoveJob(string jobName, TaskSet ts)
        {
            bool found = false;
            Task foundTask = null;
            foreach (var t in ts.Tasks)
            {
                if (t.JobName == jobName)
                {
                    found = true;
                    foundTask = t;
                }
            }

            if (found)
            {
                ts.Tasks.Remove(foundTask);
            }

            return found;
        }
コード例 #5
0
        private static bool AddTaskIfFrequencyIsTheSame(TaskDetails taskProperties, TaskSet t)
        {
            bool added = false;
            if (t.Frequency == taskProperties.Frequency)
            {
                t.Tasks.Add(CreateTask(taskProperties));
                added = true;
            }

            return added;
        }
コード例 #6
0
 public void AddRoleFrequency(int frequency, string roleName)
 {
     var role = this.GetRole(roleName);
     var ts = new TaskSet { Frequency = frequency, Tasks = new List<Task>() };
     role.TaskSet.Add(ts);
 }
コード例 #7
0
 private Template CreateSingleRoleAndJob(string jobName, int frequency, string roleName)
 {
     var ts = new TaskSet { Frequency = frequency, Tasks = new List<Task>() };
     var task = new Task { JobName = jobName };
     ts.Tasks.Add(task);
     var template = new Template();
     var wi = new WorkItems { RoleName = roleName, TaskSet = new List<TaskSet>() };
     wi.TaskSet.Add(ts);
     var wilist = new List<WorkItems> { wi };
     template.WorkItems = wilist;
     this.config.Templates.Add(template);
     return template;
 }
コード例 #8
0
 private Template CreateMultipoleRolesAndJobs(string jobName, string jobName1, int frequency, int frequency1, string roleName)
 {
     var ts1 = new TaskSet { Frequency = frequency, Tasks = new List<Task>() };
     var ts2 = new TaskSet { Frequency = frequency1, Tasks = new List<Task>() };
     var task = new Task { JobName = jobName };
     ts1.Tasks.Add(task);
     var task1 = new Task { JobName = jobName1 };
     ts2.Tasks.Add(task1);
     var template = new Template();
     var wi = new WorkItems { RoleName = roleName, TaskSet = new List<TaskSet>() };
     wi.TaskSet.Add(ts1);
     wi.TaskSet.Add(ts2);
     var wilist = new List<WorkItems> { wi };
     template.WorkItems = wilist;
     this.config.Templates.Add(template);
     return template;
 }
コード例 #9
0
        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());
            }
        }
コード例 #10
0
        public void Should_not_merge_taskLists_from_templates_with_the_same_freq()
        {
            var data = new List<WorkItems>();
            var workItem1 = new WorkItems { RoleName = "default", TaskSet = new List<TaskSet>() };
            var ts1 = new TaskSet
                {
                    Frequency = 123,
                    Tasks = new List<Task> { new Task() { JobName = "a" } }
                };

            workItem1.TaskSet.Add(ts1);

            var workItem2 = new WorkItems { RoleName = "webserver", TaskSet = new List<TaskSet>() };
            var ts2 = new TaskSet
            {
                Frequency = 123,
                Tasks = new List<Task> { new Task() { JobName = "b" } }
            };

            workItem2.TaskSet.Add(ts2);

            data.Add(workItem1);
            data.Add(workItem2);

            var templates = new Templates1(data);
            var roles = new List<string> { "webserver", "default" };
            //Test
            var result = templates.GetTaskSetList(roles);
            //Assert
            Assert.That(result.Count, Is.EqualTo(2));
            Assert.That(result[0].Frequency, Is.EqualTo(123));
            Assert.That(result[0].Tasks.Count, Is.EqualTo(1));
            Assert.That(result[0].Tasks[0].JobName, Is.EqualTo("a"));
            Assert.That(result[1].Frequency, Is.EqualTo(123));
            Assert.That(result[1].Tasks.Count, Is.EqualTo(1));
            Assert.That(result[1].Tasks[0].JobName, Is.EqualTo("b"));
        }
コード例 #11
0
 private static WorkItems CreateWorkItems(string jobName, string roleName, int freq)
 {
     var wi = new WorkItems { RoleName = roleName };
     var ts = new TaskSet { Frequency = freq };
     var task = new Task { JobName = jobName };
     ts.Tasks.Add(task);
     wi.TaskSet.Add(ts);
     return wi;
 }