blob: 87b9a02f92b2d9b7fff770d2d108fc7cbbb807d0 [file] [log] [blame]
1.0.4 - 2012-10-08
* server: shorten backtraces in logs to make them readable
* server: report unknown frontend cleanly when starting server (JIRA 331)
* server: generate docs at /api/docs resp. /cimi/docs
* server: clean up how we map the various frontends into the server URL space
* tests: produce nicer output and improve Jenkins integration
* Drivers
+ Google
- capture 401 and 409 errors from backend
+ Openstack
- report 401 when no username is given (JIRA 330)
- query supported collections from backend; this implies that
credentials are needed to access /api (JIRA 316)
* EC2 frontend:
- accept InstanceId as parameter for DescribeInstances (Oved Ourfali)
- Start/StopInstance: ensure instance details are returned from all
drivers, especially RHEV-M (Oved Ourfali)
* CIMI frontend:
- use correct CIMI v1.0 namespace in XML (Carlos Goncalves)
- rename entities to match CIMI v1.0 (e.g. RoutingGroup -> ForwardingGroup)
- various fixes/enhancements for networking entities (only for mock
driver so far)
- fix ordering of attributes in XML responses
- frontend still not entirely compliant with CIMI 1.0, especially
embedded collections are not yet handled correctly
* client
- make sure we send provider when changing drivers
1.0.3 - 2012-09-07
* change the format of ~/.deltacloud/config: keys are now strings, not
symbols - requires manual fixup
* server/tests/
- simplify how individual tests are run
- read credentials from a config file, rather than hardcoding them
in the tests (GoGrid and EC2 tests)
- simplify how VCR data is recorded, speed up playback
- more coverage (e.g., Rack extensions, OpenStack driver)
* server: remove extraneous quotes around ETag header value
* Drivers
+ EC2
- list subnets in a VPC as realms
- allow launching of instances into a subnet in a VPC by specifying
the corresponding subnet realm
+ OpenStack
- pass server ID as string (JIRA 306)
- require openstack gem >= 1.0.4
+ RHEV-M
- allow force stop of instance (JIRA 308)
* CIMI frontend:
- update handling of collections
- add disks and machine_volumes subcollections to Machine
* EC2 frontend: mount at ec2/ instead of /, i.e. you need to go to
http://localhost:3001/ec2 to use the frontend
* tests/cimi/: scaffolding for running the same test using JSON and XML
output
1.0.2 - 2012-08-20
* code works with MRI Ruby 1.9.x, MRI 1.8.7, and jRuby
* deltacloudd: accept -L/--log option to send log to a file; -V option to
get detailed logs
* Revamp all the tests in tests/, server/tests/, and client/tests/ to use
only the minitest test framework; also expanded the coverage of all
these test suites
* Make tests/ a test suite that can be run against any server with the
Deltacloud API (and eventually CIMI API)
* use require_relative gem for MRI Ruby 1.8
* require sinatra-rabbit >= 1.0.7 (JIRA 254)
* require excon >= 1.4.0
* Prevent hash_capability to fail finding methods (JIRA 265)
* Removed deltacloudc command line client; see
http://deltacloud.apache.org/curl-examples.html on how to use curl in
its stead
* Fix memory leak (JIRA 290)
* Fix author and mailing list address in client and server gemspec
* Drivers
+ Aruba
- new driver (Giacomo Bagnoli)
+ EC2
- fix 'bad URI' error when accessing us-east bucket from other region
(JIRA 300)
- fix exception when looking up storage snapshot with invalid id
- fix register/deregister load balancer actions
- fix exception when attaching storage volume to instance (JIRA 296)
- fix error when looking up storage snapshots (JIRA 262)
- fix error describing load balancer (JIRA 259)
- fix error viewing storage volume details from web UI (JIRA 249)
+ FGCP (all by Dies Koper)
- properly translate more backend errors
- added West Japan region
- improved error handling when connecting to wrong region, or wrong
API version
- add metrics support
- properly report whether image creation from an instance is possible
(JIRA 250)
- prevent error when listing firewall with no rules as XML
- removed system volumes from instance
- reinstated snapshots for system volumes
+ GoGrid
- fix exception in listing images (JIRA 255)
+ Mock
- fix exception when running command on instance (JIRA 298)
- added metrics support
+ OpenNebula
- make driver compatible with ON 3.6 (Daniel Molina)
- fix exception when requesting hardware profiles (JIRA 258)
+ OpenStack
- support keys collection (JIRA 205)
- allow specifying keyname when creating instance (JIRA 205)
+ RHEV-M
- properly report image_id for an instance and image status
* CIMI frontend
- fix error from GET /cimi/machines against vSphere (JIRA 279)
- fix error when looking up VolumeImage
- expose only collections supported by backend in cloud entry point
- fix error when backend does not report cpu or storage for MachineConfig
(JIRA 245)
* Deltacloud frontend
- fix streaming of blob content for large blobs
- fix EPIPE error when graphviz is not installed
- do not retrieve instance when performing start/stop/destroy (JIRA 214)
- add 'X-Deltacloud-Driver' and 'X-Deltacloud-Provider' to all responses
- fixed broken listing of supported collections in /api
- fix error changing provider from HTML UI (JIRA 248)
* EC2 frontend
- (describe_instance_set) suppress state, IP address and DNS
information if not supplied by the backend
* Ruby client
- return nil from destroy_bucket/destroy_blob
* CIMI client
- expose only collections supported by backend in cloud entry point
- report mandatory baseURI
1.0.0 - 2012-06-15
* New EC2 frontend: clients can now use the EC2 API when talking to
Deltacloud. That makes Deltacloud an EC2-to-many-backends proxy.
See http://mifo.sk/deltacloud-with-ec2-frontend
* metrics: new collection for gathering/controlling metrics (supported by
EC2 driver)
* Report destroy/delete actions on images when available (JIRA 207)
* Compatibly with Ruby 1.9
* ability to run multiple frontends from the same server (see deltacloudd
--frontends)
* Deltacloud is now a modular Sinatra application. See
http://www.sinatrarb.com/intro#Modular%20vs.%20Classic%20Style
* Use sinatra-rabbit for RESTful routing/controllers
(https://github.com/mifo/sinatra-rabbit)
* Always return status 202 after reboot in all drivers (JIRA 162)
* Numerous enhancements and bug fixes in HTML UI (JIRA 232, 211, 210,
204, 67, and many more)
* Order hardware profiles by cpu, memory (JIRA 208)
* Return status 501 when backend lacks needed capability
* Report list of hardware profile with images to indicate compatibility
of an image with a set of HWP
* Windows: fix error caused by syslog not available on Windows (JIRA 186)
* Use minitest for all our tests
* Drivers
+ EC2
- fix retrieval of IP address for run_on_instance (JIRA 211) (Dies Koper)
- return sttus 404 when deleting nonexistant load balancer (JIRA 169)
- CloudWatch support via new Metrics collection
- return status 404 when getting nonexistent blob (JIRA 174)
- fix memory amount reported for t1.micro
- add new m1.medium HWP
- return status 404 when getting nonexistent instance
+ Fujitsu Global Cloud Platform (FGCP)
- new driver contributed by Dies Koper
+ GoGrid
- fix retrieval of IP address for run_on_instance (JIRA 211) (Dies Koper)
+ Mock
- support run_on_instance (JIRA 212) (Dies Koper)
- create storage directories with mode 0750 (JIRA 139)
- allow destroying storage snapshot
- return status 404 when deleting nonexistent bucket
+ OpenNebula
- support AI v.3.x (Daniel Molina)
- support using API_PROVIDER env var to select OpenNebula installation
+ OpenStack
- updated for API v2.0
- support buckets/blob collection
- use the new openstack gem (https://github.com/ruby-openstack)
- more accurate reporting of instance state (JIRA 209)
+ Rackspace
- fix retrieval of IP address for run_on_instance (JIRA 211) (Dies Koper)
+ RHEV-M
- better error message when trying to use user_data with a backend
that is missing the floppyinject hook (JIRA 233)
- better error message when instance stop/reboot fails (JIRA 185)
- return status 400 when no provider is specified
- return status 502 if backend runs out of memory (JIRA 154)
- return status code 400 when instance name is too long
- return status 404 for unknown data center
- return status 502 for inaccessible provider
- use rbovirt gem (https://github.com/abenari/rbovirt)
+ vSphere
- return status 502 when user_data is used and backend datastore is
misconfigured (JIRA 203)
- respond with status 504 on connection timeout (JIRA 225)
- return status 502 when vSphere behaves erratically because being
overloaded (JIRA 225, BZ 805171)
- return status 502 when backend reports ToolsUnavailable, caused by
lack of VMWare tools in instance
- return created image after create_image operation (JIRA 122)
- return status 502 for inaccessible provider
- do not indicate that storage volumes and snapshots are supported,
they are not (JIRA 135)
* CIMI
+ support networking collections (VSP, VSPTemplate, VSPConfig, Address,
AddressTemplate, Network, NetworkTemplate, RoutingGroup,
RoutingGroupTemplate)
+ Improved support for many compute collections (Machine etc.)
+ added X-CIMI-Specification-Version HTTP header for all responses
+ support X-Deltacloud-Provider and X-Deltacloud-Driver request headers
+ client app:
- allow switching between EC2, RHEV-M, and OpenStack as backend
- views for networking entities
* Ruby client
- Add --user and --password params to deltacloudc (JIRA 141)
- Fix error when instances have numeric names (JIRA 27)
- Fix listing keys collection (partial fix for JIRA 199)
- Handle 301 properly for API entrypoint
0.5.0 - 2012-01-05
* add display of storage volumes to instance view
* add way to change provider in HTML UI when applicable (JIRA 105)
* fix attach volume form in HTML UI
* fix incorrect handling of REQUEST_PATH (affects platforms like passenger)
* support dynamically generated provider lists for /api/drivers/:id
* create image: report correct URL in Location header
* fix parameter validation error when switching drivers (BZ 750920)
* create instance: validate hardware properties
* incredibly experimental support for DMTF CIMI
(http://dmtf.org/standards/cloud) If you run the server with --cimi and
it breaks, you get to keep both pieces
* various client fixes
* deltacloudd: add --webrick to force use of WEBRick
* Drivers
+ EC2
- fetch available regions via DescribeRegions
- add ap-northeast-1, sa-east-1 and us-west-2 regions
- fix bucket creation when client specifies 'us-east-1' region
(BZ 725646)
- t1.micro HWP is available for 32 and 64 bit (JIRA 95)
- improvements for launching multiple instances (JIRA 79)
+ Google storage
- fix blob metadata listing
- properly validate credentials
+ Mock
- support storgae_volume create/delete
- fix m1-large HWP to use integral memory size
+ OpenStack
- new driver
+ Rackspace
- correctly report bucket size
+ RHEV-M
- data centers are now treated as completely separate regions. For a
given provider URL, only the clusters for one datacenter are
considered
- fix deleting VMs (JIRA 110)
- preserve details about backend errors
- create instance: choose image realm when none is specified (JIRA 126)
- better error msg when floppyinject is not installed (BZ 765855)
+ SBC
- correctly return the realm for /api/realms/:id (JIRA 106)
+ vSphere
- fix internal error in reporting of instance addresses
- find objects (VMs etc.) even for datastores that are in nested
folders (Alfredo Moralejo)
- HWP: replace effectiveMemory with hardcoded values (JIRA 123)
- Reboot of a VM now does a RebootGuest rather than ResetVM_Task
0.4.1 - 2011-10-04
* change how dependencies are managed: canonical deps are now in the
gemspecs
Server:
* clarify how user_data injection should work; make sure all drivers
accept base64 encoded data and make the decoded version available to
instance
* fix URL generation so that server works when run behind a reverse proxy
* init script: honor defaults from sysconfig file
* init script: fix 'status', properly background deltacloudd
* deltacloudd: support verbose option
* Drivers:
+ Condor
- use UUIDTools instead of UUID to simplify deps
+ Google
- new driver for Google storage API
+ RHEV-M
- treat status as case-insensitive
- inject data through a virtual floppy rather than modifying
the instance storage directly
+ vSphere
- report minimum of max memory across all hosts in a data center, so
that instances can be placed on any host
- user_data is placed in file 'deltacloud-user-data.txt'
Client:
* fix parsing of enums in HWP properties
* fix handling of float value for number of vCPU in HWP
0.4.0 - 2011-08-12
Server:
* deltacloudd: new option --drivers to list all drivers
* deltacloudd: new options --ssl, --ssl-key and --ssl-cert to
enable HTTPS support
* deltacloudd: new option -d to daemonize server, --user and --pid to
control the user server runs as and where pid file goes
* API entrypoint reports features in JSON
* unify response behavior: any operation returning a 201 Created also
sets the Location header to point to the new resource; ensure the
status for an operation is the same regardless of output format
* Add type to public addresses; type can be one of 'ipv4', 'mac', 'vnc',
and 'hostname'
* Complete overhaul of the HTML UI, now uses jquery-mobile
* Response status for attach/detach storage is now 202 (instead of 302)
* Response status for get/set blob metadata is 204 No Content
* Response status for (un)register with load balancer is 204 No Content
* The user_name feature now reports the permissible length of the name
as the 'max_length' constraint
* Add Date header to responses as per RFC 2616
* New collection 'firewalls' for managing sets of firewalling rules
* split server/config/drivers.yaml into individual files so each driver
can be packaged separately; gives deployers better choice of what
drivers they want enabled
* new rake task 'routes' that prints all server routes
* Numerous bug fixes and improvements to the test suite
* Drivers
+ Condor
- new driver to run a simple cloud based on the Condor grid scheduler
+ EC2
- Fix bug in reboot instance so that the details returned are those
of the stopped instance, not some random instance
- Support getting and updating blob metadata
- support destroying images
- support firewalls (security groups)
- do not support user_name anymore; instance tagging is too fragile
in EC2 to be used reliably for this
- do not support registering an instance with a load balancer upon
creation anymore
- stream blob PUT to backend (requires thin)
- support attaching EBS snapshot to instance upon creation (feature
'attach_snapshot')
- support elastic IP's
+ Eucalyptus
- support firewalls (security groups)
- support elastic IP's
+ Gogrid
- when retrieving single realm, make sure we return the right one
- correctly capture load_balancer params
- report a listener if load_balancer has no instances
+ Mock
- support destroying images
- split into driver and client to make the code clearer; this should
help driver writers in understanding what a driver must do
+ Rackspace
- support destroying images
- stream blob PUT to backend (requires thin)
+ RHEV-M
- support creating and destroying images
- report VNC address of instances
- can use Audrey's confserver to fetch IP of an instance
+ vSphere
- turns a VMWare vSphere installation into a cloud
- driver stateless, state is stored in vSphere's data store in
'deltacloud' folder
- images are template VM's
- single HWP, whose max_cpu and max_memory are based on available
cpus and memory across all vSphere hosts
- support data injection via user_data and user_iso (upload entire
ISO image) For both, instance gets virtual CD-ROM with injected
data
Client:
* make authentication info for instances available
* retrieve type and address for public addresses of an instance
* deltacloudc: allow specifying bucket location when creating a bucket
Site:
* Major rewrite of REST API docs, covers the entire API now
* Add libdeltacloud API docs
* Add Incubator logo and disclaimer to all pages
0.3.0 - 2011-04-01
Server:
* Dynamic driver switching: select driver on a per-request basis; new
toplevel 'drivers' collection describing drivers supported by server
* Create images from running instances (EC2, Mock, GoGrid, Rackspace);
advertised as action 'create_image' in instance details when possible
* New 'user_files' feature for create_instance to advertise RAX-style
injection of user data
* Return status 204 after successful DELETE operation
* Return status 401 when authentication fails because of invalid
credentials
* Blobs: support user metadata as key/value pairs passed through
X-Deltacloud-Blobmeta-KEY: VALUE headers
* Support HEAD requests to retrieve the operations and methods supported
by a collection
* Support for OPTIONS request to retrieve optional and required
parameters for operations
* Advertise 'create_instance' action for each image
* Drivers
+ EC2
- instance_count feature to allow creating multiple instances at once
- run commands inside an insance via ssh
- by default, list images owned by 'amazon', when passing in empty
owner_id, list _all_ images (thousands)
+ Eucalyptus
- new driver for Eucalyptus (Sang-Min Park)
+ Gogrid
- run commands inside an insance via ssh
- allow creating sandbox instances
+ Rackspace
- report root password after instance creation
+ SBC
- new driver for IBM SBC cloud (Eric Woods)
Client:
* run: new method to run commands via ssh
* drivers: list drivers supported by server
* properly list blobs in a bucket when showing bucket details
* full support for managing blobs and buckets
0.2.0 - 2011-01-25
Server:
* Dynamically select driver through the X-Deltacloud-Driver HTTP header;
allow passing in driver-specific endpoint with the
X-Deltacloud-Provider header
* New 'load_balancers' collection, supported for EC2 and GoGrid
* Support 'keys' collection in Mock driver
* Allow creation/deletion of blobs (S3, CloudFiles, Azure)
* Return HTTP status 405 when trying to perform an action on a instance
that is not available
* Drivers
+ EC2
- security_group and public_ip features for instance creation
- switched to aws gem
+ GoGrid: now have two hardware profiles
+ RHEV-M: completely rewritten; now uses RHEV-M REST API, not Powershell
Client: