Difference between revisions of "GOCDB/Release4/Development/ExtensibilityMechanism"
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 | 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 | 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> | <Key>somekey</Key> | ||
<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&object_id=77182&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.