Adds fake quota support to Melange. Since Nova is incapable of
supporting hierarchical quotas currently, and Melange has no interest in
Quotas, we've implemented a hack that allows Nova to pass down the
default quota flag to interface/ip allocation. If allocating IPs on
private networks for a tenant, Melange will enforce the limit and raise,
emulating a quota.

This patch has a known race condition; since melange was written in a
way that completely hides sqlalchemy, there is no trivial way to enforce
transactions, meaning that there's a small window in which Melange can
check the IP address count, determine that it's valid, then attempt to
allocate them, effectively running over the established quotas. However,
as this is more of a preview than long-term solution, we deem this
acceptable at this time.

Change-Id: Id7a78f1669d512411e010574bfc53fae8e13b1c6
Merge pull request #11 from Cerberus98/master

Adds fake quota support to Melange. Since Nova is incapable of...
Revert "Adds fake quota support to Melange. Since Nova is incapable of"

This reverts commit d973a3241605fc0258aa6bfd913b12b33d0a87be.
Merge pull request #12 from Cerberus98/master

Reverts the fake quota support patch
Re-adds the quota support, this time with a configurable column
"max_allocation"

Nova is incapable of supporting hierarchical quotas currently, and Melange
has no interest in Quotas, we've implemented a hack that allows Nova to pass down the
default quota flag to interface/ip allocation. If allocating IPs on
private networks for a tenant, Melange will enforce the limit and raise,
emulating a quota.

This patch has a known race condition; since melange was written in a
way that completely hides sqlalchemy, there is no trivial way to enforce
transactions, meaning that there's a small window in which Melange can
check the IP address count, determine that it's valid, then attempt to
allocate them, effectively running over the established quotas. However,
as this is more of a preview than long-term solution, we deem this
acceptable at this time.

Change-Id: I7a9b1f371d00e56e454b1a61b9eeecd516f10468
Merge pull request #13 from Cerberus98/master

Re-adds the quota support, this time with a configurable column "max_allocation" 
Adds the migration for max allocations

Change-Id: I7f89db4acfe0dcda95e0c4877afbb5fc114c54ce
Support max_allocation to be overrided from the api
Adds quota response codes to be returned from melange

Change-Id: If79a1dc0c26824c8fca362904860470693101456
Add interface listing

* Melange can now list/page through all interfaces
* filter by device_id, tenant_id, or network_id
Merge pull request #14 from jkoelker/list_interfaces

Add interface listing
Delete the interface if ip allocation is over quota
Merge pull request #15 from jkoelker/delete_interface

Delete the interface if ip allocation is over quota
Expose /ipam/interfaces in 1.0 api
Merge pull request #16 from jkoelker/i_is_stupid

Expose /ipam/interfaces in 1.0 api
Fix melange logging.

The debug and verbose flags wil now show melange log info
without extraneous spew from other modules.

Also, setting the default_log_levels config variable will control
the logging from other packages, if needed.

Also, setting a path to a log_config file in melange's config
should now work, overriding all other logging configs, but it is
not needed unless you are doing something complex with the log system.

This is a bit hacky, I would rather just use openstack.common.log
module, but given the age of the common code in melange, getting it
to use the current Oslo code woud be... painful (I tried), and is
probably not worth it, given Melange's obsolecence.
Merge pull request #17 from rackspace/logging_fixup

Fix melange logging.
Pin to sqlalchmy <=0.7.9

Sqlalchemy-migrate is incompatible with sqlalchemy 0.8 beta
pin to 0.7 series
Merge pull request #18 from jkoelker/fix_sqlalchemy

Pin to sqlalchmy <=0.7.9