CHANGES
=======

1.0.1
-----

* Unlimit oslo.utils + Make test_rest keystone cache work with keystonemiddleware 2.0

1.0.0
-----

* Install redis-server if needed
* Create a project long description in README file
* Sync requirements between Python and Python 3

1.0.0rc2
--------

* sqlalchemy: name FK constraints
* sqlalchemy: resource_history.id is not nullable
* sqlalchemy: remove 'metric' from enum type
* Generate configuration file in default tox target
* Filter more swift metrics
* Load archive_policy named resource metric
* Add html rendering for measurements of aggregation
* ceilometer: Use http session in dispatcher
* Fix minimum version for keystonemiddleware
* Fix the minimum required tooz version
* Set the default branch for stable

1.0.0rc1
--------

* rest: add a test for measures with no mean agg method in AP
* Fix resources rendering in web browsers
* rest: fix access to metric for owned resources
* Fix gnocchi-statsd can't start by flush_delay
* doc: fix typo about duration/lifespan
* doc: create metrics when creating a resource
* Update doc about storage/indexer drivers
* Fix value for default_archive_policy
* Include Ceilometer dispatcher YAML file in tarball
* Adds missed history param into IndexerDriver list_resource method
* Return detailed metric info on create
* Use Archive Policy Rule in create metric api
* Fix typo in policy name
* Use lazy loading of gnocchi project to filterout
* Use project instead of user for activity filter
* devstack: Fix the creation of archive policy
* return 404 on not-existing resource
* Let WebOb read the body of a PATCH when creating docs
* Add support for ArchivePolicy Rule Endpoints
* devstack: sync the apache template
* Fixes the setup of the keystonemiddleware
* Remove an xfail test that is now handled by another test
* doc: fixes a few typos and update some data
* Correctly enable keystone middleware
* Documentation typo
* Implements ETag for resource
* Keep history of updated resource attributes
* indexer: add support for filtering by duration
* Allow comparison of timestamp field to None
* Move JSON encoding routing in its own module
* Avoid query metric object twice from indexer
* Don't touch the sqla orm object
* gabbi: merge metric and metrics test files
* rest: pass the whole metric to aggregation
* rest: do not use expect_error in tests
* rest: enhance metric retrieval in controllers
* Adding Gabbi Tests to Metric(s) API
* indexer: return resource objects rather than dict
* indexer: return objects rather than dict
* rest: allow to search for metric value
* Move common resource attributes into a mixin
* Add gabbi tests to cover the ArchivePoliciesController
* Adjust ResourcesController to provide get_all()
* Update resource.yaml to reflect recent fixes
* rest: Add list of resources types URL on /v1/resource
* Only query metrics by uuid if we have uuids
* rest: encode all timestamps with timezone
* Bump to oslo.serialization 1.4.0
* Use modern versions of the oslo packages
* Don't use static host string in dispatcher test
* Fix gnocchi repository url
* Update .gitreview for project rename
* storage: pass query rather than predicate in value_search
* rest: add more operators in complex queries
* swift: retry if content length is 0
* tests: drop testscenarios usage for storage
* Correct handling of fixtures and server in gate tests
* rest: validate metric format before using it in indexer
* Put gnocchi meters in prefixed swift containers
* rest: validate UUID before sending it to indexer
* carbonara: stop caring about other less precise points
* Adds resource description in doc
* Improves resource class names in rest
* Add dist to gitignore
* Generate the testr results html format
* Add support for per metric Archive Policy
* Make '/' URL return meaningful information about API versions

1.0.0a1
-------

* storage: add a test for delete inexistent metric
* sqlalchemy: enhance QueryTransformer
* Remvoe version, add URL and other fields
* Add 'image' resource support
* Add 'stack' resource
* Enforce policy before request validation
* Add ipmi resource
* Add identity resource
* Add network resource
* Add ceph_account resource
* refactor indexer.sqlalchemy
* Remove useless cachetools
* Use six.text_type() to convert exceptions
* test: Use gabbi tests on live gnocchi-api
* Add AggregationDoesNotExist exception
* Don't use MultiStrOpt
* devstack: set the gnocchi url for ceilometer-alarm
* fix wrong quote format in doc/devstack.rst
* storage: add measure query class
* rest: fix exception JSON encoding
* ceph: ensure object name are str
* rest: uses search query to filter on metric aggregation
* rest: change metric aggregation URL
* test: remove useless variable
* test: move a test_capabilities out of scenarios
* rest: remove PATCH schemas
* storage: add support for value research
* devstack: fix creation of the swift reseller admin
* tests: copy archive policy before modifying it
* default pecan debug to false
* Remove direct usage of iso8601
* Remove ceilometer alarm stuffs
* tests: make authtoken less verbose
* tests: stop generating scenarios for all indexer
* rest: return a correct error code if NotImplemented
* Switch to oslo.policy
* Stop using global cfg.CONF object
* Remove Python 3.3 from tox
* rest: run the tests with no auth
* rest: replace list+filter by search mechanism
* Add a chart for each metric when viewing a resource in a browser
* Add HTML rendering for "/v1/resource/generic/<resource_id>" URL
* indexer: allow created_by_{user,project}_id to be null
* gabbi: add "" around some strings
* Fix uuid format of post resource
* carbonara: percentile must be a float
* Add the nova shiny test output
* Cover the basic resource API with gabbi tests
* ceph: don't rely on a particular agg. method
* Remove a redundant existence check in resource PATCH
* Add a py27-cover tox target
* Move oslotest from requirements to test-requirements
* service: validate default values
* archive_policy: have a sane default list of agg methods
* Base infrastructure to support gabbi tests
* rest: implement complex query for resource listing
* Put dbname in the path section of postgresql URL
* Start statsd service correctly
* Move and fix statsd option
* Fix statsd documentation file extension
* Add volume resource
* devstack: fix plugin with rename of get_or_add_user_role
* storage: pass the archive policy in various methods
* Initial statsd daemon implementation
* tests: add a missing random metric name
* tests: randomize metric name
* devstack-gate: fix gate hooks
* Use werkzeug to run the developement API server
* devstack: change Gnocchi service type to metric
* tests: do not set debug mode
* devstack-gate: allow to configure drivers
* Add some instance metrics
* remove hacking exception gettextutils
* carbonara: implement nanosecond support
* rest: add support for percentile as aggregation method
* carbonara: add support for percentile
* Fix aggregation race when no timeserie exists
* Fix devstack setup when swift is not installed
* Fix gnocchi alarm validation
* Add ceilometer alarm rule and evaluator
* Update oslo-incubator
* rest: allow aggregation against any metrics
* Add capabilities documentation
* Detect the left/right boundary of an aggregate
* Add gate hook that test the devstack setup
* rest: cascade delete on metrics from resources
* Declare method static where needed
* Use --no-defaults with mysql database creation
* carbonara: use dropna() rather than ~isnull()
* carbonara: clean up useless code
* carbonara: add serialize_to_file()
* carbonara: do not iterate over values
* carbonara: set all values at once
* Add Carbonara CLI tools
* Add capabilities API
* rest: allow to specify the list of aggregation methods
* indexer: store aggregation methods in archive policies
* Duration performance test
* tests: fix relative test failing sometimes
* Partially revert database tests patches
* Fix order of arguments in assertEqual
* storage/carbonara: stop using pandas
* rest: allow to use relative timestamps
* Remove useless requirements
* Devstack plugin for Gnocchi
* Fix ResourceSchema to allow None user_id and project_id
* Improve database handling in tests
* Adds missing argument in function call
* Switch to file:// coordination by default
* tox: fix doc8 command in py27
* rest, indexer: make the JSON encoder UUID aware
* ceph: use ceph instead of tooz for locking
* Add ceph as storage driver
* duplicate UUID method
* Switch to oslo.log
* rest: allow to render measures in HTML
* indexer: use ArchivePolicy in create_archive_policy()
* Allows cross-metric-aggreg. with missing points
* Use oslo.serialization.jsonutils to serialize JSON
* Upgrade to hacking 0.10
* Store aggregation_methods in ArchivePolicy
* Fix ceilometer dispacher to conform to the new name
* tests: fix AP retrieval
* storage: change create_metric() to accept ArchivePolicy as argument
* Create an archive_policy module
* indexer: only load metrics on explicit demand
* Check RBAC policy on aggregated metric access
* rest: do not retrieve the metric twice in get_all()
* Allow to retrieve several metrics at once from the indexer
* rest: fix typo in metric policy
* Disallow linking resources and metrics from different users
* rest: allow to filter metrics listing by user/project
* carbonara: store timestamps as integer, not string
* Remove py33-postgresql
* Update oslo-incubator
* tests: use non-admin user by default in test
* indexer: do not delete metric on resource delete
* policy: fix creator rule
* rest: convert UUID in token to correct format
* rest: enhance enforce context
* Fix executor using in _carbonara
* rest: allow timespans to be integers
* rest: return 404 on not found instead of 400
* _carbonara: fix futures import
* Update futures from global requirements
* storage: switch default driver to file
* opts: add missing oslo-incubator options
* rest: check that the Content-Type is JSON
* indexer: simplify resource ↔ metric relationship
* rest: allow to delete archive policies
* indexer: add delete_archive_policy
* indexer, rest: simplify metric model
* rest: allow to list metrics via GET /v1/metric
* Remove sphinx from Python 3 requirements
* aggregates: added moving average
* docs: generate HTTP request from real data
* Remove useless dependencies
* Allows to get aggregated measurements of metrics
* Remove mox from import exceptions
* rest: add policy to list all resource
* rest: add policy for resources
* rest: add policy check for archive policy creation
* rest: add policy for archive policies listing
* rest: add policy enforcement for archive policy retrieval
* Fix Ceilometer dispatcher after i18n transition
* Use oslotest as base class for unittests
* rest: return 400 when creating resource with invalid metric
* rest: return 404 if metric id is empty
* rest: return 404 on non existent archive policy
* tests: use SQL scripts to setup env and run any command
* Fix doc8 errors
* extension for moving aggregates
* indexer: fix typo in docstring
* rest, indexer: allow the {user,project}_id to be empty
* rest: implement policy check for create entity
* rest: add policy support for get entity
* rest: add policy for delete entity
* policy: change default rules
* Rename Entity to Metric
* ceilometer: remove useless variables from dispatcher
* Add keystone support to ceilometer dispatcher
* rest: add and expose back_window attribute of archive policies
* Allows to filter out the gnocchi generated samples
* Add a gnocchi dispatcher for ceilometer
* Allow to run any version of Pecan, except 0.8
* rest, indexer: store creators of the resources
* rest: remove Carbonara exception leak
* rest: add policy for get measures
* rest: implement policy checks for post measures
* Switch posix_ipc dependency to sysv_ipc
* Import policy from oslo-incubator
* Update oslo-incubator
* Fix and test the NullStorage driver
* storage: merge coordination and carbonara
* doc: fix typo in resource type type
* Add get_entity method in indexer
* rest: allow to have infinite retention in policies
* Minor readability improvements to carbonara
* storage: do not include to_timestamp in the range
* Remove custom 204 response code setting
* rest: validate archive policies definitions
* carbonara: fix the default fetch() behavior
* carbonara: fix archive back window
* Remove assertEqual when request method has params for it
* Move oslosphinx to requirements
* storage: multi-thread add_measure in Carbonara based drivers
* storage: factorize carbonara based drivers
* Add '?details=true' to GET '/v1/entity/<entity_id>' route
* postgresql: redirect logs to /dev/null
* Add 'GET' routes to retrieve Entity informations
* Import documentation
* Use 'pg_ctl' instead of 'postgres' utility to start and stop database
* Allow to filter resources on NULL values
* Empty gnocchi/tests/__init__.py
* Ensure Location header are string
* Limit Pecan version, fix Pandas usage
* rest: granularity is also a Timespan
* rest: allow to use timespan to define archive policy
* Don't raise 500 on carbonara NoDeloreanAvailable
* rest: add a test on GETing a non existent archive policy
* Set a minimal version for oslo.utils
* Use basepython instead of baseversion
* Fix python3 gate issue
* Keep gnocchi/__init__.py empty
* Fix typo in gnocchi wsgi script
* Add server_group to instance resource
* Don't try to load empty middleware
* rest: enable Keystone auth_token middleware by default
* Add config generator support
* Update oslo-incubator
* rest: add support for create/get archive policies
* indexer: remove entities from Entity
* tests: fix race condition on archive policies
* sqlalchemy: remove with_for_update()
* indexer: store archive policies
* Fix pep8 errors
* Switch user_id and project_id to be UUID
* Update to latest oslo-incubator
* Allows to append entities to a resource
* Ensures ipc semaphore are released in our tests
* Add swift_account resource
* Fix and re-renable Python 3 testing
* Stop using oslo-incubator lockutils
* storage: switch to ipc:// coordinator by default
* Remove outdated option
* Provide the gnocchi wsgi script
* rest: store archive_policy and export entities as resources
* Connect to database before upgrading it
* Return 404 if patched resource doesn't exists
* Stop using standard NotImplementedError to skip tests
* sqlalchemy: use new DBReferenceError from oslo.db
* indexer: make entities be resources
* storage: implement archiving policy
* Add support for mysqld not in $PATH
* indexer: use sqlalchemy-utils for UUID type
* Fix tests with latest releases of testtools
* Work toward Python 3.4 support and testing
* Added file storage backend
* Remove pandas version limitation
* swift: avoid doing a HEAD to check container presence
* Switch to tooz 0.3
* rest: returns 404 on entity not found rather than 400
* Use oslo new libraries
* rest: allow to access named entities via resources
* tests: explicitly close index connections
* Allow up to 100 connections in PG for tests
* Switch to oslo.db
* api: allow to retrieve resources details when listing
* indexer: allow to retrieve details on resources
* swift: remove compression
* carbonara: change time serie aggregation implementation
* tests: fix MySQL tests
* Update hacking
* Update oslo-incubator
* Import oslo units module
* Fix test with pecan>=0.6
* carbonara: remove useless method
* Avoid 409 Conflict on entity deletion
* Add upper bound on pecan dependency
* rest: verify that archives values are > 0
* Allow more than 2 measurements per entity to be stored
* Fix up examples in README.rst
* Fix typo
* Remove debug code
* rest: factorize resource_class
* rest: allow to PATCH instance attributes
* tests: factorize patchable attribute testing
* Remove architecture attribute from instance
* rest: returns 409 when trying to recreate a resource
* Set project name when parsing configuration
* tests: run on MySQL too
* indexer: allow to update any attribute
* indexer, rest: allow to filter on any resource attribute
* rest: allow to use project_id to filter projects
* Fixed ReST syntax errors
* Adds install instructions to Gnocchi README
* Imposed string length limit in sqlalchemy.py
* indexer: allow to filter by project_id
* sqlalchemy, tests: fix table creation race condition
* sqlalchemy: fix ended_before
* rest: allow to filter via user_id
* indexer: allow to filter by user_id
* Limit pandas version
* Ignore pbr generated files
* indexer, rest: add support for ended_before
* Port to Python 3
* Add gnocchi-dbsync command
* Rename integ to PostrgeSQL
* Add .gitreview file, do not run integ tests by default
* rest: allow to pass started_after in listing requests
* indexer: allow to retrieve resources with started_after
* rest: add resource listing
* indexer: implements list_resources()
* rest: properly handle already existing resource
* rest: support instance CRUD
* Store resource type in SQL
* Factorize resource_type
* Allow to retrieve instances
* Factorize more code
* Rename 'resource' to 'generic'
* Move generic resources under /generic
* Factorize resource to dict return
* Allow to create instances in the indexer
* Add support for Unix timestamps in API
* Fix timestamp issues + use transactions
* Handle patching of ended_at
* Fix voluptuous validation/conversion
* indexer: allow to update resource ended_at
* Handle patch with non existent entity
* Correctly handle PATCH on non-existent resource
* Use PATCH to modify entities
* Force user/project to be set
* Allow to specify start/stop timestamp when creating resources
* Return user/project in resources
* Store start/end timestamps in resources
* Actually allow to update entities only
* Add user_id and project_id to resources
* Allow to GET resources
* Allow to update resources
* Fix indent
* Fix pep8 errors
* Allow to delete resources
* Allow to create entities with a resource
* Allow to create resources via the REST API
* Rename entity name attribute to id in REST
* Add a name to entities linking
* Remove tooz from external/unverified
* indexer: store entity as UIDs
* rest: do not allow to specify the entity name
* Import
