The Rackspace Cloud DNS service asynchronous response object
Classes
AsyncResponse
Properties
No
No
Description
The AsyncResponse class encapsulates the data returned by a Cloud DNS
asynchronous response. 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.
Metadata The Metadata class represents either Server or Image metadata
Nova Nova is an abstraction layer for the OpenStack compute service.
ObjectStore Intermediate (abstract) class to implement shared
features of all object-storage classes
PersistentObject represents an object that has the ability to be
retrieved, created, updated, and deleted.
Service This class defines a "service"—a relationship between a specific OpenStack
and a provided service, represented by a URL in the service catalog.
ServiceCatalogItem Holds information on a single service from the Service Catalog
Curl The CurlRequest class is a simple wrapper to CURL functions. Not only does
this permit stubbing of the interface as described under the HttpRequest
interface, it could potentially allow us to replace the interface methods
with other function calls in the future.
HttpRequestInterface The HttpRequest interface defines methods for wrapping CURL; this allows
those methods to be stubbed out for unit testing, thus allowing us to
test without actually making live calls.
Response
Blank The HttpResponse returns an object with status information, separated
headers, and any response body necessary.
Http The HttpResponse returns an object with status information, separated
headers, and any response body necessary.
Compute
Flavor The Flavor class represents a flavor defined by the Compute service
Image The Image class represents a stored machine image returned by the
Compute service.
Network The Network class represents a single virtual network
Server The Server class represents a single server node.
Record The Record class represents a single domain record
Service This class defines a "service"—a relationship between a specific OpenStack
and a provided service, represented by a URL in the service catalog.
Subdomain The Subdomain is basically another domain, albeit one that is a child of
a parent domain. In terms of the code involved, the JSON is slightly
different than a top-level domain, and the parent is a domain instead of
the DNS service itself.
Database
Database This class represents a Database in the Rackspace "Red Dwarf"
database-as-a-service product.
Instance Instance represents an instance of DbService, similar to a Server in a
Compute service
Service The Rackspace Database As A Service (aka "Red Dwarf")
User This class represents a User in the Rackspace "Red Dwarf"
database-as-a-service product.
LoadBalancer
Algorithm sub-resource to manage algorithms (read-only)
AllowedDomain sub-resource to manage allowed domains
BillableLoadBalancer used to get a list of billable load balancers for a specific date range
LoadBalancer The LoadBalancer class represents a single load balancer
Protocol sub-resource to manage protocols (read-only)
Node information on a single node in the load balancer
NodeEvent a single node event, usually called as part of a Collection
Readonly This defines a read-only SubResource - one that cannot be created, updated,
or deleted. Many subresources are like this, and this simplifies their
class definitions.
Stats Stats returns statistics about the load balancer
SubResource SubResource is an abstract class that handles subresources of a
LoadBalancer object; for example, the
`/loadbalancers/{id}/errorpage`. Since most of the subresources are
handled in a similar manner, this consolidates the functions.
Curl The CurlRequest class is a simple wrapper to CURL functions. Not only does
this permit stubbing of the interface as described under the HttpRequest
interface, it could potentially allow us to replace the interface methods
with other function calls in the future.
DataObject A DataObject is an object in the ObjectStore
Database This class represents a Database in the Rackspace "Red Dwarf"
database-as-a-service product.
HttpRequestInterface The HttpRequest interface defines methods for wrapping CURL; this allows
those methods to be stubbed out for unit testing, thus allowing us to
test without actually making live calls.
Rackspace Rackspace extends the OpenStack class with support for Rackspace's
API key and tenant requirements.
Readonly This defines a read-only SubResource - one that cannot be created, updated,
or deleted. Many subresources are like this, and this simplifies their
class definitions.
Service This class defines a "service"—a relationship between a specific OpenStack
and a provided service, represented by a URL in the service catalog.
Service The Compute class represents the OpenStack Nova service.
Service The Rackspace Database As A Service (aka "Red Dwarf")
Service This class defines a "service"—a relationship between a specific OpenStack
and a provided service, represented by a URL in the service catalog.
Stack The Stack class requires a CloudFormation template and may contain additional
parameters for that template.
Stats Stats returns statistics about the load balancer
SubResource SubResource is an abstract class that handles subresources of a
LoadBalancer object; for example, the
`/loadbalancers/{id}/errorpage`. Since most of the subresources are
handled in a similar manner, this consolidates the functions.
Subdomain The Subdomain is basically another domain, albeit one that is a child of
a parent domain. In terms of the code involved, the JSON is slightly
different than a top-level domain, and the parent is a domain instead of
the DNS service itself.