Пример #1
0
 public TestCase302(ILog log, TargetSiteWrapper target, int load_factor, List <IOpenSearchResultItem> foundItems) :
     base(log, target, foundItems)
 {
     Id               = "TC302";
     Title            = "Multiple Remote Download";
     base.load_factor = target.TargetSiteConfig.MaxDownloadThread;
 }
Пример #2
0
 public TestCase204(ILog log, TargetSiteWrapper target, int load_factor, IEnumerable <Data.Mission> missions, OfflineDataStatus offlineDataStatus, out List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, missions, out foundItems)
 {
     Id    = "TC204";
     Title = "Offline Data Query";
     this.offlineDataStatus = offlineDataStatus;
 }
Пример #3
0
 public TestCase702(ILog log, TargetSiteWrapper target, int load_factor, string storageName, List <string> uploadedFiles) : base(log, target, load_factor, null)
 {
     this.Id            = "TC702";
     this.Title         = "Single remote download from cloud storage";
     this.storageName   = storageName;
     this.uploadedFiles = uploadedFiles;
 }
Пример #4
0
        public static IEnumerable <CrossCatalogueCoverageFiltersDefinition> GenerateDataAvailabilityLatencyFiltersDefinition(string setName, CatalogueSetConfiguration setConfiguration, TargetSiteWrapper target)
        {
            List <CrossCatalogueCoverageFiltersDefinition> bulkDataDefs = new List <CrossCatalogueCoverageFiltersDefinition>();

            // Let's get the baseline
            var catalogueSetConfiguration = ResolveBaseline(setName, setConfiguration);

            TargetSiteWrapper ref_target = new TargetSiteWrapper(setConfiguration.ReferenceTargetSite, Configuration.Current.GetTargetSiteConfiguration(setConfiguration.ReferenceTargetSite));

            foreach (FiltersDefinition fd in GenerateFilterDefinitionsFromCollectionsDefinition(catalogueSetConfiguration))
            {
                // if there is no sensing start defined in the catalogue set
                // add a sensing time for the last 40 days
                if (!fd.Filters.Any(f => f.FullName == "{http://a9.com/-/opensearch/extensions/time/1.0/}start"))
                {
                    float max       = 40;
                    var   startDate = DateTime.UtcNow.Subtract(TimeSpan.FromDays(max));
                    fd.RemoveFilter("{http://a9.com/-/opensearch/extensions/time/1.0/}start");
                    fd.AddFilter("sensingStart", "{http://a9.com/-/opensearch/extensions/time/1.0/}start", startDate.ToString("s"), string.Format("last {0} days", max), null, null);
                }
                fd.AddFilter("count", "{http://a9.com/-/spec/opensearch/1.1/}count", "20", "", null, null);
                bulkDataDefs.Add(new CrossCatalogueCoverageFiltersDefinition(
                                     new TargetAndFiltersDefinition(target, fd),
                                     new TargetAndFiltersDefinition(ref_target, fd)
                                     ));
            }
            return(bulkDataDefs);
        }
Пример #5
0
 public TestCase101(ILog log, TargetSiteWrapper target, int load_factor) :
     base("TC101", "Service Reachability")
 {
     this.log         = log;
     this.load_factor = load_factor;
     this.target      = target;
     this.sp          = ServicePointManager.FindServicePoint(target.Wrapper.Settings.ServiceUrl);
 }
Пример #6
0
 public TestCase301(ILog log, TargetSiteWrapper target, int load_factor, List <IOpenSearchResultItem> foundItems) :
     base("TC301", "Single Remote Download")
 {
     this.log         = log;
     this.load_factor = load_factor;
     this.foundItems  = foundItems;
     this.target      = target;
     this.sp          = ServicePointManager.FindServicePoint(target.Wrapper.Settings.ServiceUrl);
     downloadRequests = new ConcurrentQueue <IAssetAccess>();
 }
Пример #7
0
        private static bool CheckTimelinessParameter(TargetSiteWrapper target)
        {
            var os         = target.CreateOpenSearchableEntity();
            var parameters = os.GetOpenSearchParameters(os.DefaultMimeType);

            return(parameters.AllKeys.Any(key =>
            {
                return key == "timeliness" || parameters[key].Contains("timeliness");
            }));
        }
Пример #8
0
 public TestCase701(ILog log, TargetSiteWrapper target, int load_factor, string storageName, List <string> uploadedFiles) :
     base(log, target, null)
 {
     this.Id            = "TC701";
     this.Title         = "Single remote upload to cloud storage";
     this.load_factor   = load_factor;
     uploadRequests     = new ConcurrentQueue <ITransferRequest>();
     this.storageName   = storageName;
     this.uploadedFiles = uploadedFiles;
 }
Пример #9
0
 public TestCase201(ILog log, TargetSiteWrapper target, int load_factor, IEnumerable <Data.Mission> missions, out List <IOpenSearchResultItem> foundItems, bool ignoreEmptyResult = false) :
     base("TC201", "Basic catalogue query")
 {
     this.log               = log;
     this.load_factor       = load_factor;
     this.missions          = missions;
     this.target            = target;
     this.sp                = ServicePointManager.FindServicePoint(target.Wrapper.Settings.ServiceUrl);
     this.foundItems        = new List <IOpenSearchResultItem>();
     this.ignoreEmptyResult = ignoreEmptyResult;
     foundItems             = this.foundItems;
     ose = target.OpenSearchEngine;
     catalogue_scheduler    = new MaxParallelismTaskScheduler(100);
     catalogue_task_factory = new TaskFactory(catalogue_scheduler);
 }
Пример #10
0
        private static void ValidateOptions()
        {
            log.InfoFormat("===============================");

            log.InfoFormat("Validating Test Options...");

            // 1. Check configuration
            log.InfoFormat("[1] Loading & Checking configuration");
            LoadAndCheckConfiguration();

            // 2. Check endpoint
            log.InfoFormat("[2] Configuring target {0} ({1})", target_name, Configuration.Current.ServiceProviders[target_name].Data.Url);
            targetSiteWrapper = ConfigureTarget(Configuration.Current.ServiceProviders[target_name]);

            // 3.Check Scenarios Compatibility
            log.InfoFormat("[3] Check scenarios compatibility...");
            CheckScenariosCompatibility(targetSiteWrapper);

            log.InfoFormat("Test Options VALIDATED");

            log.InfoFormat("===============================");
        }
Пример #11
0
        /// <summary>
        /// Creates a list of cross filter definitions for a target site against a reference target site.
        /// </summary>
        /// <param name="setName">The name of the catalogue set.</param>
        /// <param name="setConfiguration">The configuration set</param>
        /// <param name="target">The target</param>
        /// <returns>A list of cross filter definitions.</returns>
        internal static IEnumerable <CrossCatalogueCoverageFiltersDefinition> GenerateCrossCatalogueCoverageFiltersDefinition(string setName, CatalogueSetConfiguration setConfiguration, TargetSiteWrapper target)
        {
            List <CrossCatalogueCoverageFiltersDefinition> bulkDataDefs = new List <CrossCatalogueCoverageFiltersDefinition>();

            // Let's get the baseline
            var catalogueSetConfiguration = ResolveBaseline(setName, setConfiguration);

            // Let's get the reference target
            TargetSiteWrapper ref_target = new TargetSiteWrapper(setConfiguration.ReferenceTargetSite, Configuration.Current.GetTargetSiteConfiguration(setConfiguration.ReferenceTargetSite));

            // Let's build the filter defintions
            foreach (FiltersDefinition pt in GenerateFilterDefinitionsFromCollectionsDefinition(catalogueSetConfiguration))
            {
                FiltersDefinition _targetFiltersDefinition = new FiltersDefinition("[target]");

                _targetFiltersDefinition.AddFilters(pt.Filters);
                _targetFiltersDefinition.AddFilter("count", "{http://a9.com/-/spec/opensearch/1.1/}count", "0", "", null, null);
                try
                {
                    _targetFiltersDefinition.AddFilters(catalogueSetConfiguration.Parameters);
                }
                catch { }
                FiltersDefinition _refFiltersDefinition = new FiltersDefinition(_targetFiltersDefinition);
                _refFiltersDefinition.Name = "[reference]";
                // special filter for filtering out product that are not considered as in the reference baseline
                try
                {
                    _targetFiltersDefinition.AddFilters(setConfiguration.Parameters);
                }
                catch { }

                bulkDataDefs.Add(new CrossCatalogueCoverageFiltersDefinition(
                                     new TargetAndFiltersDefinition(target, _targetFiltersDefinition),
                                     new TargetAndFiltersDefinition(ref_target, _refFiltersDefinition)
                                     ));
            }
            return(bulkDataDefs);
        }
Пример #12
0
 public TestCase502(ILog log, TargetSiteWrapper target, int load_factor, out List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, null, out foundItems, true)
 {
     Id    = "TC502";
     Title = "Target Local Data Coverage";
 }
Пример #13
0
        public static IEnumerable <Mission> GenerateExistingDataDictionary(TargetSiteWrapper target)
        {
            List <Mission> missions = new List <Mission>();

            // Sentinel1
            Mission s1Mission = new Mission("Sentinel-1", new LabelString("Sentinel-1", "Sentinel-1", GetIdentifierValidator(new Regex(@"^S1.*"))));

            s1Mission.Lifetime            = new TimeRange("{http://a9.com/-/opensearch/extensions/time/1.0/}start", "{http://a9.com/-/opensearch/extensions/time/1.0/}end", new DateTime(2014, 04, 03), DateTime.UtcNow);
            s1Mission.PlatformIdentifiers = new StringListChoice("platformSerialIdentifier", "{http://a9.com/-/opensearch/extensions/eo/1.0/}platformSerialIdentifier",
                                                                 new LabelString[] {
                new LabelString("2014-016A", "A", GetIdentifierValidator(new Regex(@"^S1A.*"))),
                new LabelString("2016-025A", "B", GetIdentifierValidator(new Regex(@"^S1B.*")))
            });
            s1Mission.ProductTypes = new StringListChoice("productType", "{http://a9.com/-/opensearch/extensions/eo/1.0/}productType",
                                                          new LabelString[] {
                new LabelString("RAW", "Level-0 SAR raw data (RAW)", GetIdentifierValidator(new Regex(@"^S1.*_RAW_.*"))),
                new LabelString("SLC", "Level-1 Single Look Complex (SLC)", GetIdentifierValidator(new Regex(@"^S1.*_SLC_.*"))),
                new LabelString("GRD", "Level-1 Ground Range Detected (GRD)", GetIdentifierValidator(new Regex(@"^S1.*_GRD._.*"))),
                new LabelString("OCN", "Level-2 Ocean (OCN)", GetIdentifierValidator(new Regex(@"^S1.*_OCN_.*")))
            });
            s1Mission.Polarisations = new StringListChoice("polarizationChannels", "{http://a9.com/-/opensearch/extensions/eo/1.0/}polarizationChannels",
                                                           new LabelString[] {
                new LabelString("HH", "HH", GetIdentifierValidator(new Regex(@"^S1.*SH_.*"))),
                new LabelString("VV", "VV", GetIdentifierValidator(new Regex(@"^S1.*SV_.*"))),
                new LabelString("HV", "HV", GetIdentifierValidator(new Regex(@"^S1.*(HV_|DH_).*"))),
                new LabelString("VH", "VH", GetIdentifierValidator(new Regex(@"^S1.*(VH_|DV_).*"))),
                new LabelString("HH+HV", "HH+HV", GetIdentifierValidator(new Regex(@"^S1.*DH_.*"))),
                new LabelString("VV+VH", "VV+VH", GetIdentifierValidator(new Regex(@"^S1.*DV_.*")))
            });
            s1Mission.SensorModes = new StringListChoice("sensorMode", "{http://a9.com/-/opensearch/extensions/eo/1.0/}sensorMode",
                                                         new LabelString[] {
                new LabelString("SM", "Stripmap", GetIdentifierValidator(new Regex(@"^S1.*_S._.*"))),
                new LabelString("IW", "Interferometric Wide swath", GetIdentifierValidator(new Regex(@"^S1.*_IW_.*"))),
                new LabelString("EW", "Extra Wide swath", GetIdentifierValidator(new Regex(@"^S1.*_EW_.*"))),
                new LabelString("WV", "Wave", GetIdentifierValidator(new Regex(@"^S1.*_WV_.*"))),
            });
            s1Mission.RelativeOrbit = new ItemNumberRange("track", "{http://a9.com/-/opensearch/extensions/eo/1.0/}track", 1, 175, 1, "[{0},{1}]",
                                                          new Regex(@"\[([0-9]+(\\.[0-9]+)?),([0-9]+(\\.[0-9]+)?)\]"), "Track", GetTrackValidator, null);

            // s1Mission.Timeliness = new StringListChoice("timeliness", "{http://a9.com/-/opensearch/extensions/eo/1.0/}timeliness",
            //     new LabelString[] {
            //         new LabelString("Fast-1h", "Fast 1h", null, GetMultiFiltersConditioner("productType", new string[]{"SLC", "GRD"})),
            //         new LabelString("Fast-1.5h", "Fast 1.5h", null, GetMultiFiltersConditioner("productType", new string[]{"OCN"})),
            //         new LabelString("Fast-24h", "Fast 24h", null, GetMultiFiltersConditioner("productType", new string[]{"SLC", "GRD"})),
            //     });

            s1Mission.ArchivingStatus = new StringListChoice("archiveStatus", "{http://a9.com/-/opensearch/extensions/eo/1.0/}statusSubType",
                                                             new LabelString[] {
                new LabelString("Online", "Online", GetArchivingStatusValidator(Terradue.ServiceModel.Ogc.Eop21.StatusSubTypeValueEnumerationType.ONLINE), null),
                new LabelString("Offline", "Offline", GetArchivingStatusValidator(Terradue.ServiceModel.Ogc.Eop21.StatusSubTypeValueEnumerationType.OFFLINE), null),
            });

            s1Mission.Count = new ItemNumberRange("count", "{http://a9.com/-/spec/opensearch/1.1/}count", 1, 50, 1, "{0}",
                                                  new Regex(@"([0-9]+(\\.[0-9]+)?)"), "Count", null, GetCountValidator);

            IEnumerable <Feature> features = ShapeFileLoader.Load(Configuration.Current.Global.CountryShapefilePath);

            s1Mission.Geometries = new GeometryFilterCollection("geom", "{http://a9.com/-/opensearch/extensions/geo/1.0/}geometry", features);

            missions.Add(s1Mission);

            // Sentinel2
            Mission s2Mission = new Mission("Sentinel-2", new LabelString("Sentinel-2", "Sentinel-2", GetIdentifierValidator(new Regex(@"^S2.*"))));

            s2Mission.Lifetime            = new TimeRange("{http://a9.com/-/opensearch/extensions/time/1.0/}start", "{http://a9.com/-/opensearch/extensions/time/1.0/}end", new DateTime(2015, 07, 01), DateTime.UtcNow);
            s2Mission.PlatformIdentifiers = new StringListChoice("platformSerialIdentifier", "{http://a9.com/-/opensearch/extensions/eo/1.0/}platformSerialIdentifier",
                                                                 new LabelString[] {
                new LabelString("2015-028A", "A", GetIdentifierValidator(new Regex(@"^S2A.*"))),
                new LabelString("2017-013A", "B", GetIdentifierValidator(new Regex(@"^S2B.*")))
            });
            s2Mission.ProductTypes = new StringListChoice("productType", "{http://a9.com/-/opensearch/extensions/eo/1.0/}productType",
                                                          new LabelString[] {
                new LabelString("S2MSI1C", "Level-1C", GetIdentifierValidator(new Regex(@"^S2.*_MSIL1C_.*"))),
                new LabelString("S2MSI2A", "Level-2A", GetIdentifierValidator(new Regex(@"^S2.*_MSIL2A_.*"))),
            });
            s2Mission.RelativeOrbit = new ItemNumberRange("track", "{http://a9.com/-/opensearch/extensions/eo/1.0/}track", 1, 143, 1, "[{0},{1}]",
                                                          new Regex(@"\[([0-9]+(\\.[0-9]+)?),([0-9]+(\\.[0-9]+)?)\]"), "Track", GetTrackValidator, null);

            s2Mission.Count = new ItemNumberRange("count", "{http://a9.com/-/spec/opensearch/1.1/}count", 1, 50, 1, "{0}",
                                                  new Regex(@"([0-9]+(\\.[0-9]+)?)"), "Count", null, GetCountValidator);

            // s2Mission.Timeliness = new StringListChoice("timeliness", "{http://a9.com/-/opensearch/extensions/eo/1.0/}timeliness",
            //     new LabelString[] {
            //         new LabelString("Fast-1.5h", "Fast 1.5h", null, GetMultiFiltersConditioner("productType", new string[]{"S2MSI1C"})),
            //     });

            s2Mission.ArchivingStatus = new StringListChoice("archiveStatus", "{http://a9.com/-/opensearch/extensions/eo/1.0/}statusSubType",
                                                             new LabelString[] {
                new LabelString("Online", "Online", GetArchivingStatusValidator(Terradue.ServiceModel.Ogc.Eop21.StatusSubTypeValueEnumerationType.ONLINE), null),
                new LabelString("Offline", "Offline", GetArchivingStatusValidator(Terradue.ServiceModel.Ogc.Eop21.StatusSubTypeValueEnumerationType.OFFLINE), null),
            });

            s2Mission.Geometries = new GeometryFilterCollection("geom", "{http://a9.com/-/opensearch/extensions/geo/1.0/}geometry", features);

            missions.Add(s2Mission);

            // Sentinel3
            Mission s3Mission = new Mission("Sentinel-3", new LabelString("Sentinel-3", "Sentinel-3", GetIdentifierValidator(new Regex(@"^S3.*"))));

            s3Mission.Lifetime            = new TimeRange("{http://a9.com/-/opensearch/extensions/time/1.0/}start", "{http://a9.com/-/opensearch/extensions/time/1.0/}end", new DateTime(2016, 03, 01), DateTime.UtcNow);
            s3Mission.PlatformIdentifiers = new StringListChoice("platformSerialIdentifier", "{http://a9.com/-/opensearch/extensions/eo/1.0/}platformSerialIdentifier",
                                                                 new LabelString[] {
                new LabelString("2016-011A", "A", GetIdentifierValidator(new Regex(@"^S3A.*"))),
                new LabelString("2018-039A", "B", GetIdentifierValidator(new Regex(@"^S3B.*")))
            });
            s3Mission.ProductTypes = new StringListChoice("productType", "{http://a9.com/-/opensearch/extensions/eo/1.0/}productType",
                                                          new LabelString[] {
                new LabelString("OL_1_EFR___", "OLCI Level-1B EO FR", GetIdentifierValidator(new Regex(@"^S3.*_OL_1_EFR___.*"))),
                new LabelString("OL_1_ERR___", "OLCI Level-1B EO RR", GetIdentifierValidator(new Regex(@"^S3.*_OL_1_ERR___.*"))),
                new LabelString("OL_2_LRR___", "OLCI Level-2 Land RR", GetIdentifierValidator(new Regex(@"^S3.*OL_2_LRR___.*"))),
                new LabelString("OL_2_LFR___", "OLCI Level-2 Land FR", GetIdentifierValidator(new Regex(@"^S3.*OL_2_LFR___.*"))),
                new LabelString("SL_1_RBT___", "SLSTR Level-1B RBT", GetIdentifierValidator(new Regex(@"^S3.*SL_1_RBT___.*"))),
                new LabelString("SL_2_LST___", "SLSTR Level-2 Land Surface Temp", GetIdentifierValidator(new Regex(@"^S3.*SL_2_LST___.*"))),
                new LabelString("SR_1_SRA___", "Altimetry Level-1 SRA", GetIdentifierValidator(new Regex(@"^S3.*SR_1_SRA___.*"))),
                new LabelString("SR_1_SRA_A_", "Altimetry Level-1 SRA_A", GetIdentifierValidator(new Regex(@"^S3.*SR_1_SRA_A_.*"))),
                new LabelString("SR_1_SRA_BS", "Altimetry Level-1 SRA_BS", GetIdentifierValidator(new Regex(@"^S3.*SR_1_SRA_BS.*"))),
                new LabelString("SR_2_LAN___", "Altimetry Level-2 Land", GetIdentifierValidator(new Regex(@"^S3.*SR_2_LAN___.*"))),
                // new LabelString("SR_2_WAT___", "Altimetry Level-2 Water", GetIdentifierValidator(new Regex(@"^S3.*SR_2_WAT___.*"))),
                new LabelString("SY_2_SYN___", "Synergy Level-2 Surface Reflectance", GetIdentifierValidator(new Regex(@"^S3.*SY_2_SYN___.*"))),
                // new LabelString("SY_2_VGP___", "Synergy Level-2 Vegetation",  GetIdentifierValidator(new Regex(@"^S3.*SY_2_VGP___.*"))),
            });
            s3Mission.RelativeOrbit = new ItemNumberRange("track", "{http://a9.com/-/opensearch/extensions/eo/1.0/}track", 1, 385, 1, "[{0},{1}]",
                                                          new Regex(@"\[([0-9]+(\\.[0-9]+)?),([0-9]+(\\.[0-9]+)?)\]"), "Track", GetTrackValidator, null);

            s3Mission.Count = new ItemNumberRange("count", "{http://a9.com/-/spec/opensearch/1.1/}count", 1, 50, 1, "{0}",
                                                  new Regex(@"([0-9]+(\\.[0-9]+)?)"), "Count", null, GetCountValidator);

            s3Mission.Geometries = new GeometryFilterCollection("geom", "{http://a9.com/-/opensearch/extensions/geo/1.0/}geometry", features);

            s3Mission.Timeliness = new StringListChoice("timeliness", "{http://a9.com/-/opensearch/extensions/eo/1.0/}timeliness",
                                                        new LabelString[] {
                new LabelString("NRT", "Near Real Time", GetTimelinessValidator("NRT")),
                new LabelString("STC", "Short Time Critical", GetTimelinessValidator("STC")),
                new LabelString("NTC", "Non Time Critical", GetTimelinessValidator("NTC")),
                new LabelString("Fast-1.5h", "Fast 1.5h", null, GetMultiFiltersConditioner("productType",
                                                                                           new string[] { "OL_1_EFR___", "OL_1_ERR___", "OL_2_LRR___", "OL_2_LFR___",
                                                                                                          "SL_1_RBT___", "SL_2_LST___",
                                                                                                          "SR_1_SRA___", "SR_1_SRA_A_", "SR_1_SRA_BS",
                                                                                                          "SR_2_LAN___", "SR_2_WAT___" })),
            });

            s3Mission.ArchivingStatus = new StringListChoice("archiveStatus", "{http://a9.com/-/opensearch/extensions/eo/1.0/}statusSubType",
                                                             new LabelString[] {
                new LabelString("Online", "Online", GetArchivingStatusValidator(Terradue.ServiceModel.Ogc.Eop21.StatusSubTypeValueEnumerationType.ONLINE), null),
                new LabelString("Offline", "Offline", GetArchivingStatusValidator(Terradue.ServiceModel.Ogc.Eop21.StatusSubTypeValueEnumerationType.OFFLINE), null),
            });

            missions.Add(s3Mission);

            return(missions);
        }
Пример #14
0
 public TestCase203(ILog log, TargetSiteWrapper target, int load_factor, IEnumerable <Data.Mission> missions, out List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, missions, out foundItems)
 {
     Id    = "TC203";
     Title = "Systematic Query";
 }
Пример #15
0
        public static IEnumerable <FiltersDefinition> GenerateBulkSystematicDataFiltersDefinition(TargetSiteWrapper target)
        {
            List <FiltersDefinition> bulkDataDefs = new List <FiltersDefinition>();

            FiltersDefinition _filtersDefinition = new FiltersDefinition("Systematic");

            _filtersDefinition.AddFilter("missionName", "{http://a9.com/-/opensearch/extensions/eo/1.0/}platform",
                                         "Sentinel-1", "Sentinel-1",
                                         Mission.GetIdentifierValidator(new Regex(@"^S1.*")), null);

            _filtersDefinition.AddFilter("productType", "{http://a9.com/-/opensearch/extensions/eo/1.0/}productType",
                                         "GRD", "Ground Range Detected (GRD)",
                                         Mission.GetIdentifierValidator(new Regex(@"^S1.*_GRD._.*")), null);

            var geom = wktreader.Read("POLYGON((-5.664 14.532,-5.196 13.991,-4.854 13.969,-4.877 13.637,-4.114 13.938,-3.96 13.378,-3.443 13.158,-3.27 13.698,-2.874 13.654,-2.839 14.054,-2.474 14.299,-2 14.191,-1.98 14.476,-0.745 15.066,-1.686 15.431,-2.532 15.322,-2.816 15.774,-3.262 15.857,-3.8 15.491,-4.135 15.81,-5.23 15.674,-5.1 15.196,-5.546 14.931,-5.664 14.532))");

            _filtersDefinition.AddFilter("geom", "{http://a9.com/-/opensearch/extensions/geo/1.0/}geometry",
                                         "POLYGON((-5.664 14.532,-5.196 13.991,-4.854 13.969,-4.877 13.637,-4.114 13.938,-3.96 13.378,-3.443 13.158,-3.27 13.698,-2.874 13.654,-2.839 14.054,-2.474 14.299,-2 14.191,-1.98 14.476,-0.745 15.066,-1.686 15.431,-2.532 15.322,-2.816 15.774,-3.262 15.857,-3.8 15.491,-4.135 15.81,-5.23 15.674,-5.1 15.196,-5.546 14.931,-5.664 14.532))",
                                         "over Mopti floodable area in Mali",
                                         Mission.GetGeometryValidator(geom), null);

            var now = DateTime.UtcNow.Subtract(TimeSpan.FromDays(7)).ToUniversalTime();

            // _filtersDefinition.AddFilter("{http://purl.org/dc/elements/1.1/}modified",
            _filtersDefinition.AddFilter("modified", "{http://purl.org/dc/terms/}modified",
                                         now.ToString("s") + "Z",
                                         "ingested since " + now.ToString(),
                                         Mission.GetIngestionDateValidator(now), null);

            // _filtersDefinition.AddFilter("archiveStatus", "{http://a9.com/-/opensearch/extensions/eo/1.0/}statusSubType", "online", "Online", null, null);

            bulkDataDefs.Add(_filtersDefinition);

            return(bulkDataDefs);
        }
Пример #16
0
        internal static IEnumerable <FiltersDefinition> GenerateOfflineDataStatusFiltersDefinition(OfflineDataStatus offlineDataStatus, TargetSiteWrapper target)
        {
            List <FiltersDefinition> _offlineFiltersDefinition = new List <FiltersDefinition>();

            foreach (var offlineDataStatusItem in offlineDataStatus.OfflineData.Where(di => di.TargetSiteName == target.Name))
            {
                FiltersDefinition fd = new FiltersDefinition(offlineDataStatusItem.Identifier);
                fd.AddFilter("uid", "{http://a9.com/-/opensearch/extensions/geo/1.0/}uid", offlineDataStatusItem.Identifier, offlineDataStatusItem.Identifier, null, null);
                fd.RemoveFilter("{http://a9.com/-/opensearch/extensions/eo/1.0/}timeliness");
                // to force usage of ODATA for DHUS wrapper
                fd.AddFilter("archiveStatus", "dummy", "dummy", "", null, null);
                _offlineFiltersDefinition.Add(fd);
            }

            return(_offlineFiltersDefinition);
        }
Пример #17
0
 public TestCase301(ILog log, TargetSiteWrapper target, List <IOpenSearchResultItem> foundItems) :
     this(log, target, 1, foundItems)
 {
 }
Пример #18
0
 public TestCase602(ILog log, TargetSiteWrapper target, int load_factor, out List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, null, out foundItems)
 {
     Id    = "TC602";
     Title = "Data Availability Latency Analysis";
 }
Пример #19
0
 public TestScenario05(ILog log, TargetSiteWrapper target, int load_factor)
 {
     this.log         = log;
     this.load_factor = load_factor;
     this.target      = target;
 }
Пример #20
0
 internal static bool CheckCompatibility(TargetSiteWrapper target)
 {
     return(target.Type == TargetType.DATAHUB || target.Type == TargetType.DIAS);
 }
Пример #21
0
        private static void CheckScenariosCompatibility(TargetSiteWrapper target)
        {
            scenarios_handlers = new List <IScenario>();

            foreach (var scenario in scenarios)
            {
                switch (scenario)
                {
                case "TS01":
                    if (TestScenario01.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario01(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS01 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS02":
                    if (TestScenario02.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario02(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS02 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS03":
                    if (TestScenario03.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario03(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS03 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS04":
                    if (TestScenario04.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario04(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS04 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS05":
                    if (TestScenario05.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario05(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS05 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS06":
                    if (TestScenario06.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario06(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS06 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS07":
                    if (TestScenario07.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario07(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS07 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS11":
                    if (TestScenario11.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario11(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS11 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                case "TS12":
                    if (TestScenario12.CheckCompatibility(target))
                    {
                        scenarios_handlers.Add(new TestScenario12(log, target, load_factor));
                    }
                    else
                    {
                        log.WarnFormat("TS12 is not compatible with target {0}. Skipping", target.Label);
                    }
                    break;

                default:
                    log.WarnFormat("Unknown scenario '{0}'. Skipping", scenario);
                    break;
                }
            }

            log.InfoFormat("{0} Test Scenarios : {1}", scenarios_handlers.Count(), string.Join(",", scenarios_handlers.Select(s => s.Id)));
        }
Пример #22
0
 public TestCase211(ILog log, TargetSiteWrapper target, int load_factor, IEnumerable <Data.Mission> missions, out List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, missions, out foundItems)
 {
     this.Id    = "TC211";
     this.Title = "Remote basic catalogue query";
 }
Пример #23
0
 public TestCase601(ILog log, TargetSiteWrapper target, int load_factor, out List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, null, out foundItems)
 {
     Id    = "TC601";
     Title = "Data Operational Latency Analysis [including Time Critical]";
 }
Пример #24
0
 public TestCase311(ILog log, TargetSiteWrapper target, List <IOpenSearchResultItem> foundItems) :
     base(log, target, foundItems)
 {
     this.Id    = "TC311";
     this.Title = "Cloud Single Remote Download";
 }
Пример #25
0
 public TestCase312(ILog log, TargetSiteWrapper target, int load_factor, List <IOpenSearchResultItem> foundItems) :
     base(log, target, load_factor, foundItems)
 {
     Id    = "TC312";
     Title = "Cloud Multiple Remote Download";
 }