mirror of
				https://github.com/Icinga/icingaweb2.git
				synced 2025-10-30 19:04:10 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // {{{ICINGA_LICENSE_HEADER}}}
 | |
| // {{{ICINGA_LICENSE_HEADER}}}
 | |
| 
 | |
| namespace Icinga\Module\Monitoring\Command\Object;
 | |
| 
 | |
| use Icinga\Module\Monitoring\Command\IcingaCommand;
 | |
| use Icinga\Module\Monitoring\Object\MonitoredObject;
 | |
| 
 | |
| /**
 | |
|  * Base class for commands that involve a monitored object, i.e. a host or service
 | |
|  */
 | |
| abstract class ObjectCommand extends IcingaCommand
 | |
| {
 | |
|     /**
 | |
|      * Type host
 | |
|      */
 | |
|     const TYPE_HOST = MonitoredObject::TYPE_HOST;
 | |
| 
 | |
|     /**
 | |
|      * Type service
 | |
|      */
 | |
|     const TYPE_SERVICE = MonitoredObject::TYPE_SERVICE;
 | |
| 
 | |
|     /**
 | |
|      * Allowed Icinga object types for the command
 | |
|      *
 | |
|      * @var string[]
 | |
|      */
 | |
|     protected $allowedObjects = array();
 | |
| 
 | |
|     /**
 | |
|      * Involved object
 | |
|      *
 | |
|      * @var MonitoredObject
 | |
|      */
 | |
|     protected $object;
 | |
| 
 | |
|     /**
 | |
|      * Set the involved object
 | |
|      *
 | |
|      * @param   MonitoredObject $object
 | |
|      *
 | |
|      * @return  $this
 | |
|      */
 | |
|     public function setObject(MonitoredObject $object)
 | |
|     {
 | |
|         $object->assertOneOf($this->allowedObjects);
 | |
|         $this->object = $object;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the involved object
 | |
|      *
 | |
|      * @return MonitoredObject
 | |
|      */
 | |
|     public function getObject()
 | |
|     {
 | |
|         return $this->object;
 | |
|     }
 | |
| }
 |