Overview

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • 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
      • Enum
      • Resource
    • ObjectStore
      • Constants
      • Exception
      • Resource
      • Upload
    • Orchestration
    • Queues
      • Exception
      • Resource
    • Volume
      • Resource
  • PHP

Classes

  • Resource
  • Service
  • Stack
  • Overview
  • Namespace
  • Class
  • Tree
  • Download
 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\Orchestration;
19: 
20: use OpenCloud\Common\PersistentObject;
21: 
22: /**
23:  * @codeCoverageIgnore
24:  */
25: class Resource extends PersistentObject
26: {
27:     protected $links;
28:     protected $logical_resource_id;
29:     protected $physical_resource_id;
30:     protected $resource_status;
31:     protected $resource_status_reason;
32:     protected $resource_type;
33:     protected $updated_time;
34: 
35:     protected static $url_resource = 'resources';
36:     protected static $json_name = 'resource';
37: 
38:     public function create($info = null)
39:     {
40:         $this->noCreate();
41:     }
42: 
43:     public function id()
44:     {
45:         return $this->physical_resource_id;
46:     }
47: 
48:     protected function primaryKeyField()
49:     {
50:         return 'physical_resource_id';
51:     }
52: 
53:     public function name()
54:     {
55:         return $this->logical_resource_id;
56:     }
57: 
58:     public function type()
59:     {
60:         return $this->resource_type;
61:     }
62: 
63:     public function status()
64:     {
65:         return $this->resource_status;
66:     }
67: 
68:     public function get()
69:     {
70:         $service = $this->getParent()->getService();
71: 
72:         switch ($this->resource_type) {
73:             case 'AWS::EC2::Instance':
74:                 $objSvc = 'Compute';
75:                 $method = 'Server';
76:                 $name = 'nova';
77:                 break;
78:             default:
79:                 throw new Exception(sprintf(
80:                     'Unknown resource type: %s',
81:                     $this->resource_type
82:                 ));
83:         }
84: 
85:         return $service->connection()->$objSvc($name, $service->region())->$method($this->id());
86:     }
87: }
88: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0