/**********************************************************************************/ 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); }
/**********************************************************************************/ public void addCreateReport(oadrCreateReportType createReport) { lock (this) { m_reportHandler.createReport(createReport.oadrReportRequest, m_reports, m_ridToInterval); } }
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); }
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); }
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); } } }
/**********************************************************/ public bool createReport(oadrCreateReportType createReport) { return(m_reportHandler.createReport(createReport.oadrReportRequest, m_reports, m_ridToInterval)); }