CHANGES
=======

* Fix password leak from ProcessExecution errors
* Set python hash seed to 0 in tox.ini
* On Python <= 2.6, use simplejson if available
* Enforce unicode json output for jsonutils.load[s]()
* jsonutils.load() accepts file pointer, not string
* remove token from notifier middleware
* Ensure routing key is specified in the address for a direct producer
* Fix config-dir for middleware tests
* Update ensure()/reconnect() to catch MessagingError
* RabbitMQ: advance thru the list of brokers on reconnect
* Qpid: advance thru the list of brokers on reconnect
* User a more accurate max_delay for reconnects
* Use multiprocessing.Event to ensure services have started
* Don't raise MySQL 2013 'Lost connection' errors
* Have tox install via setup.py develop
* Pin sphinx to <1.2
* Create a shared queue for QPID topic consumers
* Properly reconnect subscribing clients when QPID broker restarts
* Add db2 communication error code when check the db connection
* Open stable/havana

2013.2
------

* Make Messages unicode before hitting logging
* Removed calls to locals()
* Ensure that Message objects will be sent via RPC in unicode format
* Require oslo.config 1.2.0 final
* Type check for Message param to avoid AttributeError
* Adam Young as alternate Policy maintainer
* Adding instance_uuid to context and log
* gettextutils: port to Python 3
* Make run_tests.sh identify requirements correctly
* Fix timeutils.set_override_time not defaulting to current wall time
* Skip hidden files while traversion rootwrap filters
* Move comment in service.py to correct location
* Keystone user can't perform revoke_token
* Fix misused assertTrue in unit tests
* Translate all substitution elements of a Message object
* Fix os.getlogin() problem with no tty
* Don't need to init testr in run_tests.sh
* Changed header from LLC to Foundation based on trademark policies
* config.generator: allow extra modules importing
* Remove useless unit test codes in test_policy
* Using NestedTempfile in new BaseTestCase class

2013.2.b3
---------

* Introduces The Guru Meditation Report
* Replace list with dict in AvailabilityZoneFilter.host_passes
* Send rootwrap exit error message to stderr
* Fixes issue with SUGHUP in services on Windows
* Introduces Openstack-Specific Report Utilities
* Introduces Report Views
* Support a new qpid topology
* Optimize timeutils.utcnow_ts()
* Modify lockutils.py due to dispose of eventlet
* add audit middleware
* middleware: add notifier
* Modify SQLA session due to dispose of eventlet
* Introduces Basic Report and Model
* Use monkey_patch() in TestMigrationUtils setUp()
* Proper usage of _resource property in quotas
* Sample config file generator clean up
* Replaces relative path to absolute path in conf file generator
* parameterize fileutils removal functions
* Remove underscore tests.init hack
* Refactors if statement in config generator
* jsonutils: make types py3 compatible
* jsonutils: do not require xmlrpclib
* excutils: replace unicode by six.u
* excutils: use six.reraise to re-raise
* Add common code for CLI tools
* fileutils: don't import __builtin__
* py3kcompat: Add unquote
* Remove lxml from requirements
* python3: Fix UserString import
* rootwrap: improve Python 3 compatibility
* Replace using tests.utils part1
* Replace using tests.utils part2
* Make dependency on netaddr optional
* Provide useful defaults for config generator
* Update requirements
* Fix processutils.execute errors on windows
* Clean up db.sqla.Models.extra_keys interface
* Make a cStringIO usage in test_log py3 compatible
* Use functools.wrap() instead of custom implementation
* Enable multiple translation domains for gettextutils
* Update DB maintainers
* Raise timeout in fake RPC if no consumers found
* Move base migration test classes to common code
* Bump hacking to 0.7.0
* exception: remove
* Don't eat callback exceptions
* requeue instead of reject
* py3kcompat: Add urljoin compatibility
* Unset OS_xx variable before generate configuration
* Allow mapping _ to lazy gettext path
* Update .mailmap
* Move `./run_tests.sh` to Oslo
* Fixes files with wrong bitmode
* User quota update should not exceed project quota
* Fix case error in qpid exchange type "direct"
* Fix capitalization, it's OpenStack
* Ensure context type is handled when using to_dict
* Replace using tests.utils with openstack.common.test
* Don't attempt to patch eventlet without the patch
* Use single meta when change column type
* Allow passing a logging level to processutils.execute
* middleware: code cleanup
* Add a fixture for dealing with config
* Fix wrong argument in openstack common policy
* Clarify precedence of secret_key_file
* Don't shadow cfg import in securemessage
* Remove redundant global keyword in securemessage
* Some nitpicky securemessage cleanups
* Allow non-use of cfg.CONF in securemessage
* Add common part of test-related tools to oslo
* Add missing exceptions for per user quota
* RPC: Add MessageSecurity implementation
* Fix Message format-string parsing
* python3: Import translation layer
* Helper function to sanitize db url credentials
* Modify local.py to not be dependent on Eventlet
* Fix missing argument bug in oslo common policy
* Ensure install_venv works behind firewalls
* Add common methods required to allow translation of REST API responses
* Update references with new Mailing List location
* Import common quota code from nova and cinder
* Fix policy default_rule issue
* Refactors boolean returns
* BaseException.message is deprecated since Python 2.6
* Fix hostname conflict in config generator
* Add function drop_unique_constraint()
* Change sqlalchemy/utils.py mode back to 644
* Move sqlalchemy migration from Nova
* Add service restart function in oslo-incubator
* config.generator: remove the total number of options
* Make ZeroMQ based RPC consumer threads more robust
* python3: handle module moves in log
* Implement apiclient library
* Import config file generator module from python path
* Fix issues syncing sample generator in update.py
* Change file bit of sample config file generator
* On reconnecting a FanoutConsumer, don't grow the topic name
* Remove DnsmasqFilter and DeprecatedDnsmasqFilter
* Allow use of hacking 0.6.0 and enable new checks
* Exception code cleanup
* Avoid shadowing Exception 'message' attribute
* Add eclipse project files to .gitignore
* Add serializer param to RPC service
* Fix locking bug
* Raise ValueError if sort_dir is unknown
* Add tests for cinder/common/sqlalchemyutils.py
* python3: Add basic compatibility support

2013.2.b2
---------

* Add config for amqp durable/auto_delete queues
* Remove the unused notifier.add_driver() API
* Document Flavio as a maintainer of the policy code
* Add maintainer for apiclient
* Fixes path to add on PYTHONPATH in generate_sample.sh
* Add more robust gettext interpolation handling
* Fix stylistic problems with help text
* python3: Add python3 compatibility support
* Move synchronized body to a first-class function
* Make lock_file_prefix optional
* Add .testrepository to .gitignore
* python3: Add basic python3 compatibility
* Move `test_migrations` from Nova
* Migrate sqlalchemy utils from Nova
* Fix missing argument bug in oslo common policy
* Revert "Add support for heartbeating in the kombu RPC driver"
* Fix issue with pip installing oslo.config-1.2.0
* Enable H302 hacking check
* Avoid shadowing Exception 'message' attribute
* Clean up and make HACKING.rst point to openstack-dev/hacking
* Add a monkey-patching util for sqlalchemy-migrate
* Convert kombu SSL version string into integer
* notifier: do not rely on CONF.host
* Add support for heartbeating in the kombu RPC driver
* Allow launchers to be stopped multiple times
* Add missing license header
* Use print operator in function style
* Stop using distribute in install_venv_common
* Sanitize passwords in _safe_log
* Ignore any exceptions from rpc.cleanup()
* Add maintainer for crypto utilities
* config.generator: replace sys.prefix by /usr
* Enable H304 hacking check
* Handle empty arglists in Filters
* Add conditional exception reraise
* Replace sys.exit by a RPCException
* Fix bad default for show_deleted
* Fix exception arg typo
* Add graceful service shutdown support to Launcher
* Add common crypto utilties
* Handle empty PATH environment variable
* python3: Add python3 compatibility
* Fix tox.ini config
* Add netaddr.IPAddress support to to_primitive()
* Add exceptions for OpenStack clients
* Refactor KombuStubs fixture
* Make AMQP based RPC consumer threads more robust
* Fixes crash when no help for an option
* Enable H202 hacking check
* Do not raise NEW exceptions
* Adds sample config file generation script
* Don't use mixture of cfg.Opt() deprecated args
* Allow BaseTestCase use a different conf object
* rpc: remove some unused serialization code
* Add network_utils.urlsplit
* Improve usability when backdoor_port is nonzero
* Ensure that DB configuration is backward compatible
* Highlighting the deprecated nature of 'log-format'
* Creates a new file TESTING.rst
* Update kombu and anyjson
* Optionally reject messages on exception
* Add IpFilter, IPNetnsExecFilter and EnvFilter
* Remove useless logging in networks_utils
* Remove the unused plugins framework
* Replace nosetests with testr in tox.ini
* python3: Fix traceback while running python3
* Remove unused zmq relay functionality
* Refactors to_bytes
* Handle relative path arguments in Killfilter
* Don't reconnect to exclusive fanout consumers
* Add a fixture for using of SQLite in-memory DB
* Allow exceptions to hop up cells
* Add can_send_version() to RpcProxy
* Remove explicit distribute depend
* Add slugify to strutils
* Raise a DeprecationWarning when openstack.common.deprecated is imported
* Enable hacking H404 test
* Enable user to configure pool_timeout
* Use param keyword for docstrings
* Add a funcutils file for working with functions
* Use Python 3.x compatible octal literal notation
* Move wsgi module to deprecated package
* Fix workarounds for some values
* Changed processing unique constraint name
* Use Python 3.x compatible except construct
* Add fileutils maintainer
* Added common code into fileutils and strutils
* zmq: remove someone unused code from ZmqClient
* Add common code for fileutils
* Remove the amqp_rpc_single_reply_queue option from Havana
* Enable H306 hacking check
* Rename requires files to standard names
* Fix problem with long messages in Qpid
* Add a slave db handle for the SQLAlchemy backend
* Enable hacking H402 test
* python3: Introduce py33 to tox.ini
* Silence exceptions from qpid connection.close()
* python3: python3 binary/text data compatbility
* Enable hacking H403 test
* Enable hacking H401 test
* MatchMakerStub - make it work & add test
* Enable hacking H201 test
* Fixes email typo in MAINTAINERS

2013.2.b1
---------

* Import oslo.config configuration file generator
* Changed processing unique constraint name
* Use zero-copy in ZeroMQ proxy (zmq-rpc-receiver)
* Remove rootwrap from IPC directory creation
* Add basic lazy gettext implementation
* Ignore backup files in .gitignore
* Reduce duplicated code related to policies
* Add generic serialization support
* Enable hacking H702 localization test
* Enable hacking H703: Multiple positional placeholders
* Specify database group instead of DEFAULT
* Allow RPC_API_NAMESPACE on RpcProxy objects
* Use stubout in test_correlation_id
* Fix tox coverange env
* Use mox object from moxstubout fixture
* Add support for requirements.txt
* Migrate to pbr
* Break out common functionality for filters and weights
* Add hacking extension to flake8
* Support capping message versions in the client
* Extract matchmaker_ring to own module
* Update KillFilter to stop at '\0' for readlink() function
* Add Middleware for correlation_id
* Fixes import order nits
* Add 't', 'y', and `strict` to `bool_from_string`
* Adds --nodeps option to update.py
* Remove the notifier and its dependencies from log.py
* Update eventlet bug URL
* python3: use 'as' syntax for exception assignment
* Removes len() on empty sequence evaluation
* Line wrapper becomes to long when expanded
* Handle ints passed to `boolean_from_string`
* Removes leading zeros on integers in test_timeutils
* Renames filter to base_filter and weight to base_weight
* Add DynamicLoopCall timers to ThreadGroups
* Minor README improvement
* Pass backdoor_port to services being launched
* Stylistic improvements from quantum-rootwrap
* Added convenience APIs for lockutils
* Copy Nova's workaround for RHEL6 eventlet issue
* Convert unicode strings for python3 portability
* Adds timeutils and uuidutils maintainer
* Import trycmd and ssh_execute from nova
* Convert unicode for python3 portability
* Update processutils
* Add test coverage for sqlite regexp function
* Improve python3 compatibility
* I'll maintain periodic_task as well
* Mark myself as a maintainer
* Deprecate log_format and change default to None
* Use optparse for install_venv_common
* Use range rather than xrange
* Ensure that qpid connection is closed
* Do not import openstack.common.log in strutils
* Add support to clear DB
* Proposing Flavio Percoco as maintainer for strutils.py
* oslo logging tries to run chmod on file
* Add a MAINTAINERS file
* Add missing LICENSE file
* Add middleware to limit size of HTTP requests
* Avoid calling sudo in install_venv_common.py
* Add enforcement for foreign key contraints with sqlite
* Use print_function __future__ import
* Revert common logging use in rootwrap
* Improve Python 3.x compatibility
* Removes metadata from ModelBase
* Add rpc method namespace support
* Removes created_at, updated_at from ModelBase
* Fixes private functions private
* Support for lazily instantiated loggers
* Incorrect logging setup - duplicating root handlers
* Optimise to_primitive common cases
* Replaces the standard uuid with common in the context module
* Replaces standard logging with common logging
* Finds dependencies of configured modules for update.py
* Import nova's looping call
* Move bin/ scripts to entrypoints
* Support overriding oslo localedir too
* Add a gettextutils.install() helper function
* Copy recent changes in periodic tasks from nova
* Fix IBM copyright strings
* Fix the co-authored-by processing
* Add PathFilter to rootwrap
* rpc: fix positional args in remote exceptions
* Change qpid_port to IntOpt
* Fix test_write_git_changelog
* Mark sql_connection with secret flag
* Remove deprecated Grizzly features
* Fix default values for Matchmaker IntOpts
* gettextutils: fix translation domain
* Fix problem with setting SSL protocol in QPid
* Update to use flake8
* Remove unused imports
* Include Co-authored-by entries in AUTHORS
* Improves Logging for for rpc method timeouts
* Locking edge case when lock_path does not exist
* lockutils: add a failing unit test
* lockutils: improve the external locks test
* Gracefully handle errors in logging config files
* Enable message envelope
* Remove detailed-errors from setup.cfg
* Adds pylint section in tox.ini to check for unused imports
* clarify --log-file comments
* Removes unused imports in the tests module
* Eliminate multiple contexts in zmq call()
* Allows wsgi server kwargs to be given
* Include PID in default logging_context_format_string
* Move wsgi.Service socket creation into the constructor
* update OpenStack, LLC to OpenStack Foundation

2013.1
------

* Sanitize input before creating IPC socket
* update.py: support one-module-per-line configuration
* Switch to final 1.1.0 oslo.config release
* Initialize root logger in _setup_logging_from_conf()
* Fix locking issues in Windows
* Fix Copyright Headers - Rename LLC to Foundation
* Unignore log_format option
* Stop using --stat for ChangeLog
* Keep exc_info() to prevent an internal error
* Fix inconsistency with auth_tok/auth_token
* Add 'is' operator to extra specs ops
* Don't check exit codes when patching
* Update install_venv_common to use patch -N
* Switch to oslo.config
* Simple code cleanup
* Preserve exceptions in impl_zmq
* support ISO 8601 micro-second precision
* Don't LOG.error on max_depth (by default)
* Don't log a traceback on rpc call timeout
* Add simple in-memory cache from nova
* Redis-based matchmaker
* update.py: DRY up using functools.partial()
* Zmq correct envelope param for notify()
* Zmq notifier topic manip fix
* Port safe parsing with minidom patches from Nova
* Fixes import order nits
* zmq: parse receiver CLI opts in main
* Support qpid unit tests
* Decode / Encode string utils for openstack
* Update flakes.py to match 0.6.1
* openstack.common.setup: fails to get version from git
* AMQP: skip duplicate messages
* Clean up sqlalchemy exception code
* Fix "Needs to specify pyzmq version"

grizzly-3
---------

* Revert "Implement replay detection."
* Revert "Fast serialization of RPC envelopes for Kombu"
* Don't s/oslo/base/ for files in the rpc lib
* readd update.sh to address bootstrapping issue
* Setup exception handler after configuring logging
* Fix IPC direct topic routing
* Avoid using cfg in install_venv_common
* Fast serialization of RPC envelopes for Kombu
* Support RPC envelopes in impl_zmq
* Implement replay detection
* blueprint amqp-rpc-fast-reply-queue
* Move DB thread pooling to DB API loader
* Add ConfigFilter wrapper class
* Make update.py work with oslo.config
* Add function for listing native threads to eventlet backdoor
* Use oslo-config-2013.1b3
* Change the check for the existence of .git directory
* returncode for Popen is valid only after communicate call
* Cleanup imports
* Rename oslo-zmq-receiver to oslo-rpc-zmq-receiver
* Add join_consumer_pool() to RPC connections
* Don't use subprocess for testing excepthook
* Fix "DirectConsumer needs mirrored queue support"
* Fix Lack of reconnecting operation when using rabbitmq mirrored queue
* sort options to make --help output prettier
* to_primitive imposes what seems to be an arbitary data structure depth of 3, but there is at least on case in Nova (Security group Rules) which requires a depth beyond this
* Cleanup docstring and print in install_venv_common
* Support testing args for LocalhostMatchMaker
* Allow running test in uninstalled source tree
* Allow to_primitive to ignore datetimes
* Use importutils.try_import() for MySQLdb
* Fix sorting in test-requires
* Minor tweak to make update.py happy
* Remove pointless use of OpenStackException
* Remove unused context from test_sqlalchemy
* Remove openstack.common.db.common
* Provide creating real unique constraints for columns
* Fix missing wrap_db_error for Session.execute() method
* Fix eventlet/mysql db pooling code
* Add missing DBDuplicateEntry
* Add a fixture for dealing with mock patching
* Add support for directly stringifying VersionInfo
* Update .coveragerc
* Emit a warning if RPC calls made with lock
* Allow tools/install_venv_common.py to be run from within the source directory
* Be explicit about set_default() parameters
* Remove duplicate DB options
* Eliminate gratuitous DB difference vs Nova
* Import sqlalchemy session/models/utils
* Mark password config options with secret
* Update HACKING.rst per recent changes
* Support for ipv6 in wsgi.Service
* Bump eventlet to 0.12.0
* Exchanges should return directed topics
* Only unpack replies on caller
* Use bytes instead of str
* timeutils: considers that now is soon
* Fixes 'not in' operator usage
* Use importutils for matchmaker import
* Implements import_group
* Add _FATAL_EXCEPTION_FORMAT_ERRORS global
* Fix PEP8 error in oslo-rootwrap
* Add tests for setup
* Support for SSL in wsgi.Service
* Default lockutils to using a tempdir
* Add TTL to AMQP messages
* Only import modules in tools/flakes
* Update copyright on install_venv_common.py
* Dict args safe processing
* Fix Pep8 Warning
* rootwrap: Avoid PEP8 errors on name replacement
* Fix MonekyPatch typo in test_qpid
* Fixes "is not", "not in" syntax usage
* setup: count revs for revno if there are no tags
* Support running uninstalled in a tarball dir
* Add install_venv library
* Document tools/flakes is from commons
* Prevent parallel test port clashes for zmq
* Replace direct use of testtools BaseTestCase
* Remove the last of the nose-isms
* Replaced direct usage of stubout with BaseTestCase
* Fix up test_qpid to use BaseTestCase
* Use testtools as test base class
* Start adding reusable test fixtures
* Import timeutils.is_soon from keystoneclient
* Allow update.py to copy tools
* UTC ISO8601 from timestamp
* Move logging config options into the log module
* Remove unused etc/openstack-common.conf.test
* Enable ZeroMQ tests
* Use revno and git sha for pre-release versioning
* Add env var version override for packagers
* Require greenlet 0.3.2 (or later)
* trivial pep whitespace fix
* Fixes import order errors
* Remove write_requirements
* Stop using no longer valid -E option for pip
* ThreadGroup remove unused name parameters
* use regexp to parse the mailmap
* Fixes an import order nit
* Make tox run doctests
* Allow rpc drivers to always be imported
* Rework zmq setup and cleanup
* Implement importutils.try_import
* Add missing parameter to impl_fake notify function
* Don't include versioninfo in manifest
* Fix zmq socket.close() with eventlet 0.9.17
* reusable ZmqProxy service initialization
* Verbose should not enable debug level logging
* Fix pep8 E125 errors
* Simplify version processing
* zmq-receiver msg forwarding in greenthreads
* Address test_zmq setup/teardown races
* call() to accept serialize and force_envelope
* Log when release file lock
* Improve millisecond logging

grizzly-2
---------

* Revert "Support lookup of value using "group.key""
* rpc method arguments should be dict, not list
* Add zmq receiver binary
* Fix serialization in impl_zmq
* Upgrade WebOb to 1.2.3
* Make WebOb version specification more flexible
* Eliminate sleep in the lockutils test case (across processes)
* Add a latex command to our sphinx builders
* Use basestring instead of str for type check
* Make time comparison functions accept strings
* Disable lockutils test_synchronized_externally
* Add common base weigher/weigher handler for filter scheduler
* Add common filter/filter handler for filter scheduler
* Use package for writing versioninfo
* Enable millisecond logging by default
* Sanitize cells calls
* Fix timezone handling in timeutils tests
* Optionally add message envelope to notifications
* JSONDictSerializer encode objects to unicode
* Fix publish_errors unit test
* Ensure proxy callback threads exit during tests
* Fix test cases in tests.unit.test_service
* Support lookup of value using "group.key"
* Add a rpc envelope format version number
* Don't rely on os.wait() blocking
* Don't use exclusive queues for fanout and direct
* Close kombu.connection.BrokerConnection correctly
* Fix debug message in multicall of rpc.amqp
* fix intermittent failures with deferred version test
* Allow update.py copy config files and binaries
* Move rootwrap code to openstack.common
* Register the control_exchange RPC option
* Make wsgi.Server comply with service.Launcher interface
* Add deprecated --logdir common opt
* Allow exceptions to pass over RPC silently
* Add deprecated --logfile common opt
* Allow nova and others to override some logging defaults
* Change Exception MissingArgs's string
* Fixing the trim for ListOp when reading from config file
* Fix qpid cast_to_server regression
* Allow remote stdlib exceptions to be deserialized
* Fix broken --version command
* Fix import order in openstack/common/lockutils.py
* Fixing modulename so eventlet will log properly
* Fix set_default() with boolean CLI options
* Fixes update.py issue with EOL style on Windows
* Use json instead of jsonutils in rpc.impl_fake
* Rename utils.py to strutils.py
* Fixes import nit in test_zmq
* Add a CLI argument validation utility
* Improve cfg's argparse sub-parsers support
* Use Service thread group for WSGI request handling
* Qpid H/A cluster support
* Provide i18n to those messages without _()
* Make project pyflakes clean
* Replace try: import with extras.try_import
* Fixes import order
* Fix regression with cfg CLI arguments
* Fix common rpc to use common logging instead of python logging
* Fix ListOpt to trim whitespace
* Add another duplicate opt test case
* Hide the GroupAttr conf and group attributes
* Fix broken --help with CommonConfigOpts
* Fixup update.py after argparse breakage
* raise_on_error parameter shouldn't be passed to task function
* Remove sitepackages=True from tox.ini
* Account for tasks duration in LoopingCall delay
* Convenience wrapper for datetime.timedelta.total_seconds()
* updating sphinx documentation
* Fix update.py string interpolation
* Don't reference argparse._StoreAction
* Fix minor coding style issue
* update deprecated stanza
* Remove ConfigCliParser class
* Add support for positional arguments
* Use stock argparse behaviour for optional args
* Use stock argparse --usage behaviour
* Use stock argparse --version behaviour
* Remove add_option() method
* Completely remove cfg's disable_interspersed_args()
* argparse support for cfg
* Enable eventlet_backdoor to return port
* Adjust the logging_context_format_string
* Added initialize_service_hook for rpc.Service
* Fix the log test so it uses the available context fields
* Use the ThreadGroup for the Launcher
* Change RPC cleanup ordering
* threadgroup : greethread.cancel() should be kill()
* Correcting openstack-common mv to oslo-incubator
* Update .gitreview for oslo
* Add generate_uuid to uuidutils
* Clean up dictionary use in RPC drivers
* Fix QPID reconnect issues
* Rename rabbit_notifier to rpc_notifier
* Remove unused imports from rpc test_common
* Tweak rpc.queue_get_for to deal with host=None
* Restore proper LoggerTestCase
* Remove openstack.common.config and extensions
* Remove unused greenthread import in lockutils
* Use spawn_n when not capturing return value
* Fixes setup compatibility issue on Windows
* Make ThreadGroup derived from object to make mocking possible
* Creates uuidutils module
* kombu's fanout_cast_to_server was calling wrong method
* Move utils.execute to its own module
* Relax the update.py replace regex
* Don't log exceptions for GreenletExit and thread_done
* Log CONF from ProcessLauncher.wait, like ServiceLauncher
* Add a missing comma in a docstring
* move nova.common.deprecated to openstack-common
* Removes redundant string cast
* Add setup.py for registering namespace package
* Import order clean-up
* Fix a logic error in stable version calculation
* cfg: fix required if option has a dash
* Use queue_arguments for fanout consumers too
* Fix missing import in lockutils
* Move nova's util.synchronized decorator to openstack common
* Fix a couple of file handle leaks, using with statements
* Fix WSGI Service init's call to incorrect super method
* Use self.config in test_zmq
* Revert "Add support for finer-grained policy decisions"
* Revert "fanout subscriptions in impl_zmq"
* Revert "Support declare_topic_consumer in impl_zmq"
* Remove an unneeded 'global'
* Add support for finer-grained policy decisions
* Add a 'not' operator to the policy langage
* Add a new policy language
* Remove deprecated policy engine APIs
* Rewrite the policy engine from scratch
* Added is_newer_than function
* Added a missing `cfg` import in service.py
* Fix missing import of `rpc.dispatcher` in `rpc.service`
* Change wsgi Server class to Service
* Limit pep8 checks to our source
* .gitignore updates for generated files
* Ignore the stackforge jenkins email address
* Add exchange_name parameter to TopicConsumer
* Extracted parse_host_port into network_utils
* Log config on startup
* Integrate eventlet backdoor
* Add the rpc service and delete manager
* LOG.exception() should only be used in exception handler
* DRY up mirrored Rabbit queue declaration
* Don't deprecate rabbit_host and rabbit_port
* Support for several HA RabbitMQ servers
* Support declare_topic_consumer in impl_zmq
* fanout subscriptions in impl_zmq
* Change the qpid_heartbeat default to 60 seconds
* Normalize_time() always return naive object
* Use pep8 v1.3.3
* Added a method for parsing host:port pairs
* Make projects define 'control_exchange'
* Improve logging of process id
* Add cinder to allowed_rpc_exception_modules
* Code cleanup
* Update zmq context cleanup to use term
* Fix PEP8 issues
* Regarding the mispelling of the Noble Narwhal
* Add nosehtmloutput as a test dependency
* Allow non-string items in the creds dict
* Add threadgroup to manage timers and greenthreads
* Add basic periodic task infrastructure
* Add multiprocess service launcher
* Add signal handling to service launcher
* Don't trap then re-raise ImportError
* Fix spelling typos
* Remove unused imports
* Remove register_opts from client methods
* Basic service launching infrastructure
* Move manager.py and service.py into common
* Remove amqp import from rpc/test_common
* cfg: clean up None value handling
* Allow set_default and set_override to use None
* Tilde expansion for --config-file and --config-dir
* Support for marshalling datetime while preserving microseconds
* Rename FLAGS to CONF; Remove self.conf
* Fix meaningless test case
* Add multiple-driver support to the notifier api
* Copy eventlet_backdoor into common from nova
* Fix errors reported by pyflakes
* Make receiver spawning in impl_zmq more robust/clean
* Reduce test_zmq's reponse timeout
* Remove bogus conf argument from create_consumer()
* Install a qualified except hook
* Remove code to clear basicConfig root log handlers
* Add import_opt() method to ConfigOpts
* Copy LoopingCall from nova for service.py
* Use function registration for policy checks
* fix the qpid_heartbeat option so that it's effective
* don't throw exceptions if %(color)s tag is used
* Remove unused imports
* Remove unnecessary register_opts from test_zmq
* Modifies _is_opt_registered fcn to check for duplicate opts
* Enable fanout_cast and fanout_cast_to_server to provide topic
* Make test_zmq bind/send to 127.0.0.1
* Use BaseTestCase for all tests which override config
* Add missing convert_instances arg
* Track to_primitive() depth after iteritems()
* Update iteritems test case to actually test iteritems
* fix bug lp:1019348,update openstack-common to support pep8 1.3
* Add test-options from Nova /w pyzmq
* cfg: allow empty config values
* Don't switch to list_notifier unless necessary
* Use strtime() in to_primitive() for datetime objs
* Add additional usage info on rpc_zmq_host flag
* Restore register_opts on impl_zmq module load
* Fix typo made in 372d11e990
* Exclude .egg files from pep8 checks
* Fix import order of gettextutils in amqp.py
* Add more rpc version docs
* Add SKIP_GENERATE_AUTHORS option to setup.py
* Add SKIP_WRITE_GIT_CHANGELOG option to setup.py
* Fix missing gettextutils in several modules
* Fix line length for pep8 compliance after cloning into other projects
* Rework the version consumer functionality
* Fix Zmq so it doesn't rely on nova flags
* Fix up pre-versioning based on testing in glance
* Add a new module for use in consuming versioninfo
* Minor pep8 cleanup in rpc
* pep8 cleanup in the plugin code
* Add common plugin framework
* cfg: Fix typo in documentation
* Move get_context_from_function_and_args() to context.py
* Switch common files to using jsonutils
* Fix up openstack-common build
* Fix import order
* Add update.sh to avoid import conflicts
* Enable sitepackages in tox
* Fix mailmap
* Fix missing RPCException from raise
* Update strings like 'openstack.common.notifier.driver'
* Pass in stream as positional argument to StreamHandler
* Split read_versioninfo into a method
* Add 'filedecoder' method to the jsonutils wrapper module
* Update tox.ini
* Add common logging and notification
* Add support for tag based versioning
* Add missing gettextutils imports
* Avoid erroneous "Unsupported RPC Version" message if method is missing
* Added dictify() and uuids to the common request context
* Added a base class for unit tests
* Call exception on the logger, not the logging module
* Adds HACKING.rst to the tarball
* Skip argparse when injecting requirements
* Fix import usage in AMQP for rpc.common
* Improve exception from importutils.import_class()
* Update common code to support pep 1.3. bug 1014216
* add import_object_ns function
* Add autodoc generation to the build_sphinx command
* Fix nova.rpc references in comments
* rpc: Update rpc_backend handling
* Add missing ack to impl_qpid
* add more realistic unit tests for importutils
* Get update.py to be able to copy rpc
* Add impl_zmq to rpc
* Fix utcnow_ts to return UTC timestamp
* Use 'is not None' instead of '!= None'
* Make jsonutils.dumps more general
* Handle xmlrpclib.DateTime types when serializing to JSON
* Fix RPC tests to not use assertIn
* Fix a pep8 error
* Move testing dependencies to test-requires
* Adds support for bol and eol spaces to ini files
* Add support to include config aliases
* Add rpc to openstack-common
* Revert "Add a load function wrapper to jsonutils"
* Add gettext support
* Add nova time util functions to timeutils
* Replace datetime.utcnow with timeutils.utcnow
* Create testutils with skip decorators
* Common-ize policies
* Fix pep8 errors
* Add a load function wrapper to jsonutils
* cfg: add a global CONF object
* cfg: add generators for iterating over all options
* cfg: move constructor args to __call__() args
* Added support for proper bare URLs
* Backslash continuation removal (common folsom-1)
* Run pep8 on tests
* Create openstack.common.jsonutils
* Alphabetize imports in openstack/common/cfg.py
* Remove unused imports
* Tests to cover various mailmap formats
* cfg: make reset() clear defaults and overrides
* cfg: automatically create option groups
* cfg: allow options to be marked as required
* cfg: use a list comprehension instead of map()
* Encapsulate common sdist actions into a cmdclass
* Truly handle mailmap entries for all combinations
* Remove common.exception from common.importutils
* Add save_and_reraise_exception()
* New ConfigOpts.find_file() for locating conf files
* Handle authors existed before VCS was around
* Support for directory source of config files
* Update exception from importutils.import_class()
* Fix ordering in HACKING.rst
* Provide file extension when when looking for files
* Some refactoring of the cfg cache
* Add caching to openstack.common.cfg
* Add AUTHORS generation function
* Change behavior in utils.import_object()
* Move auth_str_equal() to a new authutils module
* Create openstack.common.timeutils
* Typofix, OptionGroup should be OptGroup
* Create openstack/common/__init__.py
* Use absolute import for iniparser
* Add generic PasteDeploy app and filter factories
* Make 'yes' also a true boolean
* Added a universal style-guide for all OS projects
* Finish implementing MultiStrOpt
* Avoid leaking secrets into config logging
* Add auth_str_equal() to common utils
* Add greenthread local storage model from nova
* Fix bug 954488
* Import cfg module directly if not in path
* fix restructuredtext formatting in docstrings
* Add ConfigOpts.print_help()
* Promote more complete support for ISO 8601 time
* cfg: fix a small comment typo
* cfg: unneeded multiple inheritance
* PEP8 cleanup (openstack-common)
* Backslash continuations (misc.)
* Disable ConfigParser interpolation (lp#930270)
* Add git changelog method
* Use default values for requirements parsing
* Add git vcsversion method
* fix namespace declaration
* Updated tox config for multi-python testing
* Split functions to avoid eventlet import
* Implements blueprint separate-nova-volumeapi
* Makes common/cfg.py raise AttributeError
* PEP8 type comparison cleanup
* Add the Mapping interface to cfg.ConfigOpts
* Re-factor update.py to avoid breaking tests
* Add a script to copy code into other projects
* Pull openstack.nose_plugin from pypi
* Add cfg test case for recursive substitution
* Add support to cfg for disabling interspersed args
* Get cfg test cases to 100%
* Add cfg test case for exceptions' __str__ methods
* Fix some cfg test case naming conflicts
* Add new cfg module
* Updated README with instructions
* Removed run_tests.sh in favor of tox
* Added .gitreview file
* Added tissue support back in
* make sure a '_' function is availible for nose
* Use nose and tox
* Added pip-requires and tox.ini to run tests
* add some server tests
* moar utils tests
* import should not return an instance of the class
* add utils test
* use isinstance and types.*
* add context middleware tests
* add more coverage to test_extensions
* add exceptions test coverage
* add context 'tests'
* add more config tests
* make fix_path a real function so it can be mock'd
* remove unused imports
* mox isn't used anywhere, but I will be using mock
* Only list requirements in the setup.py like it should be
* Add default nosetests config
* Rename setup_extensions_test_app so that nosetests ignores it
* ignore cover's html directory
* don't tag rev
* add __init__.py so tests run, remove bin and skeleton from pep8
* remove bzr requirement
* remove the version requirement on mox
* put requires in setup.py so when package gets included as a requirement, the requirements follow along
* merge in upstream
* Edited README via GitHub
* port execute and utcnow functions from nova
* update setup.py to only have common requires
* remove paste templates from common
* Add readme to make github happy and the manifest so the templates get installed
* add Paste* requirements
* fake out the options needed and allout output to specific dir
* add the openstack paster command to spit out the template
* use the project variable in the README
* update the setup.py template
* make version.py a template
* pull parse_mailmap str_dict_replace from nova
* add openstack templates
* use package.upper
* make the skeleton project a template
* add paste directory
* make naming consistant
* reog from import merge
* add the license header
* initial commit
* Rajaram/Vinkesh|increased tests for Request and Response serializers
* Rajaram/Vinkesh|added config test file from glance
* Rajaram/Vinkesh|Default xmlns for extension serialization can be overriden, added default factory for extension middleware
* Rajaram/Vinkesh | Copied tests for wsgi from nova. Added default content/accept types in Request which can be overridden by projects. Copied tests for XML serialization of Extension Controller's action from nova
* Rajaram/Vinkesh | Fixed the extension bug where custom collection actions' routes in resource extension were not getting registered
* Vinkesh/Rajaram|Added nova's extension framework into common and tests for it
* Rajaram/Vinkesh|Added nova's serializaiton classes into common
* Vinkesh/Rajaram|Added scripts to run tests from nova
* Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback
* Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback
* Rajaram/Vinkesh| restructured wsgi.resource to allow inheriting classes to override serialization, deserialization and action execution
* Rajaram/Vinkesh| restructured wsgi.resource to allow inheriting classes to override serialization, deserialization and action execution
* Rajaram/Vinkesh | Removed references to Glance in code
* Rajaram/Vinkesh | Removed references to Glance in code
* Vinkesh/Rajaram|fixed setup.py and made openstack a module with a __init__.py file
* Vinkesh/Rajaram|fixed setup.py and made openstack a module with a __init__.py file
* Adding syslog support
* Adding syslog support
* Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary
* Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary
* Add setup.py/cfg and README
* Initial skeleton project
* Initial skeleton project
