icingaweb2/library/vendor/Zend/Cloud/Infrastructure/Adapter.php

168 lines
3.6 KiB
PHP

<?php
/**
* @category Zend
* @package Zend_Cloud
* @subpackage Infrastructure
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
/**
* Adapter interface for infrastructure service
*
* @package Zend_Cloud
* @subpackage Infrastructure
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
interface Zend_Cloud_Infrastructure_Adapter
{
const HTTP_ADAPTER = 'http_adapter';
/**
* The max. amount of time, in seconds, to wait for a status change
*/
const TIMEOUT_STATUS_CHANGE = 30;
/**
* The time step, in seconds, for the status change
*/
const TIME_STEP_STATUS_CHANGE = 5;
/**
* Return a list of the available instances
*
* @return InstanceList
*/
public function listInstances();
/**
* Return the status of an instance
*
* @param string $id
* @return string
*/
public function statusInstance($id);
/**
* Wait for status $status with a timeout of $timeout seconds
*
* @param string $id
* @param string $status
* @param integer $timeout
* @return boolean
*/
public function waitStatusInstance($id, $status, $timeout = self::TIMEOUT_STATUS_CHANGE);
/**
* Return the public DNS name of the instance
*
* @param string $id
* @return string|boolean
*/
public function publicDnsInstance($id);
/**
* Reboot an instance
*
* @param string $id
* @return boolean
*/
public function rebootInstance($id);
/**
* Create a new instance
*
* @param string $name
* @param array $options
* @return boolean
*/
public function createInstance($name, $options);
/**
* Stop the execution of an instance
*
* @param string $id
* @return boolean
*/
public function stopInstance($id);
/**
* Start the execution of an instance
*
* @param string $id
* @return boolean
*/
public function startInstance($id);
/**
* Destroy an instance
*
* @param string $id
* @return boolean
*/
public function destroyInstance($id);
/**
* Return all the available instances images
*
* @return ImageList
*/
public function imagesInstance();
/**
* Return all the available zones
*
* @return array
*/
public function zonesInstance();
/**
* Return the system informations about the $metric of an instance
*
* @param string $id
* @param string $metric
* @param array $options
* @return array
*/
public function monitorInstance($id, $metric, $options = null);
/**
* Run arbitrary shell script on an instance
*
* @param string $id
* @param array $param
* @param string|array $cmd
* @return string|array
*/
public function deployInstance($id, $param, $cmd);
/**
* Get the adapter instance
*
* @return object
*/
public function getAdapter();
/**
* Get the adapter result
*
* @return array
*/
public function getAdapterResult();
/**
* Get the last HTTP response
*
* @return Zend_Http_Response
*/
public function getLastHttpResponse();
/**
* Get the last HTTP request
*
* @return string
*/
public function getLastHttpRequest();
}