Files
iTop/webservices/itopsoap.examples.php
2012-10-23 21:41:36 +00:00

148 lines
4.1 KiB
PHP

<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* Shows a usage of the SOAP queries
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
require_once('itopsoaptypes.class.inc.php');
$sItopRoot = 'http'.((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']!='off')) ? 's' : '').'://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].dirname($_SERVER['SCRIPT_NAME']).'/..';
$sWsdlUri = $sItopRoot.'/webservices/itop.wsdl.php';
//$sWsdlUri .= '?service_category=';
$aSOAPMapping = SOAPMapping::GetMapping();
ini_set("soap.wsdl_cache_enabled","0");
$oSoapClient = new SoapClient(
$sWsdlUri,
array(
'trace' => 1,
'classmap' => $aSOAPMapping, // defined in itopsoaptypes.class.inc.php
)
);
try
{
// The most simple service, returning a string
//
$sServerVersion = $oSoapClient->GetVersion();
echo "<p>GetVersion() returned <em>$sServerVersion</em></p>";
// More complex ones, returning a SOAPResult structure
// (run the page to know more about the returned data)
//
$oRes = $oSoapClient->CreateIncidentTicket
(
'admin', /* login */
'admin', /* password */
'Email server down', /* title */
'HW found shutdown', /* description */
null, /* caller */
new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', 'Demo'))), /* customer */
new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', 'NW Management'))), /* service */
new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', 'Troubleshooting'))), /* service subcategory */
'', /* product */
new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', 'NW support'))), /* workgroup */
array(
new SOAPLinkCreationSpec(
'Device',
array(new SOAPSearchCondition('name', 'switch01')),
array()
),
new SOAPLinkCreationSpec(
'Server',
array(new SOAPSearchCondition('name', 'dbserver1.demo.com')),
array()
),
), /* impacted cis */
'1', /* impact */
'1' /* urgency */
);
echo "<p>CreateIncidentTicket() returned:\n";
echo "<pre>\n";
print_r($oRes);
echo "</pre>\n";
echo "</p>\n";
$oRes = $oSoapClient->SearchObjects
(
'admin', /* login */
'admin', /* password */
'SELECT URP_Profiles' /* oql */
);
echo "<p>SearchObjects() returned:\n";
if ($oRes->status)
{
$aResults = $oRes->result;
echo "<table>\n";
// Header made after the first line
echo "<tr>\n";
foreach ($aResults[0]->values as $aKeyValuePair)
{
echo " <th>".$aKeyValuePair->key."</th>\n";
}
echo "</tr>\n";
foreach ($aResults as $iRow => $aData)
{
echo "<tr>\n";
foreach ($aData->values as $aKeyValuePair)
{
echo " <td>".$aKeyValuePair->value."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
}
else
{
$aErrors = array();
foreach ($oRes->errors->messages as $oMessage)
{
$aErrors[] = $oMessage->text;
}
$sErrorMsg = implode(', ', $aErrors);
echo "<p>SearchObjects() failed with message: $sErrorMsg</p>\n";
//echo "<pre>\n";
//print_r($oRes);
//echo "</pre>\n";
}
echo "</p>\n";
}
catch(SoapFault $e)
{
echo "<h1>SoapFault Exception: {$e->getMessage()}</h1>\n";
echo "<h2>Request</h2>\n";
echo "<pre>\n";
echo htmlspecialchars($oSoapClient->__getLastRequest())."\n";
echo "</pre>";
echo "<h2>Response</h2>";
echo $oSoapClient->__getLastResponse()."\n";
}
?>