/**********************************************************************************/

        private void processCreateReport(oadrCreateReportType createReport)
        {
            CreatedReport createdReport;

            // send the createReport callback immediately to allow UI's to update
            // if there's a one shot or history report request, these reports
            // need to be registered before processCreatedReport() is called below
            m_callbacks.processCreateReport(createReport.oadrReportRequest);

            lock (m_ven)
            {
                bool valid = m_resources.createReport(createReport);

                if (valid)
                {
                    createdReport = m_ven.createdReport(createReport.requestID, 200, "OK", m_resources.PendingReports);
                }
                else
                {
                    createdReport = m_ven.createdReport(createReport.requestID, 452, "INVALID ID", m_resources.PendingReports);
                }

                // the new report might have a start date of NOW; call sendReports to force
                // the report to be sent immediately
                m_resources.sendReports(DateTime.Now);
            }

            m_callbacks.processCreatedReport(createdReport);
        }
Пример #2
0
        /**********************************************************************************/

        public void addCreateReport(oadrCreateReportType createReport)
        {
            lock (this)
            {
                m_reportHandler.createReport(createReport.oadrReportRequest, m_reports, m_ridToInterval);
            }
        }
Пример #3
0
        public void R1_3010_TH_VTN_1()
        {
            VEN2b ven = new VEN2b(new HttpWebRequestWrapper(false, System.Net.SecurityProtocolType.Tls12), TestProperties.vtnURL, TestProperties.venName, "", TestProperties.venPassword);

            QueryRegistration queryRegistration = ven.queryRegistration();

            OadrPoll poll = ven.poll();

            poll.responseTypeIs(typeof(oadrCreateReportType));

            oadrCreateReportType createReport = poll.getCreateReportResponse();

            Console.Out.WriteLine(poll.responseBody);

            ReportDescription reportDescription = new ReportDescription();

            reportDescription.addReport(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, ReportName.TELEMETRY_STATUS, 0, DurationModifier.MINUTES);

            DateTime dtstart = DateTime.UtcNow;

            reportDescription.addIntervalResourceStatus(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, dtstart,
                                                        0, DurationModifier.SECONDS, "rid", 1, (float)1.0, DataQuality.qualityGoodNonSpecific, true, false, (float)1.0, (float)1.0, (float)1.0, (float)1.0,
                                                        (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0,
                                                        (float)1.0, (float)1.0);

            CreatedReport createdReport = ven.createdReport(createReport.requestID, 200, "OK");

            Assert.IsNotNull(createdReport.response);

            List <string> reportSpecifierIDs = new List <string>();

            reportSpecifierIDs.Add(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID);

            UpdateReport updateReport = ven.updateReport(createReport.requestID, reportDescription, reportSpecifierIDs, dtstart);

            Assert.IsNotNull(updateReport.response);
        }
Пример #4
0
        static public oadrCreateReportType generateCreateReport(DateTime dtstartUTC, string reportRequestID, string telemetryStatusReportSpecifierID)
        {
            oadrCreateReportType createReport = new oadrCreateReportType();

            createReport.schemaVersion = "2.0b";
            createReport.requestID     = "requestid";
            createReport.venID         = "venid";

            oadrReportRequestType reportRequest = new oadrReportRequestType();

            reportRequest.reportRequestID = reportRequestID;
            reportRequest.reportSpecifier = new ReportSpecifierType();

            reportRequest.reportSpecifier.reportSpecifierID    = telemetryStatusReportSpecifierID;
            reportRequest.reportSpecifier.granularity          = new DurationPropType();
            reportRequest.reportSpecifier.granularity.duration = "PT10S";

            reportRequest.reportSpecifier.reportBackDuration          = new DurationPropType();
            reportRequest.reportSpecifier.reportBackDuration.duration = "PT1M";

            reportRequest.reportSpecifier.reportInterval                              = new WsCalendarIntervalType();
            reportRequest.reportSpecifier.reportInterval.properties                   = new properties();
            reportRequest.reportSpecifier.reportInterval.properties.dtstart           = new dtstart();
            reportRequest.reportSpecifier.reportInterval.properties.dtstart.datetime  = dtstartUTC;
            reportRequest.reportSpecifier.reportInterval.properties.duration          = new DurationPropType();
            reportRequest.reportSpecifier.reportInterval.properties.duration.duration = "PT5M";

            reportRequest.reportSpecifier.specifierPayload        = new SpecifierPayloadType[1];
            reportRequest.reportSpecifier.specifierPayload[0]     = new SpecifierPayloadType();
            reportRequest.reportSpecifier.specifierPayload[0].rID = "resource1_status";

            createReport.oadrReportRequest    = new oadrReportRequestType[1];
            createReport.oadrReportRequest[0] = reportRequest;

            return(createReport);
        }
Пример #5
0
        public void R1_3020_TH_VTN_1()
        {
            VEN2b ven = new VEN2b(new HttpWebRequestWrapper(false, System.Net.SecurityProtocolType.Tls12), TestProperties.vtnURL, TestProperties.venName, TestProperties.venID, TestProperties.venPassword);

            OadrPoll poll = ven.poll();

            poll.responseTypeIs(typeof(oadrCreateReportType));

            oadrCreateReportType createReport = poll.getCreateReportResponse();

            Console.Out.WriteLine(poll.responseBody);

            ReportDescription reportDescription = new ReportDescription();

            reportDescription.addReport(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, ReportName.TELEMETRY_STATUS, 0, DurationModifier.MINUTES);


            CreatedReport createdReport = ven.createdReport(createReport.requestID, 200, "OK");

            Assert.IsNotNull(createdReport.response);

            List <string> reportSpecifierIDs = new List <string>();

            int sleepTime = (int)(createReport.oadrReportRequest[0].reportSpecifier.reportInterval.properties.dtstart.datetime - DateTime.UtcNow).TotalSeconds;

            if (sleepTime > 0)
            {
                System.Threading.Thread.Sleep(sleepTime * 1000);
            }

            reportSpecifierIDs.Add(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID);

            DateTime endTime = createReport.oadrReportRequest[0].reportSpecifier.reportInterval.properties.dtstart.datetime +
                               System.Xml.XmlConvert.ToTimeSpan(createReport.oadrReportRequest[0].reportSpecifier.reportInterval.properties.duration.duration);

            // convert ISO8601 duration to timespan
            // http://stackoverflow.com/questions/62804/how-to-convert-iso-8601-duration-to-timespan-in-vb-net
            // http://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.totimespan.aspx
            int sleepDelay = (int)System.Xml.XmlConvert.ToTimeSpan(createReport.oadrReportRequest[0].reportSpecifier.reportBackDuration.duration).TotalSeconds;

            // the test should continue until the end time has passed, but the test set exits after it receives 2 updates
            // while (DateTime.Now < endTime)
            for (int count = 0; count < 2; count++)
            {
                DateTime dtstart = DateTime.UtcNow;

                reportDescription.addIntervalResourceStatus(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, dtstart,
                                                            0, DurationModifier.SECONDS, "rid", 1, (float)1.0, DataQuality.qualityGoodNonSpecific, true, false, (float)1.0, (float)1.0, (float)1.0, (float)1.0,
                                                            (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0,
                                                            (float)1.0, (float)1.0);

                UpdateReport updateReport = ven.updateReport(createReport.requestID, reportDescription, reportSpecifierIDs, dtstart);

                Assert.IsNotNull(updateReport.response);

                if (count == 0)
                {
                    System.Threading.Thread.Sleep(sleepDelay * 1000);
                }
            }
        }
Пример #6
0
        /**********************************************************/

        public bool createReport(oadrCreateReportType createReport)
        {
            return(m_reportHandler.createReport(createReport.oadrReportRequest, m_reports, m_ridToInterval));
        }