Merge "Fix typos"
This commit is contained in:
commit
a693e066b3
@ -8,7 +8,7 @@ This exercise failed without ever having proper interest or resources to fix
|
|||||||
the underlying issues.
|
the underlying issues.
|
||||||
|
|
||||||
None of the models deploying Glance as bare wsgi app under some httpd are
|
None of the models deploying Glance as bare wsgi app under some httpd are
|
||||||
currently adviced.
|
currently advised.
|
||||||
|
|
||||||
Since the Pike release Glance has packaged a wsgi script entrypoint that
|
Since the Pike release Glance has packaged a wsgi script entrypoint that
|
||||||
enables you to run it with a real web server like Apache HTTPD or nginx. To
|
enables you to run it with a real web server like Apache HTTPD or nginx. To
|
||||||
|
@ -855,7 +855,7 @@ documentation for more information.
|
|||||||
``cinder_store_auth_address`` are set.
|
``cinder_store_auth_address`` are set.
|
||||||
These options are useful to put image volumes into the internal service
|
These options are useful to put image volumes into the internal service
|
||||||
project in order to hide the volume from users, and to make the image
|
project in order to hide the volume from users, and to make the image
|
||||||
sharable among projects.
|
shareable among projects.
|
||||||
|
|
||||||
``cinder_store_password=PASSWORD``
|
``cinder_store_password=PASSWORD``
|
||||||
Optional. Default: ``None``
|
Optional. Default: ``None``
|
||||||
|
@ -3766,7 +3766,7 @@ T
|
|||||||
|
|
||||||
token
|
token
|
||||||
|
|
||||||
An alpha-numeric string of text used to access OpenStack APIs
|
An alphanumeric string of text used to access OpenStack APIs
|
||||||
and resources.
|
and resources.
|
||||||
|
|
||||||
token services
|
token services
|
||||||
|
@ -29,7 +29,7 @@ context_opts = [
|
|||||||
help=_("""
|
help=_("""
|
||||||
Allow limited access to unauthenticated users.
|
Allow limited access to unauthenticated users.
|
||||||
|
|
||||||
Assign a boolean to determine API access for unathenticated
|
Assign a boolean to determine API access for unauthenticated
|
||||||
users. When set to False, the API cannot be accessed by
|
users. When set to False, the API cannot be accessed by
|
||||||
unauthenticated users. When set to True, unauthenticated users can
|
unauthenticated users. When set to True, unauthenticated users can
|
||||||
access the API with read-only privileges. This however only applies
|
access the API with read-only privileges. This however only applies
|
||||||
|
@ -51,7 +51,7 @@ class Enforcer(policy.Enforcer):
|
|||||||
deprecation warnings.
|
deprecation warnings.
|
||||||
"""
|
"""
|
||||||
super(Enforcer, self).__init__(CONF, use_conf=True, overwrite=False)
|
super(Enforcer, self).__init__(CONF, use_conf=True, overwrite=False)
|
||||||
# NOTE(gmann): Explictly disable the warnings for policies
|
# NOTE(gmann): Explicitly disable the warnings for policies
|
||||||
# changing their default check_str. For new RBAC, all the policy
|
# changing their default check_str. For new RBAC, all the policy
|
||||||
# defaults have been changed and warning for each policy started
|
# defaults have been changed and warning for each policy started
|
||||||
# filling the logs limit for various tool.
|
# filling the logs limit for various tool.
|
||||||
|
@ -334,7 +334,7 @@ class ImageMembersController(object):
|
|||||||
member_repo=member_repo)
|
member_repo=member_repo)
|
||||||
|
|
||||||
# NOTE(abhishekk): This will verify whether user has permission
|
# NOTE(abhishekk): This will verify whether user has permission
|
||||||
# to delete iamge member or not.
|
# to delete image member or not.
|
||||||
api_policy.MemberAPIPolicy(
|
api_policy.MemberAPIPolicy(
|
||||||
req.context,
|
req.context,
|
||||||
image,
|
image,
|
||||||
|
@ -553,7 +553,7 @@ class _ImportToStore(task.Task):
|
|||||||
"""
|
"""
|
||||||
# NOTE(flaper87): Let's dance... and fall
|
# NOTE(flaper87): Let's dance... and fall
|
||||||
#
|
#
|
||||||
# Unfortunatelly, because of the way our domain layers work and
|
# Unfortunately, because of the way our domain layers work and
|
||||||
# the checks done in the FS store, we can't simply rename the file
|
# the checks done in the FS store, we can't simply rename the file
|
||||||
# and set the location. To do that, we'd have to duplicate the logic
|
# and set the location. To do that, we'd have to duplicate the logic
|
||||||
# of every and each of the domain factories (quota, location, etc)
|
# of every and each of the domain factories (quota, location, etc)
|
||||||
@ -607,7 +607,7 @@ class _ImportToStore(task.Task):
|
|||||||
set_active=self.set_active,
|
set_active=self.set_active,
|
||||||
callback=self._status_callback)
|
callback=self._status_callback)
|
||||||
# NOTE(yebinama): set_image_data catches Exception and raises from
|
# NOTE(yebinama): set_image_data catches Exception and raises from
|
||||||
# them. Can't be more specific on exceptions catched.
|
# them. Can't be more specific on exceptions caught.
|
||||||
except Exception:
|
except Exception:
|
||||||
if self.all_stores_must_succeed:
|
if self.all_stores_must_succeed:
|
||||||
raise
|
raise
|
||||||
|
@ -289,7 +289,7 @@ class _ImportToStore(task.Task):
|
|||||||
|
|
||||||
# NOTE(flaper87): Let's dance... and fall
|
# NOTE(flaper87): Let's dance... and fall
|
||||||
#
|
#
|
||||||
# Unfortunatelly, because of the way our domain layers work and
|
# Unfortunately, because of the way our domain layers work and
|
||||||
# the checks done in the FS store, we can't simply rename the file
|
# the checks done in the FS store, we can't simply rename the file
|
||||||
# and set the location. To do that, we'd have to duplicate the logic
|
# and set the location. To do that, we'd have to duplicate the logic
|
||||||
# of every and each of the domain factories (quota, location, etc)
|
# of every and each of the domain factories (quota, location, etc)
|
||||||
|
@ -22,7 +22,7 @@ This is meant to be run as a periodic task from cron.
|
|||||||
|
|
||||||
If something goes wrong while we're caching an image (for example the fetch
|
If something goes wrong while we're caching an image (for example the fetch
|
||||||
times out, or an exception is raised), we create an 'invalid' entry. These
|
times out, or an exception is raised), we create an 'invalid' entry. These
|
||||||
entires are left around for debugging purposes. However, after some period of
|
entries are left around for debugging purposes. However, after some period of
|
||||||
time, we want to clean these up.
|
time, we want to clean these up.
|
||||||
|
|
||||||
Also, if an incomplete image hangs around past the image_cache_stall_time
|
Also, if an incomplete image hangs around past the image_cache_stall_time
|
||||||
|
@ -37,7 +37,7 @@ paste_deploy_opts = [
|
|||||||
Deployment flavor to use in the server application pipeline.
|
Deployment flavor to use in the server application pipeline.
|
||||||
|
|
||||||
Provide a string value representing the appropriate deployment
|
Provide a string value representing the appropriate deployment
|
||||||
flavor used in the server application pipleline. This is typically
|
flavor used in the server application pipeline. This is typically
|
||||||
the partial name of a pipeline in the paste configuration file with
|
the partial name of a pipeline in the paste configuration file with
|
||||||
the service name removed.
|
the service name removed.
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ Related Options:
|
|||||||
Name of the paste configuration file.
|
Name of the paste configuration file.
|
||||||
|
|
||||||
Provide a string value representing the name of the paste
|
Provide a string value representing the name of the paste
|
||||||
configuration file to use for configuring piplelines for
|
configuration file to use for configuring pipelines for
|
||||||
server application deployments.
|
server application deployments.
|
||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
@ -350,7 +350,7 @@ Related options:
|
|||||||
* location_strategy
|
* location_strategy
|
||||||
|
|
||||||
""")),
|
""")),
|
||||||
# NOTE(flaper87): The policy.yaml file should be updated and the locaiton
|
# NOTE(flaper87): The policy.yaml file should be updated and the location
|
||||||
# related rules set to admin only once this option is finally removed.
|
# related rules set to admin only once this option is finally removed.
|
||||||
# NOTE(rosmaita): Unfortunately, this option is used to gate some code
|
# NOTE(rosmaita): Unfortunately, this option is used to gate some code
|
||||||
# paths; if the location related policies are set admin-only, then no
|
# paths; if the location related policies are set admin-only, then no
|
||||||
|
@ -241,7 +241,7 @@ class QcowInspector(FileInspector):
|
|||||||
|
|
||||||
|
|
||||||
# The VHD (or VPC as QEMU calls it) format consists of a big-endian
|
# The VHD (or VPC as QEMU calls it) format consists of a big-endian
|
||||||
# 512-byte "footer" at the beginning fo the file with various
|
# 512-byte "footer" at the beginning of the file with various
|
||||||
# information, most of which does not matter to us:
|
# information, most of which does not matter to us:
|
||||||
#
|
#
|
||||||
# Dec Hex Name
|
# Dec Hex Name
|
||||||
|
@ -133,7 +133,7 @@ def get_image_data_iter(uri):
|
|||||||
# we are returning it as is.
|
# we are returning it as is.
|
||||||
# The file descriptor will be eventually cleaned up by the garbage
|
# The file descriptor will be eventually cleaned up by the garbage
|
||||||
# collector once its ref-count is dropped to 0. That is, when there
|
# collector once its ref-count is dropped to 0. That is, when there
|
||||||
# wont be any references pointing to this file.
|
# won't be any references pointing to this file.
|
||||||
#
|
#
|
||||||
# We're not using StringIO or other tools to avoid reading everything
|
# We're not using StringIO or other tools to avoid reading everything
|
||||||
# into memory. Some images may be quite heavy.
|
# into memory. Some images may be quite heavy.
|
||||||
|
@ -65,7 +65,7 @@ File containing the swift account(s) configurations.
|
|||||||
Include a string value representing the path to a configuration
|
Include a string value representing the path to a configuration
|
||||||
file that has references for each of the configured Swift
|
file that has references for each of the configured Swift
|
||||||
account(s)/backing stores. By default, no file path is specified
|
account(s)/backing stores. By default, no file path is specified
|
||||||
and customized Swift referencing is diabled. Configuring this option
|
and customized Swift referencing is disabled. Configuring this option
|
||||||
is highly recommended while using Swift storage backend for image
|
is highly recommended while using Swift storage backend for image
|
||||||
storage as it helps avoid storage of credentials in the
|
storage as it helps avoid storage of credentials in the
|
||||||
database.
|
database.
|
||||||
|
@ -1154,7 +1154,7 @@ class Request(webob.Request):
|
|||||||
if not self.accept_language:
|
if not self.accept_language:
|
||||||
return None
|
return None
|
||||||
langs = i18n.get_available_languages('glance')
|
langs = i18n.get_available_languages('glance')
|
||||||
# NOTE(rosmaita): give the webob lookup() function a sentinal value
|
# NOTE(rosmaita): give the webob lookup() function a sentinel value
|
||||||
# for default so we can preserve the behavior of this function as
|
# for default so we can preserve the behavior of this function as
|
||||||
# indicated by the current unit tests. See Launchpad bug #1765748.
|
# indicated by the current unit tests. See Launchpad bug #1765748.
|
||||||
best_match = self.accept_language.lookup(langs, default='fake_LANG')
|
best_match = self.accept_language.lookup(langs, default='fake_LANG')
|
||||||
|
@ -35,7 +35,7 @@ def get_alembic_config(engine=None):
|
|||||||
# because that uses ConfigParser.set, which (by design) uses
|
# because that uses ConfigParser.set, which (by design) uses
|
||||||
# *python* interpolation to write the string out ... where "%" is
|
# *python* interpolation to write the string out ... where "%" is
|
||||||
# the special python interpolation character! Avoid this
|
# the special python interpolation character! Avoid this
|
||||||
# mis-match by quoting all %'s for the set below.
|
# mismatch by quoting all %'s for the set below.
|
||||||
quoted_engine_url = str(engine.url).replace('%', '%%')
|
quoted_engine_url = str(engine.url).replace('%', '%%')
|
||||||
config.set_main_option('sqlalchemy.url', quoted_engine_url)
|
config.set_main_option('sqlalchemy.url', quoted_engine_url)
|
||||||
return config
|
return config
|
||||||
|
@ -259,7 +259,7 @@ class Image(object):
|
|||||||
if self.status == 'active':
|
if self.status == 'active':
|
||||||
self.status = 'deactivated'
|
self.status = 'deactivated'
|
||||||
elif self.status == 'deactivated':
|
elif self.status == 'deactivated':
|
||||||
# Noop if already deactive
|
# Noop if already deactivate
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
LOG.debug("Not allowed to deactivate image in status '%s'",
|
LOG.debug("Not allowed to deactivate image in status '%s'",
|
||||||
|
@ -20,7 +20,7 @@ that has atimes set.
|
|||||||
Assumptions
|
Assumptions
|
||||||
===========
|
===========
|
||||||
|
|
||||||
1. Cache data directory exists on a filesytem that updates atime on
|
1. Cache data directory exists on a filesystem that updates atime on
|
||||||
reads ('noatime' should NOT be set)
|
reads ('noatime' should NOT be set)
|
||||||
|
|
||||||
2. Cache data directory exists on a filesystem that supports xattrs.
|
2. Cache data directory exists on a filesystem that supports xattrs.
|
||||||
|
@ -55,7 +55,7 @@ PROJECT_READER_OR_PUBLIC_NAMESPACE = (
|
|||||||
# These check strings do not support tenancy with the `admin` role. This means
|
# These check strings do not support tenancy with the `admin` role. This means
|
||||||
# anyone with the `admin` role on any project can execute a policy, which is
|
# anyone with the `admin` role on any project can execute a policy, which is
|
||||||
# typical in OpenStack services. Eventually, these check strings will be
|
# typical in OpenStack services. Eventually, these check strings will be
|
||||||
# superceded by check strings that implement scope checking and system-scope
|
# superseded by check strings that implement scope checking and system-scope
|
||||||
# for applicable APIs (e.g., making an image public). But, we have a lot of
|
# for applicable APIs (e.g., making an image public). But, we have a lot of
|
||||||
# cleanup to do in different parts of glance to sweep all the authorization
|
# cleanup to do in different parts of glance to sweep all the authorization
|
||||||
# code into a single layer before we can safely consume system-scope and
|
# code into a single layer before we can safely consume system-scope and
|
||||||
|
@ -797,7 +797,7 @@ class FunctionalTest(test_utils.BaseTestCase):
|
|||||||
self.api_protocol = 'http'
|
self.api_protocol = 'http'
|
||||||
self.api_port, api_sock = test_utils.get_unused_port_and_socket()
|
self.api_port, api_sock = test_utils.get_unused_port_and_socket()
|
||||||
# NOTE: Scrubber is enabled by default for the functional tests.
|
# NOTE: Scrubber is enabled by default for the functional tests.
|
||||||
# Please disbale it by explicitly setting 'self.include_scrubber' to
|
# Please disable it by explicitly setting 'self.include_scrubber' to
|
||||||
# False in the test SetUps that do not require Scrubber to run.
|
# False in the test SetUps that do not require Scrubber to run.
|
||||||
self.include_scrubber = True
|
self.include_scrubber = True
|
||||||
|
|
||||||
@ -1152,7 +1152,7 @@ class MultipleBackendFunctionalTest(test_utils.BaseTestCase):
|
|||||||
self.api_protocol = 'http'
|
self.api_protocol = 'http'
|
||||||
self.api_port, api_sock = test_utils.get_unused_port_and_socket()
|
self.api_port, api_sock = test_utils.get_unused_port_and_socket()
|
||||||
# NOTE: Scrubber is enabled by default for the functional tests.
|
# NOTE: Scrubber is enabled by default for the functional tests.
|
||||||
# Please disbale it by explicitly setting 'self.include_scrubber' to
|
# Please disable it by explicitly setting 'self.include_scrubber' to
|
||||||
# False in the test SetUps that do not require Scrubber to run.
|
# False in the test SetUps that do not require Scrubber to run.
|
||||||
self.include_scrubber = True
|
self.include_scrubber = True
|
||||||
|
|
||||||
|
@ -195,5 +195,5 @@ class TestOcataMigrate01_EmptyDBMySQL(
|
|||||||
test_fixtures.OpportunisticDBTestMixin,
|
test_fixtures.OpportunisticDBTestMixin,
|
||||||
test_utils.BaseTestCase,
|
test_utils.BaseTestCase,
|
||||||
):
|
):
|
||||||
"""This test runs the Ocata data migrations on an empty databse."""
|
"""This test runs the Ocata data migrations on an empty database."""
|
||||||
FIXTURE = test_fixtures.MySQLOpportunisticFixture
|
FIXTURE = test_fixtures.MySQLOpportunisticFixture
|
||||||
|
@ -274,7 +274,7 @@ class TestImageAtomicOps(base.TestDriver,
|
|||||||
"""Create and delete properties on two images, then set on one.
|
"""Create and delete properties on two images, then set on one.
|
||||||
|
|
||||||
This tests that the resurrect-from-deleted mode of the method only
|
This tests that the resurrect-from-deleted mode of the method only
|
||||||
matchs deleted properties from our image.
|
matches deleted properties from our image.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
images = self.db_api.image_get_all(self.adm_context)
|
images = self.db_api.image_get_all(self.adm_context)
|
||||||
|
@ -1079,7 +1079,7 @@ class TestImages(functional.FunctionalTest):
|
|||||||
self.assertEqual(1, len(images))
|
self.assertEqual(1, len(images))
|
||||||
self.assertEqual(image_id, images[0]['id'])
|
self.assertEqual(image_id, images[0]['id'])
|
||||||
|
|
||||||
# Create another image wiht hidden true
|
# Create another image with hidden true
|
||||||
path = self._url('/v2/images')
|
path = self._url('/v2/images')
|
||||||
headers = self._headers({'content-type': 'application/json'})
|
headers = self._headers({'content-type': 'application/json'})
|
||||||
data = jsonutils.dumps({'name': 'image-2', 'type': 'kernel',
|
data = jsonutils.dumps({'name': 'image-2', 'type': 'kernel',
|
||||||
|
@ -27,7 +27,7 @@ class HackingTestCase(utils.BaseTestCase):
|
|||||||
|
|
||||||
def test_assert_equal_type(self):
|
def test_assert_equal_type(self):
|
||||||
self.assertEqual(1, len(list(checks.assert_equal_type(
|
self.assertEqual(1, len(list(checks.assert_equal_type(
|
||||||
"self.assertEqual(type(als['QuicAssist']), list)"))))
|
"self.assertEqual(type(also['QuicAssist']), list)"))))
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
0, len(list(checks.assert_equal_type("self.assertTrue()"))))
|
0, len(list(checks.assert_equal_type("self.assertTrue()"))))
|
||||||
|
@ -161,7 +161,7 @@ class TestGlanceApiCmd(test_utils.BaseTestCase):
|
|||||||
def test_fail_with_unknown_exception(self):
|
def test_fail_with_unknown_exception(self):
|
||||||
with mock.patch('sys.stderr.write') as mock_stderr:
|
with mock.patch('sys.stderr.write') as mock_stderr:
|
||||||
with mock.patch('sys.exit') as mock_exit:
|
with mock.patch('sys.exit') as mock_exit:
|
||||||
exc_msg = 'A Crazy Unkown Error.'
|
exc_msg = 'A Crazy Unknown Error.'
|
||||||
exc = CrayCray(exc_msg)
|
exc = CrayCray(exc_msg)
|
||||||
glance.cmd.api.fail(exc)
|
glance.cmd.api.fail(exc)
|
||||||
mock_stderr.assert_called_once_with('ERROR: %s\n' % exc_msg)
|
mock_stderr.assert_called_once_with('ERROR: %s\n' % exc_msg)
|
||||||
|
@ -313,8 +313,8 @@ class ImageCacheTestCase(object):
|
|||||||
"""
|
"""
|
||||||
Test to see if open_for_write works in a failure case for each driver
|
Test to see if open_for_write works in a failure case for each driver
|
||||||
This case is where an exception is raised while the file is being
|
This case is where an exception is raised while the file is being
|
||||||
written. The image is partially filled in cache and filling wont resume
|
written. The image is partially filled in cache and filling won't
|
||||||
so verify the image is moved to invalid/ directory
|
resume so verify the image is moved to invalid/ directory
|
||||||
"""
|
"""
|
||||||
# test a case where an exception is raised while the file is open
|
# test a case where an exception is raised while the file is open
|
||||||
image_id = '1'
|
image_id = '1'
|
||||||
@ -390,7 +390,7 @@ class ImageCacheTestCase(object):
|
|||||||
"""
|
"""
|
||||||
Test to see if the caching iterator interacts properly with the driver
|
Test to see if the caching iterator interacts properly with the driver
|
||||||
in a case where the iterator is only partially consumed. In this case
|
in a case where the iterator is only partially consumed. In this case
|
||||||
the image is only partially filled in cache and filling wont resume.
|
the image is only partially filled in cache and filling won't resume.
|
||||||
When the iterator goes out of scope the driver should have closed the
|
When the iterator goes out of scope the driver should have closed the
|
||||||
image and moved it from incomplete/ to invalid/
|
image and moved it from incomplete/ to invalid/
|
||||||
"""
|
"""
|
||||||
|
@ -3670,7 +3670,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
||||||
virtual_size=3072, extra_properties={})
|
virtual_size=3072, extra_properties={})
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is still there
|
# Make sure the encryption key is still there
|
||||||
key = self.controller._key_manager.get(request.context,
|
key = self.controller._key_manager.get(request.context,
|
||||||
fake_encryption_key)
|
fake_encryption_key)
|
||||||
self.assertEqual(fake_encryption_key, key._id)
|
self.assertEqual(fake_encryption_key, key._id)
|
||||||
@ -3689,7 +3689,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
||||||
virtual_size=3072, extra_properties=props)
|
virtual_size=3072, extra_properties=props)
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is still there
|
# Make sure the encryption key is still there
|
||||||
key = self.controller._key_manager.get(request.context,
|
key = self.controller._key_manager.get(request.context,
|
||||||
fake_encryption_key)
|
fake_encryption_key)
|
||||||
self.assertEqual(fake_encryption_key, key._id)
|
self.assertEqual(fake_encryption_key, key._id)
|
||||||
@ -3709,7 +3709,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
||||||
virtual_size=3072, extra_properties=props)
|
virtual_size=3072, extra_properties=props)
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is still there
|
# Make sure the encryption key is still there
|
||||||
key = self.controller._key_manager.get(request.context,
|
key = self.controller._key_manager.get(request.context,
|
||||||
fake_encryption_key)
|
fake_encryption_key)
|
||||||
self.assertEqual(fake_encryption_key, key._id)
|
self.assertEqual(fake_encryption_key, key._id)
|
||||||
@ -3731,7 +3731,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
with mock.patch.object(self.controller._key_manager, 'delete',
|
with mock.patch.object(self.controller._key_manager, 'delete',
|
||||||
side_effect=castellan_exception.Forbidden):
|
side_effect=castellan_exception.Forbidden):
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is still there
|
# Make sure the encryption key is still there
|
||||||
key = self.controller._key_manager.get(request.context,
|
key = self.controller._key_manager.get(request.context,
|
||||||
fake_encryption_key)
|
fake_encryption_key)
|
||||||
self.assertEqual(fake_encryption_key, key._id)
|
self.assertEqual(fake_encryption_key, key._id)
|
||||||
@ -3753,7 +3753,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
with mock.patch.object(self.controller._key_manager, 'delete',
|
with mock.patch.object(self.controller._key_manager, 'delete',
|
||||||
side_effect=castellan_exception.ManagedObjectNotFoundError): # noqa
|
side_effect=castellan_exception.ManagedObjectNotFoundError): # noqa
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is still there
|
# Make sure the encryption key is still there
|
||||||
key = self.controller._key_manager.get(request.context,
|
key = self.controller._key_manager.get(request.context,
|
||||||
fake_encryption_key)
|
fake_encryption_key)
|
||||||
self.assertEqual(fake_encryption_key, key._id)
|
self.assertEqual(fake_encryption_key, key._id)
|
||||||
@ -3775,7 +3775,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
with mock.patch.object(self.controller._key_manager, 'delete',
|
with mock.patch.object(self.controller._key_manager, 'delete',
|
||||||
side_effect=castellan_exception.KeyManagerError): # noqa
|
side_effect=castellan_exception.KeyManagerError): # noqa
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is still there
|
# Make sure the encryption key is still there
|
||||||
key = self.controller._key_manager.get(request.context,
|
key = self.controller._key_manager.get(request.context,
|
||||||
fake_encryption_key)
|
fake_encryption_key)
|
||||||
self.assertEqual(fake_encryption_key, key._id)
|
self.assertEqual(fake_encryption_key, key._id)
|
||||||
@ -3795,7 +3795,7 @@ class TestImagesController(base.IsolatedUnitTest):
|
|||||||
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
created_at=DATETIME, updated_at=DATETIME, size=1024,
|
||||||
virtual_size=3072, extra_properties=props)
|
virtual_size=3072, extra_properties=props)
|
||||||
self.controller._delete_encryption_key(request.context, image)
|
self.controller._delete_encryption_key(request.context, image)
|
||||||
# Make sure the encrytion key is gone
|
# Make sure the encryption key is gone
|
||||||
self.assertRaises(KeyError,
|
self.assertRaises(KeyError,
|
||||||
self.controller._key_manager.get,
|
self.controller._key_manager.get,
|
||||||
request.context, fake_encryption_key)
|
request.context, fake_encryption_key)
|
||||||
@ -5147,7 +5147,7 @@ class TestImagesSerializer(test_utils.BaseTestCase):
|
|||||||
def test_index_forbidden_get_image_location(self):
|
def test_index_forbidden_get_image_location(self):
|
||||||
"""Make sure the serializer works fine.
|
"""Make sure the serializer works fine.
|
||||||
|
|
||||||
No mater if current user is authorized to get image location if the
|
No matter if current user is authorized to get image location if the
|
||||||
show_multiple_locations is False.
|
show_multiple_locations is False.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -142,7 +142,7 @@ class BaseTestCase(testtools.TestCase):
|
|||||||
self._config_fixture.config(**kw)
|
self._config_fixture.config(**kw)
|
||||||
|
|
||||||
def mock_object(self, obj, attr_name, *args, **kwargs):
|
def mock_object(self, obj, attr_name, *args, **kwargs):
|
||||||
""""Use python mock to mock an object attirbute
|
""""Use python mock to mock an object attribute
|
||||||
|
|
||||||
Mocks the specified objects attribute with the given value.
|
Mocks the specified objects attribute with the given value.
|
||||||
Automatically performs 'addCleanup' for the mock.
|
Automatically performs 'addCleanup' for the mock.
|
||||||
|
Loading…
Reference in New Issue
Block a user