Overview

Namespaces

  • None
  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • Exception
      • Resource
    • Common
      • Exceptions
      • Log
      • Request
        • Response
    • Compute
    • Database
    • DNS
    • LoadBalancer
      • Resources
    • ObjectStore
      • Resource
    • Orchestration
    • Volume
  • PHP

Classes

  • OpenStack
  • Rackspace

Functions

  • __raxsdk_timezone_set
  • define_gettext
  • noslash
  • setDebug
  • Overview
  • Namespace
  • Function
  • Tree
  • Download
  1: <?php
  2: /**
  3:  * Defines global constants and functions
  4:  *
  5:  * @copyright 2012-2013 Rackspace Hosting, Inc.
  6:  * See COPYING for licensing information
  7:  *
  8:  * @package phpOpenCloud
  9:  * @version 1.0
 10:  * @author Glen Campbell <glen.campbell@rackspace.com>
 11:  */
 12: 
 13: namespace OpenCloud;
 14: 
 15: /**
 16:  * This file contains only configuration data such as constants.
 17:  * You can override these constants by defining them BEFORE you including
 18:  * any of the top-level files from the SDK.
 19:  *
 20:  * Definitions:
 21:  * * RAXSDK_TIMEZONE - the default timezone for interpreting date/time requests
 22:  * * RAXSDK_STRICT_PROPERTY_CHECKS - if TRUE, the library will strictly enforce
 23:  *      property names on objects; only properties that are pre-defined or
 24:  *      appear in the extensions aliases for the service will be permitted.
 25:  *      When FALSE (the default), then any property can be set on an object.
 26:  * * RAXSDK_COMPUTE_NAME - the default name for the compute service
 27:  * * RAXSDK_COMPUTE_REGION - the default region for the compute service
 28:  * * RAXSDK_COMPUTE_URLTYPE - the default URL type for the compute service
 29:  * * RAXSDK_OBJSTORE_NAME - the default name for the object storage service
 30:  * * RAXSDK_OBJSTORE_REGION - the default region for the object storage service
 31:  * * RAXSDK_OBJSTORE_URLTYPE - the default URL type for the object storage
 32:  *      service
 33:  * * RAXSDK_DATABASE_NAME - the default name for the DbService service
 34:  * * RAXSDK_DATABASE_REGION - the default region for the DbService service
 35:  * * RAXSDK_DATABASE_URLTYPE - the default URL type for the DbService service
 36:  * * RAXSDK_CONNECTTIMEOUT - the time (in seconds) to wait for a connection
 37:  *      to a service
 38:  * * RAXSDK_TIMEOUT - the max time (in seconds) to wait for an HTTP request
 39:  *      to complete
 40:  * * RAXSDK_SERVER_MAXTIMEOUT - the max time (in seconds) that a server
 41:  *      will wait for a change in status (Server::WaitFor() method)
 42:  * * RAXSDK_POLL_INTERVAL - how often (in seconds) the Server::WaitFor() method
 43:  *      will poll for a status change
 44:  * * RAXSDK_DEFAULT_IP_VERSION - the default IP version (4 or 6) to return for
 45:  *      the server's primary IP address
 46:  * * RAXSDK_OVERLIMIT_TIMEOUT - the max time (in seconds) to wait before
 47:  *      retrying a request that has failed because of rate limits. If the
 48:  *      next available time for the request is more than (X) seconds away,
 49:  *      then the request will fail; otherwise, the request will sleep until
 50:  *      available.
 51:  */
 52: 
 53: if (!defined('RAXSDK_TIMEZONE'))
 54:     define('RAXSDK_TIMEZONE', 'America/Chicago');
 55: if (!defined('RAXSDK_STRICT_PROPERTY_CHECKS'))
 56:     define('RAXSDK_STRICT_PROPERTY_CHECKS', FALSE);
 57: if (!defined('RAXSDK_COMPUTE_NAME'))
 58:     define('RAXSDK_COMPUTE_NAME', 'cloudServersOpenStack');
 59: if (!defined('RAXSDK_COMPUTE_REGION'))
 60:     define('RAXSDK_COMPUTE_REGION', NULL);
 61: if (!defined('RAXSDK_COMPUTE_URLTYPE'))
 62:     define('RAXSDK_COMPUTE_URLTYPE', 'publicURL');
 63: if (!defined('RAXSDK_MONITORING_NAME'))
 64:     define('RAXSDK_MONITORING_NAME', 'cloudMonitoring');
 65: if (!defined('RAXSDK_MONITORING_REGION'))
 66:     define('RAXSDK_MONITORING_REGION', '{ignore}');
 67: if (!defined('RAXSDK_MONITORING_URLTYPE'))
 68:     define('RAXSDK_MONITORING_URLTYPE', 'publicURL');
 69: if (!defined('RAXSDK_ORCHESTRATION_NAME'))
 70:     define('RAXSDK_ORCHESTRATION_NAME', 'cloudOrchestration');
 71: if (!defined('RAXSDK_ORCHESTRATION_REGION'))
 72:     define('RAXSDK_ORCHESTRATION_REGION', NULL);
 73: if (!defined('RAXSDK_ORCHESTRATION_URLTYPE'))
 74:     define('RAXSDK_ORCHESTRATION_URLTYPE', 'publicURL');
 75: if (!defined('RAXSDK_OBJSTORE_NAME'))
 76:     define('RAXSDK_OBJSTORE_NAME', 'cloudFiles');
 77: if (!defined('RAXSDK_OBJSTORE_REGION'))
 78:     define('RAXSDK_OBJSTORE_REGION', NULL);
 79: if (!defined('RAXSDK_OBJSTORE_URLTYPE'))
 80:     define('RAXSDK_OBJSTORE_URLTYPE', 'publicURL');
 81: if (!defined('RAXSDK_DATABASE_NAME'))
 82:     define('RAXSDK_DATABASE_NAME', 'cloudDatabases');
 83: if (!defined('RAXSDK_DATABASE_REGION'))
 84:     define('RAXSDK_DATABASE_REGION', NULL);
 85: if (!defined('RAXSDK_DATABASE_URLTYPE'))
 86:     define('RAXSDK_DATABASE_URLTYPE', 'publicURL');
 87: if (!defined('RAXSDK_VOLUME_NAME'))
 88:     define('RAXSDK_VOLUME_NAME', 'cloudBlockStorage');
 89: if (!defined('RAXSDK_VOLUME_REGION'))
 90:     define('RAXSDK_VOLUME_REGION', NULL);
 91: if (!defined('RAXSDK_VOLUME_URLTYPE'))
 92:     define('RAXSDK_VOLUME_URLTYPE', 'publicURL');
 93: if (!defined('RAXSDK_LBSERVICE_NAME'))
 94:     define('RAXSDK_LBSERVICE_NAME', 'cloudLoadBalancers');
 95: if (!defined('RAXSDK_LBSERVICE_REGION'))
 96:     define('RAXSDK_LBSERVICE_REGION', NULL);
 97: if (!defined('RAXSDK_LBSERVICE_URLTYPE'))
 98:     define('RAXSDK_LBSERVICE_URLTYPE', 'publicURL');
 99: if (!defined('RAXSDK_DNS_NAME'))
100:     define('RAXSDK_DNS_NAME', 'cloudDNS');
101: if (!defined('RAXSDK_DNS_REGION'))
102:     define('RAXSDK_DNS_REGION', '{ignore}'); // DNS is regionless
103: if (!defined('RAXSDK_DNS_URLTYPE'))
104:     define('RAXSDK_DNS_URLTYPE', 'publicURL');
105: if (!defined('RAXSDK_AUTOSCALE_NAME'))
106:     define('RAXSDK_AUTOSCALE_NAME', 'autoscale');
107: if (!defined('RAXSDK_AUTOSCALE_REGION'))
108:     define('RAXSDK_AUTOSCALE_REGION', NULL);
109: if (!defined('RAXSDK_AUTOSCALE_URLTYPE'))
110:     define('RAXSDK_AUTOSCALE_URLTYPE', 'publicURL');
111: if (!defined('RAXSDK_DNS_ASYNC_TIMEOUT'))
112:     define('RAXSDK_DNS_ASYNC_TIMEOUT', 60);
113: if (!defined('RAXSDK_DNS_ASYNC_INTERVAL'))
114:     define('RAXSDK_DNS_ASYNC_INTERVAL', 1);
115: if (!defined('RAXSDK_CONNECTTIMEOUT'))
116:     define('RAXSDK_CONNECTTIMEOUT', 5);
117: if (!defined('RAXSDK_TIMEOUT'))
118:     define('RAXSDK_TIMEOUT', 60);
119: if (!defined('RAXSDK_SERVER_MAXTIMEOUT'))
120:     define('RAXSDK_SERVER_MAXTIMEOUT', 3600);
121: if (!defined('RAXSDK_POLL_INTERVAL'))
122:     define('RAXSDK_POLL_INTERVAL', 10);
123: if (!defined('RAXSDK_DEFAULT_IP_VERSION'))
124:     define('RAXSDK_DEFAULT_IP_VERSION', 4);
125: if (!defined('RAXSDK_OVERLIMIT_TIMEOUT'))
126:     define('RAXSDK_OVERLIMIT_TIMEOUT', 300);
127: /**
128:  * sets default (highly secure) value for CURLOPT_SSL_VERIFYHOST. If you
129:  * are using a self-signed SSL certificate, you can reduce this setting, but
130:  * you do so at your own risk.
131:  */
132: if (!defined('RAXSDK_SSL_VERIFYHOST'))
133:     define('RAXSDK_SSL_VERIFYHOST', 2);
134: /**
135:  * sets default (highly secure) value for CURLOPT_SSL_VERIFYPEER. If you
136:  * are using a self-signed SSL certificate, you can reduce this setting, but
137:  * you do so at your own risk.
138:  */
139: if (!defined('RAXSDK_SSL_VERIFYPEER'))
140:     define('RAXSDK_SSL_VERIFYPEER', TRUE);
141: 
142: /**
143:  * edit and uncomment this to set the default location of cacert.pem file
144:  */
145: //define('RAXSDK_CACERTPEM', __DIR__ . DIRECTORY_SEPARATOR . 'cacert.pem');
146: 
147: /* these should not be overridden */
148: define('RAXSDK_VERSION', '1.5.10');
149: define('RAXSDK_USER_AGENT', 'php-opencloud/'.RAXSDK_VERSION.' (Rackspace)');
150: define('RAXSDK_ERROR', 'Error:');
151: define('RAXSDK_FATAL', 'FATAL ERROR:');
152: define('RAXSDK_TERMINATED', '*** PROCESSING HALTED ***');
153: define('RAXSDK_CONTENT_TYPE_JSON', 'application/json');
154: define('RAXSDK_URL_PUBLIC', 'publicURL');
155: define('RAXSDK_URL_INTERNAL', 'internalURL');
156: define('RAXSDK_URL_VERSION_INFO', 'versionInfo');
157: define('RAXSDK_URL_VERSION_LIST', 'versionList');
158: 
159: /**
160:  * definitions for Rackspace authentication endpoints
161:  */
162: define('RACKSPACE_US', 'https://identity.api.rackspacecloud.com/v2.0/');
163: define('RACKSPACE_UK', 'https://lon.identity.api.rackspacecloud.com/v2.0/');
164: 
165: /**
166:  * We can re-authenticate this many seconds before the token expires
167:  *
168:  * Set this to a higher value if your service does not cache tokens; if
169:  * it *does* cache them, then this value is not required.
170:  */
171: define('RAXSDK_FUDGE', 0);
172: 
173: /**
174:  * Readable constants
175:  */
176: define('RAXSDK_SOFT_REBOOT', 'soft');
177: define('RAXSDK_HARD_REBOOT', 'hard');
178: define('RAXSDK_DETAILS', TRUE);
179: define('RAXSDK_MAX_CONTAINER_NAME_LEN', 256);
180: 
181: /**
182:  * UUID of the Rackspace 'public' network
183:  */
184: define('RAX_PUBLIC','00000000-0000-0000-0000-000000000000');
185: /**
186:  * UUID of the Rackspace 'private' network
187:  */
188: define('RAX_PRIVATE','11111111-1111-1111-1111-111111111111');
189: 
190: // Turn off debug mode by default
191: define('RAXSDK_DEBUG', false);
192: 
193: /********** TIMEZONE MAGIC **********/
194: 
195: /**
196:  * This is called if there is an error getting the default timezone;
197:  * that means that the default timezone isn't set.
198:  * 
199:  * @codeCoverageIgnore
200:  */
201: function __raxsdk_timezone_set($errno, $errstr) {
202:     if ($errno==2)
203:         date_default_timezone_set(RAXSDK_TIMEZONE);
204:     else
205:         die(sprintf("Unknown error %d: %s\n", $errno, $errstr));
206: }
207: set_error_handler('\OpenCloud\__raxsdk_timezone_set');
208: @date_default_timezone_get();
209: restore_error_handler();
210: 
211: /********** SOME GLOBAL FUNCTIONS **********/
212: 
213:     /**
214:      * \OpenCloud\Common\Lang::translate() - this function should be used to wrap all static strings. In the future,
215:      * this may provide us with a hook for providing different language
216:      * translations.
217:      * 
218:      * @codeCoverageIgnore
219:      */
220:     function define_gettext() {
221:         function translate($str) {
222:             return $str;
223:         }
224:     }
225: 
226:     if (!function_exists('_'))
227:         define_gettext();
228: 
229:     /**
230:      * removes trailing slash(es) from a URL string
231:      *
232:      * Mainly, this is just for appearance's sake. I really hate to see
233:      * URLs like .../servers//address, for some reason.
234:      * 
235:      * @codeCoverageIgnore
236:      */
237:     function noslash($str) {
238:         while ($str && (substr($str, -1) == '/'))
239:             $str = substr($str, 0, strlen($str)-1);
240:         return $str;
241:     }
242: 
243:     /**
244:      * Turns debugging on or off
245:      * 
246:      * @codeCoverageIgnore
247:      */
248:     function setDebug($state=TRUE) {
249:         global $RAXSDK_DEBUG;
250:         $RAXSDK_DEBUG=$state;
251:     }
252: 
253: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0