Skip to content

Add An Aggregate

Tom Mitchell edited this page Jun 2, 2017 · 3 revisions

This wiki page describes the steps to add aggregates to the service registry. The GENI Portal gets the list of aggregates from the service registry, so it will automatically update most of its data. There are a couple of things that should be updated on the portal though, see below.

Table of Contents

  1. Gather aggregate information
  2. Add to aggregate data
  3. Add to Makefile
  4. Add to RPM spec
  5. Add to database
  6. Update portal data

Gather aggregate information

The following information is required to add an aggregate to the service registry:

Item Description
shortname Short name of the aggregate, matches the nickname used by omni
longname Human readable name for the aggregate. This is displayed on the portal.
description Text description of the aggregate. This isn't used anywhere.
URN URN of aggregate. Must satisfy the GENI URN requirements.
URL URL of the AM. If there is more than one, choose the URL for the AM API v2 endpoint.
UI Type A single UI type. See UI Types below.
UI Categories A space separated list of categories. See UI Categories below.
Speaks For 'Y' if the aggregate supports speaks-for authorization. 'N' if it does not.

UI Types

The UI type is used to group aggregates with similar capabilities. The list of possible UI types is:

Type Description
ui_instageni_am InstaGENI
ui_exogeni_am ExoGENI
ui_foam_am FOAM
ui_other_am Other (including OpenGENI)

UI Categories

The following restrictions apply when assigning UI categories:

  1. Every aggregate must have one and only one of ui_prod_cat, ui_dev_cat, ui_experimental_cat.
  2. Likewise, every aggregate gets one and only one of ui_compute_cat and ui_network_cat.
  3. ui_stitchable_cat and ui_federated_cat are optional attributes.
Category Description
ui_prod_cat This aggregate is deemed to be "production". The aggregate is stable and has been tested or otherwise vetted by the GPO.
ui_dev_cat This aggregate is deemed to be "development". The aggregate is used for development and is not considered stable. It could come down at any time, may have bugs, and may have untested features.
ui_experimental_cat This aggregate is "experimental". It may provide experimental capabilities to researchers, and is, like "development", provided without stability assurances.
ui_compute_cat This aggregate is a compute aggregate (provides bare metal or VMs)
ui_network_cat This aggregate is a network aggregate (provides paths / flows)
ui_stitchable_cat This aggregate stitchable (listed in SCS, connected to a switch configured with stitching VLANs etc.)
ui_federated_cat Is this agggregate a member of a different (non-GENI) federation, and is federated by mutual agreement between GENI and the aggregate's federation?

Add to aggregate data

Aggregate data is stored in geni-ch/data/sr/aggdata.csv.

Add entry for aggregate, as follows:

shortname,url,amcert,longname,description,urn,cacert,type,category,speaksfor

Notes:

  • "amcert" is no longer used, leave this blank
  • "cacert" is no longer used, leave this blank
  • "category" is a space separated list of all categories that apply. Valid examples:
    • "ui_prod_cat ui_network_cat"
    • "ui_dev_cat ui_compute_cat ui_stitchable_cat ui_federated_cat"

Add to Makefile

Update geni-ch/data/Makefile.am by adding a new *.sql entry to the list of sql files assigned to AM_SQL. Try to keep the list in alphabetical order.

The name of the SQL file must match the "shortname" of the aggregate, with the prefix "sr/sql/add-" and the suffix ".sql". The general format is "sr/sql/add-shortname.sql".

For example, if the short name of an aggregate is "iowa-ig", the file should be named "sr/sql/add-iowa-ig.sql".

Add to RPM spec

Add an entry for the new SQL file ("sr/sql/add-iowa-ig.sql") in the RPM spec file geni-chapi.spec. Locate other similar entries and add the new one in alphabetical order. As above, try to keep the list in alphabetical order.

Add to database

After the above changes are installed (see packaging instructions) there will be a SQL file in /usr/share/geni-chapi/sr/sql that will insert the new aggregate into a running clearinghouse database. Following the example above to add "iowa-ig", here is how that aggregate would be added to the database:

psql -U portal -h localhost -f add-iowa-ig.sql portal

The same command appears in a header inside the generated SQL file as well.

Update portal data

Update Jacks context

See the portal's Jacks context wiki page.

Update map data

See the portal's update map wiki page.