...
Context: How do I update the notes field of an IP block using the API in PHP?
Expand |
---|
1) Start with providing instance information, API key, Secret Key, and DNS Server IP; set up the connection Code Block |
---|
| <?php
//
// This file walks through an example of how to look up a block id number
// in ProVision, and then use it to attach a notes field
//
// supply the URL of your ProVision instance, your API key and your Secret key.
$proVisionURL = "https://ops.6connect.com/qa-4.2.2";
$apiKey = "32-5DAYTJEE2TZHOFOB";
$apiSecretKey = "48b278ec873bda473a323dbc467f8669";
// this example uses 6connect's PHP APIClient
require_once("APIClient.php");
// set up the connection
$apiClient = new APIClient($proVisionURL, $apiKey, $apiSecretKey); |
2) Split the metadata you want to have showing in the notes, and find the block with which it should associate Code Block |
---|
| // lets imagine we have some metadata in the following format:
//
$string = "10.1.245.5||DFW7|HP a5820x|its-erp.dfw7.us.corp||";
//
// And we want to insert the Colo, Server type, and hostname into the Notes field of the IP block
// first we split everything up
$pieces = explode("|", $string);
$ip = $pieces[0];
$colo = $pieces[2];
$type = $pieces[3];
$host = $pieces[4];
// then we pull the IP block using the API.
$params = array();
$params['block'] = "$ip/32"; // the IP block we're looking for, with netmask
// make the call to the IPAM-GET endpoint
$apiResponse = $apiClient->sendRequest('ipam', 'get', $params);
if ($apiResponse->status != 1) {
echo "Could not pull information for block: $ip/32 !\n";
die();
}
if (trim($apiResponse->message) == "No blocks found.") {
echo "IP block $ip/32 not found in ProVison!\n";
die();
}
// we now have the ipObject associated with this IP block. Lets get its block id.
$blockId = $apiResponse->data[0]['id'];
echo "IP block id: $blockId \n"; |
3) Update the block with the notes Code Block |
---|
| // it is time to update the block with the new notes.
$notes = "$colo,$type,$host";
$params = array();
$params['id'] = $blockId;
$params['notes'] = $notes;
// make the call to the IPAM-UPDATE endpoint
$apiResponse = $apiClient->sendRequest('ipam', 'update', $params);
// and done!
echo $apiResponse->message . "\n"; |
|