Local Installations may opt to sync peering data via the PeeringDB API (recommended), or by self-managing a local database utilizing a cron task to sync data - this option is only recommended for advanced users experiencing heavy loads.
ProVision only requires a Read Only API Key. For information on PeeringDB API keys, please refer to: https://docs.peeringdb.com/howto/api_keys/ |
To set a PeeringDB Account, go to Admin Settings → Peering, and enter the Read Only PeeringDB API key. Click "Test" to verify the connection.
When done, click "Save Changes". If successful, the phrase "Account is set" will display above the API key form.
Instead of making API requests to PeeringDB, you can now make them to a local PeeringDB copy and sync through either a separate cron job or by using the associated Scheduler Task.
This option is only recommended for advanced users experiencing heavy loads. Most users should utilize the API Key option, above. |
Define ConstantsTo link a provision instance to PeeringDB, define these constants in globals.php, where the values match the actual database that is hosting PeeringDB. :
This will change Settings section in the Peering area so it will now show the database status, instead of asking you for an account API KEY. Installation:For local customers, they can find install instructions for the PeeringDB Python Client here: https://peeringdb.github.io/peeringdb-py/ You may create a config file as follows:
Sync set up:To run a sync of PeeringDB:
View the Status:Once set up, If the local database is reachable a green success message will display in Admin Settings → Peering Settings. If the database fails to connect, a warning and error message will display instead: |
For ProVision versions 7.x and later, ProVision directly interfaces with PeeringDB's API to update exchange and peering data, caching the data for a default time of 12 hours.
This requires a PeeringDB account, and for the account credentials to be set in ProVision. The credentials may either be hard coded into globals.php, or set into the database via the Admin/Peering GUI. See Admin Settings and Peering v2 for detailed information.
Additional Peering constants may be added into globals.php to change the PeeringDB URL between the main and beta site (some users may find the beta site to have faster response times), and to adjust the PeeringDB cache TTL.
For real-time updates, TTL may be set to 0. However, some users may experience severe lag with a TTL = 0; we recommend using a 10 to 15 minute or greater TTL if this occurs.
For legacy set up (not recommended):
ProVision uses a locally-hosted mirror of the PeeringDB database in order to perform non-edit Peering functions. There are a few steps to take in order to set up your locally hosted instance to coordinate with PeeringDB information.
1) Create a new database to store the PeeringDB data. This must be on the same server as the database which is used by ProVision. 2) Download, install, and use the PeeringDB Python Client to populate the database. The PeeringDB documentation is available here: http://peeringdb.github.io/peeringdb-py/ 3) Once this has been done, edit the ProVision global configuration file located here:
It must be updated with the following variables to inform ProVision of the location of this new install. The username and password fields correspond to the username and password of the MySQL account which has access to the database (Not the username and password to your PeeringDB account).
4) Periodically sync with the PeeringDB server to get the latest updates. This can be done manually, or there are instructions in the PeeringDB documentation on how to automatically schedule syncs using cron (http://peeringdb.github.io/peeringdb-py/cli/#sync). |
In globals.php, the following constants can be defined to tweak the Peering internals:
PEERINGDB_USERNAME
Default value: none The username for the account used to connect to the PeeringDB API Instead of saving the username and password in the database, the values can be hard coded into globals.php PEERINGDB_PASSWORD
Default value: none The password for the account used to connect to the PeeringDB API PEERINGDB_URL
Default value: https://www.peeringdb.com/api/ The URL of the PeeringDB API. Alternate value: https://beta.peeringdb.com/api/
PEERINGDB_CACHE_TTL
Default value: 43200 (12 hours) How often (in seconds) to purge the cached PeeringDB API calls. If a customer wants real time access, this can be set to 0. If experiencing major lag issues with real time access, it is recommended to increase to increase the cache TTL from 0 to 5, 10, or 15 minutes. |
For additional information on working with Peering, see the following documentation sections: