Tests added for glance/cmd/cache_cleaner.py

Integration test test_cache_cleaner_main added to cover
chain of calls between glance/cmd/cache_cleaner.py and glance/image_cache
module.
Unit test test_cache_cleaner_main_runtime_exception_handling added to
cover exception handling for main() method of cache_cleaner.py

Change-Id: Ic05f35dd3f0a93d4331ccb5e470cdb71d9eab605
Added unit tests for api/middleware/cache_manage.py

blueprint glance-cache+unittests
Change-Id: I4382bb37795d42f43e3ddf9f95f13bb76400e1bb
Set upload_image policy to control data upload

There was no policy to control data upload.
Up until today, the add_image policy was a all or nothing, from metadata
to the actual data. Now, with the combination of add_image and upload_image
an administrator will have finer control over the whole chain.

Change-Id: I1a7966ffb5c63dd8239a54fe2963b031d9fe1f9a
Closes-bug: #1254521
RBD add() now returns correct size if given zero

If the RBD store add() is provided with image_size of zero, it
will calculate based on data provided and return the new size.

Change-Id: I06375bcfef7808905b466432e5ca100c942297eb
Closes-bug: 1256044
Add documentation for some API parameters

Add documentation for some parameters which can
be present in glance-api.conf:

* use_user_token
* admin_user
* admin_password
* admin_tenant_name
* auth_url
* auth_region
* auth_strategy

Fix for bug 1256952.

DocImpact

Change-Id: Ia5b731cabaec961f3a4226d30abd3bca9bd87651
Glance image-list failed when image number exceed DEFAULT_PAGE_SIZE

The root cause of the problem is that DB2 does not allow
an empty string ('') for datetime field. So we set the
default value of datetime as None.

Fixes bug 1245947

Change-Id: Ie372efe70a068024298fbde4574e33e565cc6c9a
Merge "Set upload_image policy to control data upload"
Merge "Add documentation for some API parameters"
Introduce Task Info Table

- move 'input', 'message' and 'result' columns to table 'task_info'
- introduce migration script for the above db changes.
- appropriate tests are included

Co-authored-by: Nikhil Komawar <nikhil.komawar@rackspace.com>

partly implements bp async-glance-workers

Change-Id: I9867d609f4729572b72a44d1f05e353acf6c98d9
Remove TestRegistryDB dependency on TestRegistryAPI

TestRegistryDB does not set up the sqlalchemy db it uses with the db models.
These tests only pass when run in conjunction with TestRegistryAPI because that
test case does set up the db. TestRegistryDB should set up the DB as it needs
to.

Fixes bug 1247629

Change-Id: Ib0629634e567e1fb9b98dac50025f5309cd4efec
Move is_image_sharable to registry api

When using the membership kwarg in is_image_sharable with the sqlalchemy driver,
an AttributeError may be raised since the 'member' variable is not always
defined. This function was copied throughout the db drivers and untested.

This patch adds tests and moves the function to the v1 registry api, where it
was the only place being used. Tests for this function in test_context were
removed as it does not make sense to test this function there and allowed for
the removal of the membership kwarg.

Fixes bug 1247481

Change-Id: Ia77bc0a144831ddcf7e180afdb0842754ff3fcf2
Makes tasks owner not nullable in models.py

The tasks table scheme in migration for adding tasks to Glance DB has a
flag for disabling from setting a NULL owner.

In order to keep the behavior consistent across the glance codebase,
this patch adds owner as not nullable in the models.py.

Fixes bug: 1257949

Change-Id: Id9fff4277f427b7d83d80b5a0a8029968f70e0df
Unittests added for glance/cmd/cache_manage.py

Related to blueprint glance-cmd+unittests

Unittests for all methods, that manage cache added:
* list_cached
* list_queued
* queue_image
* delete_cached_image
* delete_all_cached_images
* delete_queued_image
* delete_all_queued_images

Unittests for several internal methods added:
catch_error; env; create_options; parse_options; lookup_command

Change-Id: Id07bbecdc9877268a514e3a594699364dcc4618f
Forbidden update message diffs images/tasks/member

On an forbidden update, the message returned to the user
is not tied to the type of object modified by the operation.
For example: a forbidden image member update will return
`You are not permitted to modify 'status' on this image.`
instead of image_member.

This patch fixes the issue for images, image members and tasks.

Change-Id: Ie9774807f0190a517a619aeb56c1398741ac4407
Closes-Bug: #1250228
Added error logging for http store

http store logs an error message when the remote location
fails to return the image, returns invalid status or
if it exceeds maximum redirects

Change-Id: I43c74395bc4632a97761ae4c11474bfeb823c85a
Closes-Bug: #1257234
Merge "Makes tasks owner not nullable in models.py"
remove hardcode of usage

Refine the definition of USAGE in control.py

Change-Id: I0f515565455e867384ae179a8eca8e35cb0ff3ad
Refactor StorageQuotaFull test cases in test_quota

There were two test cases in test_quota that shared the same name, but
did almost the same thing. After a bit of digging, it looked like most
of the test cases did the almost same thing, so I refactored the common
bits and fixed the test case name duplication.

Partial-Bug: #1259036
Change-Id: I828eea570d358d98520c7201454c03ba174a35ad
Enforce copy_from policy during image-update

The enforcement of the copy_from policy is missing during update allowing
every user to do this action no matter what is defined in the policy.json

Change-Id: Iecf11bdf220b37d9ecbb6fc686214d14acf1d3dd
Closes-bug: #1259241
Merge "RBD add() now returns correct size if given zero"