Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "GOCDB/Release4/Development/ExtensibilityMechanism"

From EGIWiki
Jump to navigation Jump to search
Line 4: Line 4:
=Key-Value Pair Property Bag Extensiblity Mechanism=
=Key-Value Pair Property Bag Extensiblity Mechanism=
==Introduction==
==Introduction==
* Original RT request: https://rt.egi.eu/rt/Ticket/Display.html?id=3764
* Simiar to the GLUE2 extensibility mechanim, the core GOCDB entities (NGIs, Sites, Services, ServiceGroups, Endpoints) will be extended so that they can define an optional set of custom key-value pairs.  
* Simiar to the GLUE2 extensibility mechanim, the core GOCDB entities (NGIs, Sites, Services, ServiceGroups, Endpoints) will be extended so that they can define an optional set of custom key-value pairs.  
* In doing this, additional parameters could be supplied to the PI for selecting entities that define a particular set of properties. For example "select all Sites/Services that define the 'MPI=true' property."
* In doing this, additional parameters could be supplied to the PI for selecting entities that define a particular set of properties. For example "select all Sites/Services that define the 'MPI=true' property."
Line 14: Line 15:
This query would return all <SERVICE_ENDPOINT> elements that support the 'MPI' property with any value.
This query would return all <SERVICE_ENDPOINT> elements that support the 'MPI' property with any value.
* https://goc.egi.eu/gocdbpi/private/?method=get_service_endpoint&properties=(MPI=*)(somekey=true)
* https://goc.egi.eu/gocdbpi/private/?method=get_service_endpoint&properties=(MPI=*)(somekey=true)
This query would return all <SERVICE_ENDPOINT> elements that both support the 'MPI' property with any value and the 'somekey' property with a value of true.  
This query would return all <SERVICE_ENDPOINT> elements that both support the 'MPI' property with any value and the 'somekey' property with a value of 'valueX'.  




The extent to which the logical ldap query syntax would be supported will have to be explored. A simplified version may cover most of the use cases.
The extent to which the logical ldap query syntax would be supported will have to be explored. A simplified version may cover most use cases.


==Sample XML Output==
==Sample PI XML Output==
<source lang="XML">
<source lang="XML">
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 50: Line 51:
             <Extension>
             <Extension>
                 <LocalID>12345</LocalID>
                 <LocalID>12345</LocalID>
                 <Key>someKey</Key>
                 <Key>somekey</Key>
                 <Value>someValue</Value>  
                 <Value>valueX</Value>  
             </Extension>
             </Extension>
       </Extensions>
       </Extensions>
Line 60: Line 61:


==Potential Use Cases==
==Potential Use Cases==
https://rt.egi.eu/rt/Ticket/Display.html?id=3764
A number of potential use cases have been reported (https://rt.egi.eu/rt/Ticket/Display.html?id=3764), including:
* Specifying service access protocol.
* Defining custom monitoring parameters.
* Specifying non-standard flags supported by a service.

Revision as of 14:52, 31 July 2012

<< Back to GOCDB/Documentation_Index
<< Back to GOCDB/Release4/Development

Key-Value Pair Property Bag Extensiblity Mechanism

Introduction

  • Original RT request: https://rt.egi.eu/rt/Ticket/Display.html?id=3764
  • Simiar to the GLUE2 extensibility mechanim, the core GOCDB entities (NGIs, Sites, Services, ServiceGroups, Endpoints) will be extended so that they can define an optional set of custom key-value pairs.
  • In doing this, additional parameters could be supplied to the PI for selecting entities that define a particular set of properties. For example "select all Sites/Services that define the 'MPI=true' property."

PI Examples

The URL query could be parameterised with a known GET request paramter (e.g. 'properties') with a simplified LDAP style query string for a value, eg:

This query would return all <SERVICE_ENDPOINT> elements that support the 'MPI' property with a value of 'True'.

This query would return all <SERVICE_ENDPOINT> elements that support the 'MPI' property with any value.

This query would return all <SERVICE_ENDPOINT> elements that both support the 'MPI' property with any value and the 'somekey' property with a value of 'valueX'.


The extent to which the logical ldap query syntax would be supported will have to be explored. A simplified version may cover most use cases.

Sample PI XML Output

<?xml version="1.0" encoding="UTF-8"?>
<results>
   <SERVICE_ENDPOINT PRIMARY_KEY="50257G0">
      <PRIMARY_KEY>50257G0</PRIMARY_KEY>
      <HOSTNAME>dgiref-globus.fzk.de</HOSTNAME>
      <GOCDB_PORTAL_URL>https://goc.egi.eu/portal/index.php?Page_Type=View_Object&amp;object_id=77182&amp;grid_id=0</GOCDB_PORTAL_URL>
      <HOST_OS>SL5</HOST_OS>
      <BETA>N</BETA>
      <SERVICE_TYPE>GRAM5</SERVICE_TYPE>
      <CORE></CORE>
      <IN_PRODUCTION>Y</IN_PRODUCTION>
      <NODE_MONITORED>Y</NODE_MONITORED>
      <SITENAME>DGIREF</SITENAME>
      <COUNTRY_NAME>Germany</COUNTRY_NAME>
      <COUNTRY_CODE>DE</COUNTRY_CODE>
      <ROC_NAME>NGI_DE</ROC_NAME>
      <ENDPOINT>
         <URL>ldap://ce-cms.vinca.rs:2170/mds-vo-name=AEGIS10-VINCA-CMS,o=grid</URL>
         <InterfaceName>RIS</InterfaceName>
      </ENDPOINT>   
      <!-- Key-Value Pair Property Bag attached to SERVICE_ENDPOINT entity -->
      <Extensions>
            <Extension>
                <LocalID>1234</LocalID>
                <Key>MPI</Key>
                <Value>True</Value> 
            </Extension>
            <Extension>
                <LocalID>12345</LocalID>
                <Key>somekey</Key>
                <Value>valueX</Value> 
            </Extension>
      </Extensions>
   </SERVICE_ENDPOINT>

</results>

Potential Use Cases

A number of potential use cases have been reported (https://rt.egi.eu/rt/Ticket/Display.html?id=3764), including:

  • Specifying service access protocol.
  • Defining custom monitoring parameters.
  • Specifying non-standard flags supported by a service.