From EGIWiki
< GOCDB‎ | Release4‎ | Development
Revision as of 17:59, 29 November 2013 by Jamesm (talk | contribs) (PI Examples)
Jump to: navigation, search
Main EGI.eu operations services Support Documentation Tools Activities Performance Technology Catch-all Services Resource Allocation Security

GOC DB menu: Home Documentation Index

<< Back to GOCDB/Release4/Development

Key-Value Pair Property Bag Extensiblity Mechanism


  • 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) 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."
  • As an extensibility mechanism, we do not intend to impose any restrictions on the values of key-value pairs (other than max value length, e.g. 255 chars ). Key-value pair meaninings should be determined as a community folksonomy.

PI Examples

The URL query could be parameterised with a known GET request paramter (e.g. 'extensions') with a LDAP syntax query string for the value, eg: This extensions parameter allows you to supply an LDAP styled query to further filter your site and endpoint results. For example:


Will return all sites that define VO with a value of Alice. A wildcard could also be used:


Will return all sites that define VO as a key property with any value. Comma separated lists of values are also supported:


This will return any service endpoints that define a CPU_HS01_HOUR with a value of 1, 2, 3, 4, or 5. Extensions also supports OR/AND operators. This can be used to search against multiple key values eg:

?method= get_service_endpoint&extensions=(AND(CPU_HS01_HOUR=1)(CPU_HS02_HOUR=2))

This will return endpoints that define both CPU_HS01_HOUR with a value or 1 and CPU_HS02_HOUR with a value of 2. The same query can also be performed with OR:

?method= get_service_endpoint&extensions=(OR(CPU_HS01_HOUR=1)(CPU_HS02_HOUR=2))

This can then be used to find sites or service endpoints that all define the same group of key values:


The extensions parameter can also be used in conjunction with the existing parameters previously supported:


These are currently in testing and can be viewed on the GocDB test server:









  • The extent to which the ldap syntax query string would be supported will have to be explored. A simplified version including only exact pattern matches and simple wildcards may cover most use cases.
  • The property bags may only be applied to a subset of entities and PI queries.

Sample PI XML Output

<?xml version="1.0" encoding="UTF-8"?>
      <!-- Key-Value Pair Property Bag attached to SERVICE_ENDPOINT entity -->


Potential Use Cases

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


There is the potential for proliferation of key-value pairs that should instead be recorded in fields/properties as part of the data model.