Overview
  • Namespace
  • Class

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • Collection
      • Exception
      • Resource
    • Common
      • Collection
      • Constants
      • Exceptions
      • Http
        • Message
      • Log
      • Resource
      • Service
    • Compute
      • Constants
      • Exception
      • Resource
    • Database
      • Resource
    • DNS
      • Collection
      • Resource
    • Identity
      • Constants
      • Resource
    • Image
      • Enum
      • Resource
        • JsonPatch
        • Schema
    • LoadBalancer
      • Collection
      • Enum
      • Resource
    • Networking
      • Resource
    • ObjectStore
      • Constants
      • Exception
      • Resource
      • Upload
    • Orchestration
      • Resource
    • Queues
      • Collection
      • Exception
      • Resource
    • Volume
      • Resource

Classes

  • OpenCloud\Volume\Resource\Snapshot
  • OpenCloud\Volume\Resource\Volume
  • OpenCloud\Volume\Resource\VolumeType
 1 <?php
 2 /**
 3  * Copyright 2012-2014 Rackspace US, Inc.
 4  *
 5  * Licensed under the Apache License, Version 2.0 (the "License");
 6  * you may not use this file except in compliance with the License.
 7  * You may obtain a copy of the License at
 8  *
 9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 namespace OpenCloud\Compute\Resource;
19 
20 use OpenCloud\Common\Exceptions;
21 use OpenCloud\Common\Lang;
22 use OpenCloud\Common\PersistentObject;
23 
24 /**
25  * The VolumeAttachment class represents a volume that is attached to a server.
26  */
27 class VolumeAttachment extends PersistentObject
28 {
29     public $id;
30     public $device;
31     public $serverId;
32     public $volumeId;
33 
34     public static $json_name = 'volumeAttachment';
35     public static $url_resource = 'os-volume_attachments';
36 
37     private $createKeys = array('volumeId', 'device');
38 
39     /**
40      * updates are not permitted
41      *
42      * @throws OpenCloud\UpdateError always
43      */
44     public function update($params = array())
45     {
46         throw new Exceptions\UpdateError(Lang::translate('Updates are not permitted'));
47     }
48 
49     /**
50      * returns a readable name for the attachment
51      *
52      * Since there is no 'name' attribute, we'll hardcode something
53      *
54      * @api
55      * @return string
56      */
57     public function name()
58     {
59         return sprintf('Attachment [%s]', $this->volumeId ? : 'N/A');
60     }
61 
62     /**
63      * returns the JSON object for Create()
64      *
65      * @return stdClass
66      */
67     protected function createJson()
68     {
69         $object = new \stdClass;
70 
71         foreach ($this->createKeys as $key) {
72             if (isset($this->$key)) {
73                 $object->$key = $this->$key;
74             }
75         }
76 
77         return (object) array(
78             $this->jsonName() => $object
79         );
80     }
81 }
82 
API documentation generated by ApiGen