Exemple #1
0
        internal string RunTestTask(string connectionString, string query)
        {
            ManagementPackClass AllManagementServersPoolClass =
                GetManagementPackClass("Microsoft.SystemCenter.Library", "Microsoft.SystemCenter.AllManagementServersPool");

            IObjectReader <MonitoringObject> Targets = managementGroup.EntityObjects.GetObjectReader <MonitoringObject>(AllManagementServersPoolClass, ObjectQueryOptions.Default);
            EnterpriseManagementObject       Target  = Targets.First();
            // Get the task.
            string TaskQuery = "Name = 'QueryOleDbMonitorTemplate.OLEDBMontiorTESTTask'";
            ManagementPackTaskCriteria taskCriteria = new ManagementPackTaskCriteria(TaskQuery);

            IList <ManagementPackTask> tasks = managementGroup.TaskConfiguration.GetTasks(taskCriteria);
            ManagementPackTask         task  = null;

            if (tasks.Count == 1)
            {
                task = tasks[0];
            }
            else
            {
                throw new InvalidOperationException(
                          "Error! Expected one task with: " + query);
            }

            // Use the default task configuration.
            Microsoft.EnterpriseManagement.Runtime.TaskConfiguration config =
                new Microsoft.EnterpriseManagement.Runtime.TaskConfiguration();

            //Get OleDbTriggerProbe module to override paramters
            ManagementPackModuleType OleDbTriggerProbeMoudule =
                managementGroup.Monitoring.GetModuleType("System.OleDbTriggerProbe", managementGroup.ManagementPacks.GetManagementPack(SystemManagementPack.System));

            ManagementPackOverrideableParameter overrideConnecionStringParam = OleDbTriggerProbeMoudule.OverrideableParameterCollection["ConnectionString"];
            ManagementPackOverrideableParameter overrideQueryParam           = OleDbTriggerProbeMoudule.OverrideableParameterCollection["Query"];


            config.Overrides.Add(new Pair <ManagementPackOverrideableParameter, string>(overrideConnecionStringParam,
                                                                                        connectionString
                                                                                        ));
            config.Overrides.Add(new Pair <ManagementPackOverrideableParameter, string>(overrideQueryParam,
                                                                                        query
                                                                                        ));

            //execute task

            IList <Microsoft.EnterpriseManagement.Runtime.TaskResult> result = managementGroup.TaskRuntime.ExecuteTask(Target, task, config);
            XmlDocument xd = new XmlDocument();

            xd.LoadXml(result[0].Output);
            TestReportFactory reportTestFactory = new TestReportFactory();

            return(GetTestResult(xd, reportTestFactory).UiText());
        }
Exemple #2
0
        private ITestReport GetTestResult(XmlDocument xd, TestReportFactory reportTestFactory)
        {
            try
            {
                //Error check
                if ((int.Parse(xd.SelectSingleNode("DataItem/HRResult").InnerText) != 0))
                {
                    return(reportTestFactory.CreateErrorTest(xd.SelectSingleNode("DataItem/ErrorDescription").InnerText));
                }

                //check columns violation
                if (xd.SelectNodes("DataItem/Columns")[0].ChildNodes.Count > 1)
                {
                    return(reportTestFactory.CreateColumnValidation(xd.SelectNodes("DataItem/Columns").Count));
                }

                //check rows violation
                if (int.Parse(xd.SelectSingleNode("DataItem/RowLength").InnerText) > 1)
                {
                    return(reportTestFactory.CreateRowsValidation());
                }

                //check numerical violation
                int val = 0;
                if (!int.TryParse(xd.SelectSingleNode("DataItem/Columns/Column[1]").InnerText, out val))
                {
                    return(reportTestFactory.CreateValueValidation());
                }
                //all
                return(reportTestFactory.CreateTestReport(val));
            }
            catch (Exception ex)
            {
                return(reportTestFactory.CreateErrorTest(ex.Message));
            }
        }