Feature #18053

Feature #10645: Check the applications that create non aggregable callerMethods

Analyse Thredds not aggregable calledMethods

Added by Luca Frosini 2 months ago. Updated 4 days ago.

Status:ClosedStart date:Nov 13, 2019
Priority:NormalDue date:
Assignee:Luca Frosini% Done:

100%

Category:accounting
Sprint:Accounting
Milestones:
Duration:

Description

@fabio.sinibaldi@isti.cnr.it this is a complex task which requires your knowledge.
I have shared the tabular resource with the calledMethods with you.

The objective is providing me with the group of called methods to be rewritten and of course, the called method to be rewritten.
It is up to me the task of defining the regular expressions and eventually write the code to perform the task.

History

#1 Updated by Luca Frosini 2 months ago

  • Assignee changed from Luca Frosini to Fabio Sinibaldi
  • Status changed from In Progress to Paused

#2 Updated by Luca Frosini 2 months ago

  • % Done changed from 0 to 10

#3 Updated by Luca Frosini about 1 month ago

  • Assignee changed from Fabio Sinibaldi to Luca Frosini
  • Status changed from Paused to In Progress

#4 Updated by Luca Frosini about 1 month ago

  • % Done changed from 10 to 20

#5 Updated by Luca Frosini about 1 month ago

  • Status changed from In Progress to Paused

#6 Updated by Luca Frosini about 1 month ago

  • Status changed from Paused to In Progress

#7 Updated by Luca Frosini about 1 month ago

Protocols: URLs must start with

  • /dodsC -> OPENDAP
  • /dap4 -> DAP4
  • /fileServer -> HTTPServer
  • /ncml -> NCML
  • /iso -> ISO
  • /wcs -> WCS
  • /wms -> WMS
  • /sos -> SOS
  • /ncss -> NetcdfSubset
  • /godiva2 -> Godiva2

and URLs must end with these extensions:

  • .nc
  • .asc
  • .tiff

All the others will be indicated as METADATA

The collections to be accounted are the collections organized as folders (e.g. AquamapsNative) + oscar_vel. The others will be accounted as OTHER.

The produces called method will be:

"PROTOCOL"::"COLLECTION"

e.g.

  • OPENDAP::AquamapsNative
  • HTTPServer::ClimateChange
  • METADATA::AquamapsNative
  • WMS::OTHER
  • METADATA::OTHER

@gianpaolo.coro@isti.cnr.it @pasquale.pagano@isti.cnr.it @fabio.sinibaldi@isti.cnr.it can you please confirm?

#8 Updated by Luca Frosini about 1 month ago

  • Status changed from In Progress to Feedback

#9 Updated by Pasquale Pagano about 1 month ago

It is ok for me.

#10 Updated by Luca Frosini 10 days ago

  • Status changed from Feedback to In Progress

#11 Updated by Luca Frosini 4 days ago

  • % Done changed from 20 to 100
  • Status changed from In Progress to Feedback

@pasquale.pagano@isti.cnr.it I added the following rules for Thredds:

[
{
    "match": {
        "serviceClassRegex": "SDI",
        "serviceNameRegex": "Thredds",
        "calledMethodRegex": "^(\/){1}(?<Protocol>[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?<Collection>[a-zA-Z0-9_-]*(?<!(..\\.nc)))(\/){1}.*(?<!(..\\.nc|.\\.asc|\\.tiff))$"
    },
    "replace": {
        "serviceClass": "SDI",
        "serviceName": "Thredds",
        "calledMethod": "METADATA::${Collection}"
    }
},
{
    "match": {
        "serviceClassRegex": "SDI",
        "serviceNameRegex": "Thredds",
        "calledMethodRegex": "^(\/){1}(?<Protocol>[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*((?<!(..\\.nc|.\\.asc|\\.tiff))|\/wfs)$"
    },
    "replace": {
        "serviceClass": "SDI",
        "serviceName": "Thredds",
        "calledMethod": "METADATA::OTHER"
    }
},
{
    "match": {
        "serviceClassRegex": "SDI",
        "serviceNameRegex": "Thredds",
        "calledMethodRegex": "^(?!.*((\/public\/netcdf\/)|(::))).*$"
    },
    "replace": {
        "serviceClass": "SDI",
        "serviceName": "Thredds",
        "calledMethod": "OTHER"
    }
},
{
    "match": {
        "serviceClassRegex": "SDI",
        "serviceNameRegex": "Thredds",
        "calledMethodRegex": "^(\/){1}(?<Protocol>[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?<Collection>[a-zA-Z0-9_-]*)(\/){1}(.*\\.(nc|asc|tiff))$"
    },
    "replace": {
        "serviceClass": "SDI",
        "serviceName": "Thredds",
        "calledMethod": "${Protocol}::${Collection}"
    }
},
{
    "match": {
        "serviceClassRegex": "SDI",
        "serviceNameRegex": "Thredds",
        "calledMethodRegex": "^(\/){1}(?<Protocol>[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*(\\.(nc|asc|tiff))$"
    },
    "replace": {
        "serviceClass": "SDI",
        "serviceName": "Thredds",
        "calledMethod": "${Protocol}::OTHER"
    }
}
]

@pasquale.pagano@isti.cnr.it The only difference between you request is that I don't make the protocol mapping (this allow to write one rule in place of 10) for each of the previous one

  • dodsC -> OPENDAP
  • dap4 -> DAP4
  • fileServer -> HTTPServer
  • ncml -> NCML
  • iso -> ISO
  • wcs -> WCS
  • wms -> WMS
  • sos -> SOS
  • ncss -> NetcdfSubset
  • godiva2 -> Godiva2

Moreover, oscar_vel* records are not accounted in a collection because they have not a common pattern and create too much problems in the regex which are already very complex

#12 Updated by Luca Frosini 4 days ago

  • Status changed from Feedback to Closed

Also available in: Atom PDF