Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Php Opencloud Laravel Package

rackspace/php-opencloud

PHP SDK for Rackspace OpenCloud/OpenStack services. Manage Cloud Servers, Files, DNS, Load Balancers, Databases, Monitoring, and Identity via a unified API with authentication, region support, and common resource helpers for building cloud integrations.

View on GitHub
Deep Wiki
Context7
v1.16.0

Compute

  • Fix metadata creation for servers (#626)
  • Add ability to use ports when creating server (#638)
  • Add support for security groups on server create (#650)

Object Storage

  • Fixes to temporary URLs (#635, #653)
  • Make sure container name is valid when retrieving (#646)
  • Add delete object method in the container of ObjectStore (#651)

Load Balancers

  • Refactored load balancer node adding to use one request instead of several (#649)

Misc

  • Add Code of Conduct (#652)
  • Remove old maintainers from composer.json
  • Remove unnecessary PHP checking and let Composer do it for us
  • Add doc link and clean up old text (#639)
  • Autoload tests only for dev (#644)
v1.15.0

Databases

  • :new: Add ability to work with database backups (#605)
  • :new: Add ability for users to be granted access to DBs (#617)

Compute

  • Fix samples for creating a server on bootable volume (#600)
  • Fix samples for creating a server with keypair (#606)

CDN

  • Ensure regions are ignored when parsing service catalog (#615)

Object Store

  • Add functionality for nesting directory uploads inside pseudo-directories (#609)
  • Ensure content length of object is an integer (#607)

Networking

  • Allow port updates to affect security groups (#602)
  • Add better inline docs to listPorts method (#603)

Queues

  • Fix import statement (#611)

Misc

  • Fix bug with versions in user-agent header (#618)
v1.14.2

Databases

  • Removed custom cipher list for SSL/TLS connections
v1.14.1

Object Store

  • Allow users to override the default URL type when generating temporary URLs. Internal services can now generate public URLs.
  • Fixed an issue where the wrong data type was populating CDN containers.

Other

  • Fixed composer.json regression which only installed Guzzle/Http rather than all packages.
  • Fixed typos in core service class.
v1.14.0

:new: CDN feature

Doc fixes

  • @AdamMerrifield fixed the argument naming for the Guzzle backoff plugin docs.
v1.13.0

Project installation

  • We are bumping the minimum PHP version required from 5.3 to 5.4, since 5.3 has officially entered end of life and no longer receives security updates. Users can still use 5.3 with an older stable version of php-opencloud by following this guide.

Object Store

  • Added symlink functionality (#565 - added by @markchalloner)
  • Added sample of how to retrieve over 10,000 objects (#568 - added by @ilithium)
  • Performance improvement with how CDN containers are instantiated (#570)

Compute

  • Add support for Availability Zones (#576)

DNS

  • Added convenience method for retrieving domain by name rather than ID (#574)

Documentation

  • Added more links to our new official docs
  • Fixed incorrect reference to URL type (#578 - added by @AdamMerrifield )
  • Fixing dead links (#580)
v1.12.2

:new: Documentation

Object Storage

  • Container::uploadObjects() can now return an array of DataObjects (#546)
  • Bug fix: Fixed CDN container population when iterating via listContainers() (#527)

Networking

  • Added support for Security Groups (#551)

Databases

  • Bug fix: Using custom cipher suite for Rackspace Cloud Databases service (#562)

Load Balancers

  • Bug fix: LoadBalancer marker uses name instead of ID (#521 — bug reported by @JPry)

Common

  • Adding explanation for prefixing user agents (#543)
  • Use guzzle/guzzle instead of various guzzle/* packages (#544)
  • Bug fix: OpenStack service setup was not clear (#508 — bug reported by @mastermindg)
  • Bug fix: Logger interface did not conform to PSR-3 (#512 — bug reported and fixed by @Rvanlaak)
v1.13.0-alpha1

:new: CDN

  • Alpha support for OpenStack and Rackspace CDN service (#505)

The "alpha" tag on this release indicates that the PHP API provided by the SDK for the new CDN service might change in a backwards-incompatible manner. Once stable, we will release the new CDN service as part of a regular, non-alpha release.

v1.12.1

Object Store

  • Bug fix: Fix issue with not being able to delete empty containers (#490 — bug reported and fixed by @joshrencher)

Common

  • Bug fix: Fix breaking change introduced during version negotation (#492 — bug reported by @JeroenVanOort)
  • Typo fixes in documentation (#489 — added by @vlajos)
v1.12.0

:new: Networking

  • Full support for OpenStack Networking service (#444, #448, #465)
  • Typo fixes in documentation (#475, #476)
  • Standardizing code samples (#470)

Object Storage

  • Improve bulk delete algorithm (#478)
  • Refactoring delete container operation to make it more reliable (#479, #481)
  • Setting container TTL is now a lot easier (#439)
  • More code samples (#464)
  • Standardizing code samples (#471)

Load Balancers

  • Certificate Mappings feature now supported (#482 — added by @tylerturk, @JPry, and @ttaylor-wpe)
  • HTTPS Redirect is now a configurable option when creating LBs (#454)
  • Standardizing code samples (#457)
  • More code samples (#464)
  • Bug fix: Fixed typo in documentation (#438 — bug reported by @jjtroberts)

Compute

  • Start and stop actions added for servers (#462 — added by @notFloran)
  • Diagnostics feature added for server (#460 — added by @notFloran)
  • Added "create server with networks" sample (#468)
  • Standardizing code samples (#461)

Identity

  • Standardizing code samples (#458)
  • Bug fix: Fix to how users are created (#442 — bug reported by @hexusio)

Databases

  • Standardizing code samples (#470)

Orchestration

  • Standardizing code samples (#474)

Volumes

  • Standardizing code samples (#469)

Queues

  • More code samples (#464)
  • Bug fix: Fix to list messages iterator (#448)

Common

  • Added a more robust solution to negotiating versions in service catalog (#463)
  • Table of contents added to userguide (#452)
  • Bug fix: X-Auth-Token header was not being reset before authentication, causing OpenStack auth calls to fail (#484 — bug reported by @notFloran)
  • Bug fix: Fixed typo in constants file (#480 - bug reported and fixed by @ficus)
  • Bug fix: Tenant IDs can now be imported as strings, rather than as integers (#456 — bug reported by @JeroenVanOort)
v1.11.0

Compute

  • Servers can now be suspended and resumed (#425 — added by @asusk7m550)
  • Added extended status server properties (#386 — added by @cs278)
  • Servers can now be booted up from a volume (#407)
  • Added sample code for creating a server and retrieving its IP address (#416)

Database

  • Added support for datastores and configurations (#409)

DNS

  • Added methods for asynchronous job retrieval (#372)
  • Bug fix: Fixed broken path in user guide (#392 — bug reported by @jsbodine)
  • Bug fix: Made cross-links in documentation use relative paths (#394 — bug reported by @jsbodine)

Load Balancer

  • Added httpsRedirect as an updatable attribute (#367)
  • Bug fix: Nodes are added only if they are new (#400)
  • Bug fix: Removed call to non-existent list with details HTTP API (#426 — bug reported by @jjtroberts)

Monitoring

  • Bug fix: PaginatedIterator from fetchDataPoints now returns MetricDataPoints instead of Metrics (#387 — bug fixed by @Ben-Speakman)
  • Bug fix: Memory agent host info is now treated consistently (#385 — bug reported by @Ben-Speakman)

:new: Orchestration

  • New service added! (#390, #430, #431)

Object Store

  • More code samples (#413, #420)
  • Bug fix: CORS header are no longer prefixed with X-*-Meta-* (#403 — bug reported and fixed by @killswitch)

Queues

  • Bug fix: Fixed regex to not assume presence of claim_id (#382)

Common

  • Released responsibility for logging onto PSR interfaces (#368)
  • Bug fix: Fixed to how iterator traverses collection with next url (#370 — bug reported by @mastef)

Packaging

  • Let composer automatically decide what version constraint to use (#423 — added by @GrahamCampbell)
  • Fixed license (#399)
  • Started a Conventions section for contributors (#411, #414)
  • Added automatic lint-checking at build time (#433)
  • Added automatic PSR-2 compliance checking at build time (#434)
v1.10.0
  • Rackspace Cloud Images / OpenStack Glance now supported
  • Sample scripts added for Compute and Object Storage services
  • Fixes to various pieces of documentation
  • Fix to how PTR records are deleted in DNS service
  • Adding Load Balancer access lists is now easier
  • Adding multiple scaling policies is now easier
  • Convenience methods added to Queues, allowing for easy deletion of members for a queue
  • More specific and clear dependency versioning in composer file
  • Fix to DNS import method which now adds the appropriate HTTP headers
  • Enabling Compute v1.1 to work, which beforehand wasn't supported due to an overly strict wildcard
  • Fixes to how the catalog handles region-specific UK DNS
  • Servers can now be provisioned using flavor/image IDs instead of fully instantiated objects
v1.9.2
  • New container migration strategy. With the deprecation of default regions, a use case arose where people might want to migrate the contents of a Swift container to another geographic region. The copy method only supports cross-container migrations in one region. For more information about how to implement this, please consult the documentation.
  • Cloud init now supported for VM creation (see #288)
  • CDN enabled check fixed for containers (fixes #292)
  • Paths are now added as strings. This arose because integers paths were being ignored, which was fixed with a PR to Guzzle (see here).
  • More sympathetic errors when object not found (see 70e807)
  • Setting tenant now accounts for numerical strings, rather than just integers (fixes #290)
  • New doc for caching credentials
  • More documentation for load balancers
  • Updated docs for setting metadata when uploading object
v1.9.1
  • Fix to server keypairs in how the JSON schema was generated for server creation (fixes #272)
  • Removal of abstract method in AbstractService, since the method was already defined in ServiceInterface - this caused problems with versions of 5.3
  • Bug fix with Data Objects, allowing 0 content size to be returned (fixes #273)
  • Bug fix with Paginated Collections. Previously, the "should append" rule was incorrect - meaning that subsequent requests were not being executed (fixes #274)
  • Bug fix with LoadBalancer access resources which prohibited them from being created
  • More graceful error handling with Container deletion. If a 409 Conflict response is returned, a more meaningful error will be sent to the end-user (fixes #252)
  • Adding OpenCloud\Version class for greater clarity
  • Updated Guzzle dependency version to v2.8
  • Copyright notices updated to 2014
  • New "Getting Started" guide for OpenStack
  • Updated documentation for spawning Cloud Servers with keypair authentication
  • Adding --prefer-source flag to Travis builds to get around Github API rate-limits
v1.9.0
  • Removal of default regions. We want to ensure that the user retains control over where their data is stored, rather than making that decision on their behalf.
  • Identity/Keystone support. We now have full support for Rackspace Cloud Identity, and also support for OpenStack Keystone. The resources that you can interact with are Users, Roles, Tokens and Tenants
  • Coveralls integration. We have externalized our test coverage with Coveralls and are currently in the process of bumping it to 100%. This allows for greater transparency and holds the project to a far higher standard.
  • New iterator for DNS collections that fixes #258
  • Changes to Swift object metadata, making it easier and more efficient to update
  • Removal of callable type hint in OpenCloud\Common\Collection\ResourceIterator that was causing errors (fixes #249)
  • Fix to OpenStack\Rackspace so it references the correct CredentialError class (fixes #253)
  • Updating various Orchestration models to reference the correct PersistentObject class path
  • Addition of Keystone docs
  • Addition and improvement of Nova docs
  • Fix to Swift object doc so that the mode is included in fopen() (fixes #262)
  • Fix to sprintf in code sample in Getting Started guide (fixes #254, #259)

Full changelog can be found here

v1.8.2
  • Load Balancer nodes can now be updated (to change condition, weight or type).
  • Better garbage collection for Directory syncing -- streams are now explicitly closed after use (#246).
  • Static website methods are now available for Containers; if used on CDNContainers, a deprecation warning is thrown.
  • Claim IDs can now be extracted from Messages that have been claimed (#247).
  • New getter method for Messages (#247).
v1.8.1
  • Directory syncing with Cloud Files. Now you can synchonize local directories with remote containers, allowing for easy deployment for static sites, etc. Documentation here.
  • New method allowing for partial downloads of Swift objects (i.e. just metadata). Addresses #243.
  • Fix to an issue with iterators where the first element was not populating its resource object correctly (#237)
  • Documentation fixes (#240)
  • Fix to OpenStack client which allows for the default X-Auth-Token header to be set when importing credentials (#236)
  • Fix to recurring issue with Content-Type header (#198)
  • Fix ObjectStore being incompatible with CDN-less/OpenStack setups (#238)
v1.8.0
  • New and improved Iterators. Users always had problems traversing paginated collections, sometimes having to construct nested loops. Now, everything is offered in an easy-to-use manner that harnesses the power of PHP's native interfaces. For more information, please consult the documentation for this new feature.
  • Tenant names and tenant IDs added to OpenStack authentication. Users can now authenticate more specifically. Also fixes an issue one customer had regarding empty Service Catalogs.
  • Greater use of Symfony's EventDispatcher. The decision was made to rely more on event dispatching, rather than inheritance, to provide additional features. One of the immediate benefits of this is that there is less repetition in the Request and Response classes.
  • Uploading single objects to CloudFiles uses less bandwidth. Previously, when a single object was uploaded, another request was executed afterwards to populate the new object. This was relatively expensive operation - especially for large files. Now we populate the new object using information provided in the response for the PUT operation.
  • Fix to BulkExtract content-type uploads. Now the API is allowed to type guess the archived files in a tarball. Previously, they were manually set to application/json.
  • Better documentation for authentication, cloud monitoring, queues and iterators.
  • More consistent use of mock objects in unit tests. We are now using the MockPlugin for Guzzle to create FIFO request queues.
v1.7.3
  • CDN Container logging can now be enabled and disabled (#223 and #225)
  • Content-Type is now set to application/json by default for all entity-enclosing request (#221 and #222)
  • File handles for multiple file uploads are now closed after the request is executed. On some OSs files are locked during stream handling (#219)
  • Changes to "Getting Started" guide
  • Fixing typos for ObjectStorage guide
v1.7.2
  • Better documentation for Swift
  • Fix to content-type handling with DataObjects (#198)
  • When using Swift with ServiceNet, you can now access its CDN container information over public URL (#56)
  • Added more methods to DataObject to allow access to more state (#211, #216). See docs for a list of supported methods.
  • Updated quick reference (#152)
  • Better API docs
V1.6.0
  • 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.7.1
  • 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

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.4.1
  • 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.
v1.5.4
  • 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.5.5
  • PSR-2 implementation (code formatting)
  • issue #95 - attempt to fix default timezone to satisfy folks
v1.5.6
  • Support for DNS\Domain::CloneDomain() feature
v1.5.8
  • #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
  • #102 - Etag support on create
  • #104 - function signature mismatch
  • #105 - CDN object not associated with container
v1.5.10
  • 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
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky