Skip to content

Releases: rackspace/php-opencloud

v1.7.1

06 Nov 14:48
Compare
Choose a tag to compare
  • Globals removed in favor of class constants, where possible
  • Service signatures are more consistent
  • Fixes to Cloud Queues: better handling of Client UUIDs, event dispatching added for the Service, and other small fixes
  • Fixes to Monitoring: resource models have clearer methods and better relations to their Service and Parent objects
  • More documentation for key services like ObjectStorage and Cloud Queues. The README and "Getting Started" guide have also been rewritten for clarity and succinctness
  • Acceptance tests added for Cloud Queues and Monitoring
  • Fix for DataObject temporary URLs
  • CONTRIBUTING has clearer instructions for running test suites

v1.7.0

31 Oct 15:45
Compare
Choose a tag to compare

Integration with Guzzle HTTP component

  • Uploading files is now much quicker
    • Parallel requests using multi-cURL, which means files can be uploaded concurrently
    • Files over 5GB are fragmented and uploaded using multibyte chunking
  • URLs are now treated as fully fledged objects (Guzzle\Http\Url), allowing for greater functionality
  • Requests that send content now have the benefit of using the Guzzle\Http\EntityBody object, which extends and builds on the native functionality offered by PHP streams. Now there is a cool abstraction layer that offers a lot of consistency
  • Progress functionality (either by dedicated methods or by anonymous functions)
  • Event dispatching so all of your objects now have access to, and can also modify, the HTTP workflow. See Symfony's Event Dispatcher Component for more info.

For a complete list of features, view the official page.

Keypair support

Although code now exists in the SDK for API compatability for creating servers with keypairs, there has been a recent bug in Nova where certain endpoints (DFW, IAD and ORD) do not exhibit the desired functionality. A patch will be released in the near future. For reference, you just need to add in an extra array key:

try {
    $server->create(array(
        'name'     => 'test',
        'image'    => $image,
        'flavor'   => $flavor,
        'networks' => array(
            $service->network(RAX_PUBLIC),
            $service->network(RAX_PRIVATE)
        ),
        'OS-DCF:diskConfig' => 'AUTO',
        'keypair' => array(
            'name'      => 'id_rsa.pub',
            'publicKey' => file_get_contents('/path/to/local/key')
        )
    ));
} catch (\Guzzle\Http\Exception\ClientErrorResponseException $e) {
    var_dump($e->getResponse());
}

Better handling of services

  • Endpoints, the Service Catalog, and Catalog Items are now treated as objects
  • Factory methods in the core OpenStack client have been renamed for greater clarity
  • Services are now constructed with a ServiceBuilder for efficiency
  • Namespace changes to all resource models for greater consistency

Major upgrade of CloudFiles

  • Near 100% API consistency for Cloud Files
  • Complete documentation, both technical and non-technical, for all functionality
  • Better handling of resource objects: Account, Container, CDNContainer, DataObject
  • The ability to upload files in 3 different ways (each one has a different use case):
    • Sequential uploads for simple files
    • Parallel batched uploads for multiple files
    • An OpenCloud\ObjectStore\Upload\TransferBuilder factory for handling large uploads (+5GB) that require chunking
  • Conditional requests for getting objects (If-Match, If-None-Match, If-Modified-Since and If-Unmodified-Since).
    Range is also now supported for partial content returns.
  • Bulk extract and bulk delete now better supported

Unit test structure overhaul

  • Completely refactored unit tests
    • All unit tests now inherit from one centralized test case
    • Use of singletons for client object re-use
    • New implementation of mock responses
    • Request capturing using Event dispatchers

Other changes

  • Refactoring of Autoscale/Monitoring to keep things DRY
  • New docblock for every file with up-to-date license
  • Fix to logging output functionality
  • Fixes to server metadata
  • Minor changes to Metadata
  • Core change to method/property overloading. For every private model property, the end-user now has access to a
    dynamic getter/setter methods that ensure better encapsulation. For finer-grained control, they can specify concrete
    methods which supercede the magic methods. I want to get into the habit of encouraging filtered access through methods
    rather than raw property access.

v1.6.0

06 Nov 18:18
Compare
Choose a tag to compare
  • AutoScale. This feature allows people to scale their servers up or down based on "scaling policies". A policy determines the behaviour of a particular scaling action. Webhooks activate policies - and can be tied to Cloud Monitoring (i.e. if CPU falls beneath a certain number), or executed anonymously using a unique link. Each group also has its own configuration sets: one that dictates the general state of the group (its name, etc.) and another that dictates the behaviour of a new server which is spawned (flavor ID, networks, personality file, load balancers, etc.)
  • Unit test coverage reaches 100%. We've significantly added to our unit tests and brought the overall coverage to one hundred percent: this includes lines, classes and files. Existing tests are reformatted for PSR, and the stub connection classes have been upgraded.
  • Image scheduling for servers. You can now schedule image for your servers programmatically.
  • iOS Streaming is now available for containers through a unique URL.
  • New logging functionality. We have released a new logging feature compliant with PSR. It provides different levels of reporting, and can be customized to output to a specific file or stream context. With this refactoring, we plan to add in support for Airbrake in the near future.
  • Bug fixes to CDN container metadata, exporting credentials, and many others.
  • TODO list added to make it clearer for people to help contribute.

v1.5.10 - 2013-08-01

01 Aug 16:13
Compare
Choose a tag to compare
  • patch to support the diskConfig (Auto, Manual) or other attributes on
    Server::Create()
  • created CONTRIBUTING.md file to support Github feature
  • fixed release notes
  • save file to stream
  • minor fixes

v1.5.8 - 2013-06-27

03 Aug 00:35
Compare
Choose a tag to compare
  • #106 - problem with urlencoded paths for TEMP_URL feature
  • #111 - slowness in listing swift containers
  • OMG ADDED HEAT (Orchestration) SUPPORT! (Thanks, Stephen!)
  • OMG ADDED Cloud Monitoring support! (Thanks, Jamie!)
  • numerous other bug fixes, updated docs

v1.5.7 - 2013-05-27

03 Aug 00:34
Compare
Choose a tag to compare
  • #102 - Etag support on create
  • #104 - function signature mismatch
  • #105 - CDN object not associated with container

v1.5.6 - 2013-05-10

03 Aug 00:36
Compare
Choose a tag to compare
  • Support for DNS\Domain::CloneDomain() feature

v1.5.5 - 2013-05-07

03 Aug 00:37
Compare
Choose a tag to compare
  • PSR-2 implementation (code formatting)
  • issue #95 - attempt to fix default timezone to satisfy folks

v1.5.4 - 2013-04-30

03 Aug 00:38
Compare
Choose a tag to compare
  • Issue #38 - added support for Cloud Files TEMP_URL feature
  • Revised structure around namespaces
  • new entrypoint: php-opencloud.php (rackspace.php and openstack.php are still
    available for backwards compatibility)
  • Fixed issue #94
  • Added scripts/ver++.sh to increment version patch number

v1.4.1 - 2013-02-21

03 Aug 00:39
Compare
Choose a tag to compare
  • Added __DIR__ to all internal require() calls. [Issue #40]
  • Added support for Rackspace Cloud DNS (see the quick reference in docs/
    for the details)
  • Other bug fixes that I can't remember, but which are really good. Really.