<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_WindowsAzure
* @subpackage Diagnostics
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id$
*/
/**
* @see Zend_Service_WindowsAzure_Diagnostics_Exception
*/
require_once 'Zend/Service/WindowsAzure/Diagnostics/Exception.php';
/**
* @see Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract
*/
require_once 'Zend/Service/WindowsAzure/Diagnostics/ConfigurationObjectBaseAbstract.php';
/**
* @see Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources
*/
require_once 'Zend/Service/WindowsAzure/Diagnostics/ConfigurationDataSources.php';
/**
* @category Zend
* @package Zend_Service_WindowsAzure
* @subpackage Diagnostics
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*
* @property Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources DataSources Data sources
*/
class Zend_Service_WindowsAzure_Diagnostics_ConfigurationInstance
extends Zend_Service_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract
{
/**
* Constructor
*/
public function __construct()
{
$this->_data = array(
'datasources' => new Zend_Service_WindowsAzure_Diagnostics_ConfigurationDataSources()
);
}
/**
* Load configuration XML
*
* @param string $configurationXml Configuration XML
*/
public function loadXml($configurationXml)
{
// Convert to SimpleXMLElement
$configurationXml = simplexml_load_string($configurationXml);
// Assign general settings
$this->DataSources->OverallQuotaInMB = (int)$configurationXml->DataSources->OverallQuotaInMB;
// Assign Logs settings
$this->DataSources->Logs->BufferQuotaInMB = (int)$configurationXml->DataSources->Logs->BufferQuotaInMB;
$this->DataSources->Logs->ScheduledTransferPeriodInMinutes = (int)$configurationXml->DataSources->Logs->ScheduledTransferPeriodInMinutes;
$this->DataSources->Logs->ScheduledTransferLogLevelFilter = (string)$configurationXml->DataSources->Logs->ScheduledTransferLogLevelFilter;
// Assign DiagnosticInfrastructureLogs settings
$this->DataSources->DiagnosticInfrastructureLogs->BufferQuotaInMB = (int)$configurationXml->DataSources->DiagnosticInfrastructureLogs->BufferQuotaInMB;
$this->DataSources->DiagnosticInfrastructureLogs->ScheduledTransferPeriodInMinutes = (int)$configurationXml->DataSources->DiagnosticInfrastructureLogs->ScheduledTransferPeriodInMinutes;
$this->DataSources->DiagnosticInfrastructureLogs->ScheduledTransferLogLevelFilter = (string)$configurationXml->DataSources->DiagnosticInfrastructureLogs->ScheduledTransferLogLevelFilter;
// Assign PerformanceCounters settings
$this->DataSources->PerformanceCounters->BufferQuotaInMB = (int)$configurationXml->DataSources->PerformanceCounters->BufferQuotaInMB;
$this->DataSources->PerformanceCounters->ScheduledTransferPeriodInMinutes = (int)$configurationXml->DataSources->PerformanceCounters->ScheduledTransferPeriodInMinutes;
if ($configurationXml->DataSources->PerformanceCounters->Subscriptions
&& $configurationXml->DataSources->PerformanceCounters->Subscriptions->PerformanceCounterConfiguration) {
$subscriptions = $configurationXml->DataSources->PerformanceCounters->Subscriptions;
if (count($subscriptions->PerformanceCounterConfiguration) > 1) {
$subscriptions = $subscriptions->PerformanceCounterConfiguration;
} else {
$subscriptions = array($subscriptions->PerformanceCounterConfiguration);
}
foreach ($subscriptions as $subscription) {
$this->DataSources->PerformanceCounters->addSubscription((string)$subscription->CounterSpecifier, (int)$subscription->SampleRateInSeconds);
}
}
// Assign WindowsEventLog settings
$this->DataSources->WindowsEventLog->BufferQuotaInMB = (int)$configurationXml->DataSources->WindowsEventLog->BufferQuotaInMB;
$this->DataSources->WindowsEventLog->ScheduledTransferPeriodInMinutes = (int)$configurationXml->DataSources->WindowsEventLog->ScheduledTransferPeriodInMinutes;
$this->DataSources->WindowsEventLog->ScheduledTransferLogLevelFilter = (string)$configurationXml->DataSources->WindowsEventLog->ScheduledTransferLogLevelFilter;
if ($configurationXml->DataSources->WindowsEventLog->Subscriptions
&& $configurationXml->DataSources->WindowsEventLog->Subscriptions->string) {
$subscriptions = $configurationXml->DataSources->WindowsEventLog->Subscriptions;
if (count($subscriptions->string) > 1) {
$subscriptions = $subscriptions->string;
} else {
$subscriptions = array($subscriptions->string);
}
foreach ($subscriptions as $subscription) {
$this->DataSources->WindowsEventLog->addSubscription((string)$subscription);
}
}
// Assign Directories settings
$this->DataSources->Directories->BufferQuotaInMB = (int)$configurationXml->DataSources->Directories->BufferQuotaInMB;
$this->DataSources->Directories->ScheduledTransferPeriodInMinutes = (int)$configurationXml->DataSources->Directories->ScheduledTransferPeriodInMinutes;
if ($configurationXml->DataSources->Directories->Subscriptions
&& $configurationXml->DataSources->Directories->Subscriptions->DirectoryConfiguration) {
$subscriptions = $configurationXml->DataSources->WindowsEventLog->Subscriptions;
if (count($subscriptions->DirectoryConfiguration) > 1) {
$subscriptions = $subscriptions->DirectoryConfiguration;
} else {
$subscriptions = array($subscriptions->DirectoryConfiguration);
}
foreach ($subscriptions as $subscription) {
$this->DataSources->Directories->addSubscription((string)$subscription->Path, (string)$subscription->Container, (int)$subscription->DirectoryQuotaInMB);
}
}
}
/**
* Create configuration XML
*
* @return string
*/
public function toXml()
{
// Return value
$returnValue = array();
// Build XML
$returnValue[] = '<?xml version="1.0"?>';
$returnValue[] = '<ConfigRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">';
// Add data sources
$returnValue[] = ' <DataSources>';
$returnValue[] = ' <OverallQuotaInMB>' . $this->DataSources->OverallQuotaInMB . '</OverallQuotaInMB>';
$returnValue[] = ' <Logs>';
$returnValue[] = ' <BufferQuotaInMB>' . $this->DataSources->Logs->BufferQuotaInMB . '</BufferQuotaInMB>';
$returnValue[] = ' <ScheduledTransferPeriodInMinutes>' . $this->DataSources->Logs->ScheduledTransferPeriodInMinutes . '</ScheduledTransferPeriodInMinutes>';
$returnValue[] = ' <ScheduledTransferLogLevelFilter>' . $this->DataSources->Logs->ScheduledTransferLogLevelFilter . '</ScheduledTransferLogLevelFilter>';
$returnValue[] = ' </Logs>';
$returnValue[] = ' <DiagnosticInfrastructureLogs>';
$returnValue[] = ' <BufferQuotaInMB>' . $this->DataSources->DiagnosticInfrastructureLogs->BufferQuotaInMB . '</BufferQuotaInMB>';
$returnValue[] = ' <ScheduledTransferPeriodInMinutes>' . $this->DataSources->DiagnosticInfrastructureLogs->ScheduledTransferPeriodInMinutes . '</ScheduledTransferPeriodInMinutes>';
$returnValue[] = ' <ScheduledTransferLogLevelFilter>' . $this->DataSources->DiagnosticInfrastructureLogs->ScheduledTransferLogLevelFilter . '</ScheduledTransferLogLevelFilter>';
$returnValue[] = ' </DiagnosticInfrastructureLogs>';
$returnValue[] = ' <PerformanceCounters>';
$returnValue[] = ' <BufferQuotaInMB>' . $this->DataSources->PerformanceCounters->BufferQuotaInMB . '</BufferQuotaInMB>';
$returnValue[] = ' <ScheduledTransferPeriodInMinutes>' . $this->DataSources->PerformanceCounters->ScheduledTransferPeriodInMinutes . '</ScheduledTransferPeriodInMinutes>';
if (count($this->DataSources->PerformanceCounters->Subscriptions) == 0) {
$returnValue[] = ' <Subscriptions />';
} else {
$returnValue[] = ' <Subscriptions>';
foreach ($this->DataSources->PerformanceCounters->Subscriptions as $subscription) {
$returnValue[] = ' <PerformanceCounterConfiguration>';
$returnValue[] = ' <CounterSpecifier>' . $subscription->CounterSpecifier . '</CounterSpecifier>';
$returnValue[] = ' <SampleRateInSeconds>' . $subscription->SampleRateInSeconds . '</SampleRateInSeconds>';
$returnValue[] = ' </PerformanceCounterConfiguration>';
}
$returnValue[] = ' </Subscriptions>';
}
$returnValue[] = ' </PerformanceCounters>';
$returnValue[] = ' <WindowsEventLog>';
$returnValue[] = ' <BufferQuotaInMB>' . $this->DataSources->WindowsEventLog->BufferQuotaInMB . '</BufferQuotaInMB>';
$returnValue[] = ' <ScheduledTransferPeriodInMinutes>' . $this->DataSources->WindowsEventLog->ScheduledTransferPeriodInMinutes . '</ScheduledTransferPeriodInMinutes>';
if (count($this->DataSources->WindowsEventLog->Subscriptions) == 0) {
$returnValue[] = ' <Subscriptions />';
} else {
$returnValue[] = ' <Subscriptions>';
foreach ($this->DataSources->WindowsEventLog->Subscriptions as $subscription) {
$returnValue[] = ' <string>' . $subscription . '</string>';
}
$returnValue[] = ' </Subscriptions>';
}
$returnValue[] = ' <ScheduledTransferLogLevelFilter>' . $this->DataSources->WindowsEventLog->ScheduledTransferLogLevelFilter . '</ScheduledTransferLogLevelFilter>';
$returnValue[] = ' </WindowsEventLog>';
$returnValue[] = ' <Directories>';
$returnValue[] = ' <BufferQuotaInMB>' . $this->DataSources->Directories->BufferQuotaInMB . '</BufferQuotaInMB>';
$returnValue[] = ' <ScheduledTransferPeriodInMinutes>' . $this->DataSources->Directories->ScheduledTransferPeriodInMinutes . '</ScheduledTransferPeriodInMinutes>';
if (count($this->DataSources->Directories->Subscriptions) == 0) {
$returnValue[] = ' <Subscriptions />';
} else {
$returnValue[] = ' <Subscriptions>';
foreach ($this->DataSources->Directories->Subscriptions as $subscription) {
$returnValue[] = ' <DirectoryConfiguration>';
$returnValue[] = ' <Path>' . $subscription->Path . '</Path>';
$returnValue[] = ' <Container>' . $subscription->Container . '</Container>';
$returnValue[] = ' <DirectoryQuotaInMB>' . $subscription->DirectoryQuotaInMB . '</DirectoryQuotaInMB>';
$returnValue[] = ' </DirectoryConfiguration>';
}
$returnValue[] = ' </Subscriptions>';
}
$returnValue[] = ' </Directories>';
$returnValue[] = ' </DataSources>';
$returnValue[] = '</ConfigRequest>';
// Return
return implode("\r\n", $returnValue);
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
16170 |
perforce_software |
Move Chronicle files to follow new path scheme for branching. |
|
|
//guest/perforce_software/chronicle/library/Zend/Service/WindowsAzure/Diagnostics/ConfigurationInstance.php |
#1
|
8972 |
Matt Attaway |
Initial add of the Chronicle source code |
|
|