OpenCloud/Volume/Volume.php

Properties

Description

Defines a block storage volume

Classes

Volume

Properties

 
 
 
No 
No 

Description

The Volume class represents a single block storage volume
This class abstracts much of the common functionality between Nova servers, Swift containers and objects, DBAAS instances, Cinder volumes, and various other objects that (a) have a URL, (b) can be created, updated, deleted, or retrieved, and (c) use a standard JSON format with a top-level element followed by a child object with attributes. In general, you can create a persistent object class by subclassing this class and defining some protected, static variables: - $url_resource - the sub-resource value in the URL of the parent. For example, if the parent URL is `http://something/parent`, then setting this value to `'another'` would result in a URL for the persistent object of `http://something/parent/another`. - $json_name - the top-level JSON object name. For example, if the persistent object is represented by `{"foo": {"attr":value, ...}}`, then set `json_name = 'foo'`. - $json_collection_name - optional; this value is the name of a collection of the persistent objects. If not provided, it defaults to `json_name` with an appended `'s'` (e.g., if `json_name` is `"foo"`, then `json_collection_name` would be `"foos"` by default). Set this value if the collection name doesn't follow this pattern. - $json_collection_element - the common pattern for a collection is: `{"collection": [{"attr":"value",...}, {"attr":"value",...}, ...]}` That is, each element of the array is an anonymous object containing the object's attributes. In (very) rare instances, the objects in the array are named, and `json_collection_element` contains the name of the collection objects. For example, in this: `{"allowedDomain":[{"allowedDomain":{"name":"foo"}}]}`, then `json_collection_element` would be set to `'allowedDomain'`. The PersistentObject class supports the standard `Create()`, `Update()`, and `Delete()` methods; if these are not needed (i.e., not supported by the service, the subclass should redefine these to call the `NoCreate`, `NoUpdate`, or `NoDelete` methods, which will trigger an appropriate exception. For example, if an object cannot be created: function Create($parm=array()) { $this->NoCreate(); } This will cause any call to the `Create()` method to fail with an exception.

Methods

CreateJson, Name, Update,

CreateJson( ) : \OpenCloud\Volume\stdClass

Description

Creates the JSON object for the Create() method

Return value

Type Description
\OpenCloud\Volume\stdClass

Name( ) : string

Description

returns the name of the volume

Return value

Type Description
string

Tags

Name Description
api

Update(   $params = array(), ) : n/a

Description

Always throws an error; updates are not permitted

Arguments

Name Type Description Default
$params n/a array()

Return value

Type Description
n/a n/a

Tags

Name Description
throws always

Properties

$_create_keys, $attachments, $availability_zone, $created_at, $display_description, $display_name, $id, $json_name, $metadata, $size, $snapshot_id, $status, $url_resource, $volume_type,

  private  $_create_keys = array('snapshot_id', 'display_name', 'display_description', 'size', 'volume_type', 'availability_zone')




  public  $attachments = array()




  public  $availability_zone =




  public  $created_at =




  public  $display_description =




  public  $display_name =




  public  $id =




  protected  static $json_name = 'volume'




  public  $metadata = array()




  public  $size =




  public  $snapshot_id =




  public  $status =




  protected  static $url_resource = 'volumes'




  public  $volume_type =




Documentation was generated by phpDocumentor 2.0.0b6 .

Namespaces

Packages