heat/heat/tests
Zane Bitter 8437ec3fce Fix entropy problems with OS::Random::String
When generating a random string, once we had selected from the various
required pools, we continued by selecting a pool at random and then
selecting a character from that pool at random. This did not take into
account the differing sizes of the available pools, nor the fact that the
same character could appear in multiple pools, which resulted in a
non-uniform probability distribution of characters. Since users mostly make
use of this feature to generate default passwords for services they are
deploying, this would result in the generated passwords having slightly
less entropy than expected (and pathological cases were possible).

Rectify this by always selecting non-constrained characters from a single
combined pool, and by ensuring that each character appears only once in any
pool we're selecting from.

Since we also want to use this method to generate passwords for OpenStack
Users, the new implementation is in a separate module in heat.common rather
than mixed in with the resource's logic. Also, use a StringIO object to
collect the characters rather than repeatedly appending to a string.

Change-Id: Ia7b63e72c1e3c0649290caf4fea8a32f7f89560b
Closes-Bug: #1757300
Related-Bug: #1666129
Related-Bug: #1444429
(cherry picked from commit 6e16c051ba)
2018-03-23 12:41:06 -04:00
..
api Remove CloudWatch API 2018-01-28 09:11:17 +05:30
autoscaling Move CooldownMixin tests to group test modules 2018-01-28 09:41:20 +05:30
aws Ensure the whole ResourceDefinition is validated 2017-11-16 18:17:23 -05:00
clients Unit tests: Fix broken Monasca client test 2018-02-17 17:21:24 +00:00
constraints Remove broken heat.resource_type custom constraint 2017-08-01 13:35:16 -04:00
convergence Add converge flag in stack update for observing on reality 2017-08-07 05:39:29 +00:00
db Fix logic error in sqlarchemy api 2017-11-08 15:26:58 +11:00
engine Merge "Support tenacity exponential backoff retry on resource sync" 2018-02-10 01:15:27 +00:00
openstack Fix entropy problems with OS::Random::String 2018-03-23 12:41:06 -04:00
policy Remove CloudWatch API 2018-01-28 09:11:17 +05:30
templates
__init__.py Switch to mox3 2015-10-02 13:05:51 +05:30
common.py Move FakeKeystoneClient to engine.clients 2017-10-24 11:45:31 -04:00
fakes.py Move FakeKeystoneClient to engine.clients 2017-10-24 11:45:31 -04:00
generic_resource.py Remove the existing snapshots from the backend 2017-09-14 10:16:01 +08:00
test_attributes.py Revert "Support attributes with dynamic scheme" 2017-06-26 14:39:11 -04:00
test_auth_password.py Make standalone heat work with keystone v3 2017-07-17 02:59:03 +00:00
test_auth_url.py Use keystone session in endpoint_utils 2016-09-06 09:48:59 +05:30
test_common_context.py Make standalone heat work with keystone v3 2017-07-17 02:59:03 +00:00
test_common_env_util.py Handle zero values when merging environments 2017-03-02 22:03:20 +01:00
test_common_exception.py Adds error_code in heat exceptions 2015-11-05 18:10:50 +05:30
test_common_param_utils.py
test_common_policy.py Remove CloudWatch API 2018-01-28 09:11:17 +05:30
test_common_serializers.py py34: heat.tests.test_common_serializers 2015-08-26 13:09:04 +05:30
test_common_service_utils.py datetime.datetime.utcnow() should be replaced 2015-11-10 17:24:51 +00:00
test_constraints.py Add a modulo core constraint 2016-10-11 16:55:11 +02:00
test_convg_stack.py Fix convergence unit tests for py36 2018-02-21 09:04:21 +00:00
test_crypt.py Fix error for invalid auth_encryption_key 2017-08-16 14:30:47 +05:30
test_dbinstance.py Remove unnecessary setUp and tearDown 2016-09-30 10:56:31 +08:00
test_empty_stack.py
test_engine_api_utils.py Eager load resource_properties_data in resource 2017-07-31 21:13:49 -04:00
test_engine_service.py Fix reset_stack_status 2017-12-01 17:15:55 +01:00
test_environment.py Use correct raw string format 2017-11-16 18:23:58 -05:00
test_environment_format.py Add new environment section for merge strategies 2016-08-19 08:54:30 +05:30
test_event.py Eager load resource_properties_data in resource 2017-07-31 21:13:49 -04:00
test_exception.py Improve StackValidationFailed exception 2017-06-29 09:40:54 +05:30
test_fault_middleware.py Use correct raw string format 2017-11-16 18:23:58 -05:00
test_function.py Allow paths as lists in function.validate() 2017-11-16 14:18:11 -05:00
test_grouputils.py Avoid loading nested stack in some grouputils functions 2018-01-08 18:19:10 -05:00
test_hacking.py Correct mistaken parameters of test_hacking.py in tests 2016-08-19 10:07:22 +08:00
test_hot.py Merge "Allow paths as lists in function.validate()" 2018-01-08 08:07:49 +00:00
test_identifier.py Revert "Revert "Enable heat to use uwsgi with devstack"" 2017-07-07 11:00:04 +05:30
test_lifecycle_plugin_utils.py Use more specific asserts in tests 2016-11-22 08:12:35 +01:00
test_loguserdata.py Remove spurious logs from test_loguserdata 2015-10-29 17:12:34 +01:00
test_metadata_refresh.py Remove stack watch service 2018-01-28 09:35:05 +05:30
test_nested_stack.py Use StackDefinition in intrinsic functions for resolving data 2017-07-21 10:30:34 -04:00
test_noauth.py Add noauth middleware 2016-10-13 11:49:19 -04:00
test_nokey.py Unit tests: Don't use ResourceDefinition as cfn snippet 2016-05-01 19:42:20 -05:00
test_notifications.py Restore timezone information in API response 2016-09-07 23:29:50 +02:00
test_parameters.py Catch type errors when casting to int 2017-06-16 14:39:56 +02:00
test_plugin_loader.py
test_properties.py Include value in string Property type error 2018-01-11 22:21:29 -05:00
test_properties_group.py Initial PropertiesGroup implementation 2016-11-07 14:29:17 +03:00
test_provider_template.py Avoid always loading nested stack on update 2018-01-08 18:19:10 -05:00
test_resource.py Protect prepare_update_replace() with resource lock 2017-12-08 11:52:20 +05:30
test_resource_properties_data.py Store resource attributes in the DB 2017-06-21 20:18:46 -04:00
test_rpc_client.py Remove stack watch service 2018-01-28 09:35:05 +05:30
test_rpc_listener_client.py
test_rpc_worker_client.py Convergence: Cancel message 2016-07-05 07:52:03 +00:00
test_rsrc_defn.py Cache names of required resources in ResourceDefinition 2017-07-21 10:44:51 -04:00
test_server_tags.py Unit tests: Don't use ResourceDefinition as cfn snippet 2016-05-01 19:42:20 -05:00
test_short_id.py Less unicode weirdness in short_id 2017-05-01 16:44:59 -04:00
test_signal.py Remove stack watch service 2018-01-28 09:35:05 +05:30
test_stack.py Merge "Use correct raw string format" 2018-01-05 16:05:57 +00:00
test_stack_collect_attributes.py Cache dep_attrs for all resources in definitions 2017-07-21 10:44:51 -04:00
test_stack_delete.py Move FakeKeystoneClient to engine.clients 2017-10-24 11:45:31 -04:00
test_stack_lock.py Don't always eagerly load the raw_template for a stack 2016-10-04 08:25:01 -04:00
test_stack_resource.py Use appropriate exception in StackResource.get_output() 2017-12-19 16:36:43 -05:00
test_stack_update.py Rollback stack with correct tags 2017-08-14 17:59:10 +08:00
test_stack_user.py Move FakeKeystoneClient to engine.clients 2017-10-24 11:45:31 -04:00
test_support.py Replace tag 2015.2 to 5.0.0 2015-08-06 06:29:09 -04:00
test_template.py Merge "Strip disabled resources from depends_on in add_resource()" 2017-08-28 19:13:59 +00:00
test_template_files.py del _session(), use context.session directly 2016-06-22 10:45:04 +12:00
test_template_format.py Use correct raw string format 2017-11-16 18:23:58 -05:00
test_timeutils.py Get rid of timeutils.round_to_seconds() 2017-05-04 20:41:34 -04:00
test_translation_rule.py Enable to specify network for Trove Cluster 2017-12-15 11:52:49 +00:00
test_urlfetch.py Remove usage of parameter enforce_type 2017-05-08 17:55:32 +08:00
test_validate.py Return nested parameters for resource group. 2018-02-28 20:18:17 +00:00
test_version.py
test_vpc.py Fix is_using_neutron 2016-07-27 22:11:58 +05:30
testing-overview.txt Add alternative way to use debugger for unittets 2015-08-20 16:28:51 +00:00
utils.py Create replacement resource atomically 2017-11-03 09:14:46 +05:30