compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (38)

View Page History
{zone-template-instance:ZFPROP:Proposal Zone Template}

{zone-data:component-name}
Zend_Service_Rackspace
{zone-data}

{zone-data:revision}
1.0 - 2 May 2011: Initial Draft.
1.1 - 11 May 2011: Completed the prototype of the Rackspace Files service


h53. Cloud Files

The Cloud Files is a service to store any files in a cloud environment. A user can store an unlimited quantity of files and each file can be as large as 5 gigabytes. The files can be private or public. The private files can be accessed using the API of Rackspace. The public files are accessed using a CDN (Content Delivery Network).
The *Zend\Service\Rackspace\Files* component will implement all these features.

h53. Cloud Servers

Rackspace Cloud Servers is a compute service that provides server capacity in the cloud. Cloud Servers come in different flavors of memory, disk space, and CPU.
Using the Rackspace Server API you can:

* Create new servers
The *Zend\Service\Rackspace\Servers* component will implement all these features.

h53. Load Balancers

A load balancer is a logical device which belongs to a cloud account. It is used to distribute workloads between multiple back-end systems or services, based on the criteria defined as part of its configuration. The Rackspace Cloud Load Balancers API is implemented using a ReSTful web service interface. Like other products in the Rackspace Cloud suite, the load balancing service shares a common token-based authentication system that allows seamless access between products and services.
Using the Rackspace Load Balancers API you can:

{zone-data:operation}
We propose to write an abstract class (*Zend\Service\Rackspace\Rackspace*) to share methods and properties common to all the *Rackspace* services: Files, Servers and Load Balancers.
The authentication request of the Rackspace API is shared between all the cloud services and can be implemented in the abstract class. Each subclass of Zend\Service\Rackspace will implement a specific service.
{zone-data}

* Milestone 1: Complete the proposal for Files \[DONE\]
* Milestone 2: Prototype of the Zend\Service\Rackspace\Files \[DONE\]
* Milestone 3: Provide examples and unit tests
* Milestone 4: Write the documentation
* Milestone 5: Propose an adapter for the Zend\Cloud\StorageService
* Milestone 6: Complete the proposal for Servers
* Milestone 7: Prototype of the Zend\Service\Rackspace\Servers
* Milestone 8: Provide examples and unit tests
* Milestone 9: Write the documentation
* Milestone 10: Propose an adapter for the Zend\Cloud\Infrastructure
* Milestone 11: Complete the proposal for Load Balancers
* Milestone 12: Prototype of the Zend\Service\Rackspace\LoadBalancers
* Milestone 13: Provide examples and unit tests
* Milestone 14: Write the documentation
{zone-data}

Get all the containers and the files for each container.

{code:php}
$user= 'xxx';
$key= 'yyy';
Add an object (file) in a container. The metadata array is optional.

{code:php}
$user= 'xxx';
$key= 'yyy';
Create a container, store an object, and delete it. The metadata array is optional.

{code:php}
$user= 'xxx';
$key= 'yyy';
/**
* Server management URL
*
* @var string
*/
protected $managementUrl;
*/
public function getAuthUrl()

/**
* Get the storage URL
* @return string|boolean
*/
public function getStorageUrl()
/**
* Get the CDN URL
* @return string|boolean
*/
public function getCdnUrl()
/**
* Get the management server URL
*
* @return string|boolean
*/
public function getManagementUrl()

/**
* Set the user account
*/
public function setUser($user)

/**
* Set the authentication key
*/
public function setKey($key)

/**
* Set the Authentication URL
*/
public function setAuthUrl($url)

/**
* Get the authentication token
*/
public function getToken()

/**
* Get the error msg of the last REST call
* @return string
*/
public function getErrorMsg()
/**
* Get the error code of the last REST call
*
* @return strig
*/
public function getErrorCode()
/**
* get the HttpClient instance
*/
public function getHttpClient()

/**
* Return true is the last call was successful
*
* @return boolean
*/
public function isSuccessful()

/**
* HTTP call
*/
protected function httpCall($url,$method,$headers=array(),$data=array(),$body=null)

/**
* Authentication
*/
public function authenticate()

}
{code}