We are glad to announce the release of: senlin 2.0.0: OpenStack Clustering This release is part of the newton release series. Please report issues through launchpad: https://bugs.launchpad.net/senlin For more details, please see below. 2.0.0 ^^^^^ New Features ************ * Improved the action scheduler so that it can decide how many node actions will be fired in each batch. Batch control is a throttling measure to avoid raising too many requests in a short interval to the backend services. * A new "cluster_collect" API is added. * Added dependents to clusters and nodes for recording other clusters/nodes that depend on them. * The senlin-engine now supports fencing a corrupted VM instance by deleting it forcibly. * A new profile type 'container.dockerinc.docker-1.0' is added to support creation and management of docker clusters. This is still an experimental feature. Please use with caution. * The deletion policy is enhanced to handle 'NODE_DELETE' actions which derives from a standalone 'node_delete' request. * The cluster health manager has gained a new feature where nova server instance failures can be detected and handled, with and without a health policy attached to a cluster. * The health policy was improved so that it will suspend itself when a node deletion comes from senlin-engine or client request. The policy will only effect when node failure is 'unexpected'. * The load-balancing policy is improved to handle 'NODE_CREATE' and 'NODE_DELETE' actions that derive from 'node_create' or 'node_delete' RPC requests directly. * A new "lb_status_timeout" option is added to the LB policy to cope with load-balancers that are not so responsive. * Added a new type of receiver (i.e. message) which is based on Zaqar message queue. * The region placement policy and the zone placement policy have been augmented with spec validation support. * The affinity policy is improved to handle NODE_CREATE actions which are derived from 'node_create' RPC requests. * The availability-zone placement policy is improved to handle NODE_CREATE actions which are derived from 'node_create' RPC requests. * The region placement policy is improved to handle the NODE_CREATE action which derives from a 'node_create' RPC request. * The 'image', 'flavor', 'key_name' and 'networks' properties of a nova server profile can now be validated via profile-validate API. * With the new 'profile-validate' API, the nova server profile now supports the validation of its 'flavor', 'image' (if provided), 'availability_zone' and block device driver properties. * Optimized nova server update so that password and server name can be updated with and without image-based rebuild. * Added support to oslo.versionedobject so that DB interactions are abstracted. It is possible to do live upgrade for senlin service now. * A new policy-validate API has been added to validate the spec of a policy without actually creating an instance of it. * The affinity policy, loadbalancing policy now support spec validation. Invalid properties can be detected using policy-validate API. * A new profile-validate API has been added to validate the spec of a profile without actually creating an instance of it. * Engine scheduler was redesigned to work in "tickless" way. * Tempest API test for all Senlin API interfaces for both positive and negative cases. * Reimplement functional test using tempest. * Added 'template_url' support to heat stack profile. * Zaqar resources including "queue", "message", "subscription" and "claim" are now supported in Senlin driver. Upgrade Notes ************* * The cluster delete API calls may return a 409 status code if there are policies and/or receivers associated with it. Previously, we return a 400 status code. * DB columns obj_id, obj_type and obj_name in the event table are now renamed to oid, otype and oname correspondingly. * The 'details/addresses' property of a node output for a nova server used to contain only some trimed information. This has been changed to a faithful dumping of the 'addresses' property. * Several configuration options are consolidated into the 'senlin_api' group in 'senlin.conf' file ('api_paste_config', 'wsgi_keep_alive', 'client_socket_timeout', 'max_json_body_size'). * With the newly added 'message' type of receivers, the 'cluster' and the 'action' property are not always required when creating a receiver. They are still required if the receiver type is 'webhook' (the default). Deprecation Notes ***************** * Deprecate 'block_device_mapping' from nova server profile since it was never supported by OpenStack SDK. Security Issues *************** * The configuration option 'service_password' is marked as secret so that its value won't get leaked into log files. Bug Fixes ********* * Fixed a bug in affinity policy where the calls to nova driver was wrong. * The new API documentation include fixes to the header like 'location', 'OpenStack-Request-Id' and responses during version negotiation. * Fixed bug related to the desired_capacity calculation. The base number used now is the current capacity of the cluster instead of previous 'desired' capacity. This include all actions that change cluster capacity and all related policies. * The 'desired_capacity' reflects the expectation from a requester's view point. The engine now changes the 'desired_capacity' after the request is validated/sanitized, before the action is actually implemented. This means the 'desired_capacity' will change event if an action fails. * Fixed cluster/node status setting after a cluster/node check operation. * Fixed cluster status update logic so that cluster status is solely determined by the status of its member nodes. The status is updated each time a cluster operation has completed. * Various fixes to the user doc, developer doc and API documentation. * Fix cluster next_index update when adding nodes to cluster. * Fixed DB layer dead lock issue that surfaced recently during concurrent DB operations. * Fixed resource delete operations which should return 204 status code with body length of zero. * Fixed error handling when network is not found in nova server creation. * Fixed node recover operation behavior so that unsupported operations can be detected and handled. * A cluster in the middle of an on-going action should not be deletable. The engine service has been improved to detect this situation. * The unimplemented properties for health policy are masked out. * Removed 'metadata' from profile query parameters because the current support is known to have issues. * The node action execution logic is fixed so that it will skip cluster checking for orphan nodes and policy checking will be skipped for derived node actions. * Fixed bug introduced by openstacksdk when updating nova server metadata. * Added validation of key_name, flavor, image, networks when updating nova server. * Fixed bugs related to receiver creation when type is set to 'message'. * Fixed dead service clean-up logic so that the clean-up operation can be retried. * The 'senlin-manage' command has been fixed so that it will report the senlin service status correctly. * The 'tools/setup-service' script has been fixed so that it works under keystone v3. Other Notes *********** * Senlin API/Engine configuration options are now documented and published online. * Reworked API documentation which is now published at http://developer.openstack.org/api-ref/clustering Changes in senlin 1.0.0.0rc1..2.0.0 ----------------------------------- 138de6e Release notes for newton RC2 2bae36f Quick fix on message receiver 7d5a4ee Implement receiver notification handling 2ad337f Updated from global requirements d1ab25a Unit test for Json get_schema 78dbe8d Add doc about cloud_backend ddfc65e Removed redundant 'the' 18d8d08 Fix typos in context.py&clusters.rst 44baebd Add Apache 2.0 license to source file 6a74b1a Updated from global requirements 9f4d615 Avoid Forcing the Translation of Translatable Variables bbdc783 Modify minor problem in service.py 8b66649 Fix some typos 2b43726 Using assertTrue() instead of assertEqual(True) cff2562 Fix service manage cleanup 6e22519 Versioned object for cluster create request a67f9b0 Update description for filters and sort 20b3198 Address a TODO item in integration test 25e6048 Fix typo in docstrings 23f4eaf Fix typo in docstrings 002bd20 Fix typo d48230e Add Name and NameField support 26dadae Creating new keypair for integration test 0c07d74 Revise the bindings.rst c119a80 change cb to cm 905aff3 Add to_json_schema support to Object fields a14f0e8 Revise the clusters.rst 5053942 Specifying proper subscription ttl e096d4e Revise the actions.rst 80e438c Fix CONF.set_override for type enforcement 6978c10 Fix integration test 2d04ea8 Fix the valid keys for filtering event list in doc 01eed0e Support template_url for heat profile c1cb708 Add missing ":command:" markup for the command 69a618b Fix error in user/action.rst 74315da Fix evnet-list show 6450d3e Updated from global requirements 44251d9 revise the "cluster-policy-attach" bb7ce2f Use constant instead of 'STRING' 0b076dc Fix handling of ResourceNotFound that is not thrown a0645ee Translate error-level log messages for LOG.error 0b567c3 Correct reraising of exception b23367d Cleanse zaqar driver for functions unused e292d5f Revise TODO.rst fd1ee5a Add new config option for Zaqar queue 3e96189 Define new config options for receiver notification 32d16e2 Use new min_size/max_size when eval cluster status e1cf9c1 Fix FEATURES.rst error 2f9b240 Fix cluster_check from health manage be52efd Fix error in registry.py b671b6b Fix error in tutorial/receivers.rst f62a607 Fix user/policy_types.rst error e5feaa0 Revise schema _validate_version 045b1ee Replace 'MagicMock' with 'Mock' 233975e Fix typos in api-ref/source/policies.inc b078325 modify profile_update 8815826 Correct driver calls in affinity policy 4580228 Cleanse nova driver for unused calls 355e79f Clean neutron driver interface for unused calls db36a6e Remove unuse keystone interface functions f066a44 Move is_engine_dead test to common utils 32d59e9 Fix capacity calculation in scaling actions 7b7e364 Tweak CLUSTER_DEL_NODES for base capacity 875f9c7 Tweak CLUSTER_ADD_NODE action for capacity update 5e0e156 Updated from global requirements 07d4ad5 fix typos in TODO.rst 71d5986 Fix a typo in template.rst f7ea48b Fix typos in scaling_policy.py & service.py 54978f4 Fix error in authorization.rst 383d0cf Fix error in deletion_v1.rst 1656f45 Service support node replace 27c8d47 Delete engine from db when stop engine 350040f fix typos in doc 11a88f0 Remove a finished TODO in comment 0080669 Fix a typo in utils.py 8cc86b0 Fix nova_v2 test driver 7402288 Use new desired when eval cluster status faf6b7c Fix error in actions.rst 9046b8a Fix error in template.rst 1e33351 Fix error in container-cluster 905ea2e Remove unnecessary setUp 6fa7a07 Rework NODE_LEAVE action logic a72e6ef Modify test_service_manage_report_cleanup e72c80c Fix error in FEATURES.rst f2141cd Fix error in status.yaml 3ceb3d9 Fix misspelling in parameters.yaml ce1f607 Fix error in actions.inc 936f0b8 Rework NODE_JOIN logic dc7904e Fix error in conf.py 59891d1 Rework NODE_DELETE action logic 4259837 Rework NODE_CREATE action logic 7edb329 API and engine support for receiver notifying 07576db Support cluster replace action 375268b Select roles for trust building 654409a Fix error in senlin-manage.rst 0d5e470 Fix some typos in doc ff7223b Fix error in receivers.rst e28c0ea Fix error in policies.rst 67ca4d5 Remove is_admin judge in xyz_get_all at db layer f67c830 Enable senlin policy for dashboard via devstack installation baba687 Rebase deletion policy on real capacity 5d79494 Rebase LB policy on real capacity of cluster 6931b68 Rebase affinity policy on real capacity of clusters 4801d78 Enable health policy to base on real capacity d42e638 Add a unit test for deletion policy 59dd2cc Have zone policy based on real capacity 7fb6ecb Have region policy to base on current capacity e914c23 Have RESIZE based on real capacity 2c9c978 Enable parse_resize_params to handle current capacity 5696020 Rebase RESIZE operation on actual capacity bfc9a46 Allow node count api to carry filters 853b1d1 Fix error in membership.rst 4508deb Fix error in clusters.rst 28b3de3 Fix error in glossary.rst 2188dca Update XyzNotFound to ResourceNotFound f687f28 Remove ClusterBusy exception d89f79b Refact ResourceInUse exception ce042e6 Unit test for policy load with db object c8cc352 Fix specs/container-cluster.rst error 6d8044a Update reno for stable/newton 17a62db Release notes for RC1 release f27ec4b Remove block_device_mapping property 508c91d Fix typo 'duplcate' to 'duplicate' ab13b26 Fix various properties of nova server profile bee0de7 Fix docs for node and cluster 5054da1 profile "type_name" synchronize with code dcb6685 Fix error in authorization.rst a5b4c7f fix typo in doc a529bcc Fix error in zone_v1.rst 55aff44 Fix user/Nodes.rst error 6c89807 Remove PROFILE_METADATA in profile_list filter_whitelist a39b4f3 Fix error in region_v1.rst 19f942e Fix user/bindings.rst synchronize with code 7f807e8 Synchronize user/profiles.rst with code c4eb45d Fix user/clusters.rst error 98bc739 Fix error in loadbalance_v1.rst 101facb Fix error in deletion_v1.rst 65e1a06 Fix error in action.rst a75905e Rework nova server update logic 78a77ed Unit tests for password checking/update 51951b1 Rework _delete_interfaces and unit tests 437a264 Fix error in policy_type.rst f2472b8 Add exception handling to _add_interfaces 78d8867 Rework network validation logic for nova server 90a62de Optimize EResourceOperation 27911c6 Rework network update logic for nova server d203962 Tweak network update for nova server b86de75 Update class `ResourceInUse` 2069f86 Refine flavor validation 4d4b600 Updated from global requirements a4dfcc0 Rework name checking and updating 4e7d765 TrivialFix: Remove cfg import unused ce888c6 Rework _update_image logic for nova server profile 6042327 [api-ref] Re-allocation response example 61ef6db remove ProfileInUse 6771f84 Fix error in profile_type.rst 3e8952e Use scenario for image and keypair unit tests dd30178 Use scenario for az and flavor validation test 0bcf387 Revise feature items cddc870 Split nova server profile unit tests 33cff24 Tweak exception handling for server update 8d75470 [api-ref] Correct parameter's type eb9842b Build trust for receiver creation 8600b2b Delete dependencies when deleting a node or cluster 27b8a5e Tweak not found exception handling 9d17e42 Fix unit test for nova server network validation 2fec710 Improve network resolving for nova server dffd1dd Improve get_details for heat stack profile babce56 [api-ref] Update version response table 68ca4fe Guard against nova exception when creating server fc73747 Rename 'keypair_get_by_name' to 'keypair_find' 8fd7648 [api-ref] Add 'Show All' button 12a120d Add 'dependents' property to cluster e9fe2f1 Grammatical mistake in node.rst bad8db0 Misspelling in cluster.rst 846de6b Guard against driver error for nova validation e310f0e [api-ref] Remove parameters unused d1fa751 Rework rally test jobs cbe7f05 Handle exceptions of docker driver f54fc21 Fix receiver create 26f0c6a Store node relationship into 'dependents' 75f6d96 Don't import unused logging e79455f [api-ref] Correcting parameter's types fe6712c Fix API history doc 48e44cc Modify parameters' type be0ac27 Misspelling in the comment of cluster and node aad8911 cluster-check results the status error 84d139e Refactor CLUSTER_RESIZE handler 3538688 Refactor container profile for driver calls 2bb8476 Refactor heat stack profile driver calls 1eeac5a Refactor nova server profile for driver calls 5fbc05e Refactor LB policy for driver calls b589e67 Add dependents column to node and cluster tables 5284f2a Updated from global requirements 717b4be Refactor region placement policy 48494c1 Refactor zone placement policy aa43f97 Refactor affinity policy 0f5f232 Trim container id to a suitable size a198eab Some more release notes for newton-3 4898eb8 Use openstack client in profile examples readme file uniformly 2e82e09 Fix container profile samples and README file ca1b6e6 Remove unused LOG and CONF 7b3b897 EResourceOperation code comments need modify 7db00d1 Enable node filtering to filter nodes not created. ece6d06 Validation for zone placement policy 404215a Validation for region placement policy 73c3f56 Updated from global requirements 7ef126d Change type of X-Openstack-Request-Id 75721bc Config logABug feature for Senlin api-ref daf13c6 Release notes for newton-3 a9c5c17 Add host_cluster support in container profile a2fcb3b Protect cluster from being deleted when appropriate 91d9ab5 Protect node from being deleted when necessary a90ba7e Fix SDK log output setting 91c21f0 Spec validation for LB policy 310cd76 Fix 'load banlancer' in i18n strings 6fdd1e9 Mask unimplemented properties for health policy 30b7edc Fix cluster timestamp setting e14a174 Fix cluster status update for SCALE_IN ddf2e7e Fix cluster status update during SCALE_OUT 8b315fe Fix cluster status setting when RESIZE 23ce7a2 Fix cluster status update after CHECK/RECOVER 8c87ca6 Initial work for message type of receiver 6b782c0 Fix cluster status update after CLUSTER_DELETE 1346463 Fix cluster status update after CLUSTER_CREATE 4c2d27e Fix formatting strings when using multiple variables 1f979c5 Fix cluster status update after CLUSTER_UPDATE 89c4f8c Profile validation for nova server e6334fc Revise sanity check for receiver creating ef815b1 Policy validation - affinity polcy 2487a74 Rework policy validation invocation 17ab4d7 Fix some bugs for container creation c46e892 Rework _build_conn_params for policies 151bb45 Fix coverage test script 2502299 Fix operation passing for cluster/node recover 3ba7dc4 Fix exception handling in server check 3682406 Fix oslo.i18n in senlin project c10ae69 Fix exception handling in nova server recover 6affcb9 Fix exception handling in node_recover e875c50 Enable health policy to skip more actions 5b91071 Fix using filter() to meet python2,3 1c81643 Add negative API tests for policy validation 400369a Add API tests for policy validation 802bb55 Minor tweak webhook receiver 3bcc293 api-ref doc for policy validation 05e2b10 Add API tests for profile validation 1260f2d Add negative API tests for profile validation 5021d02 Add API tests for profile validation 8a6a2e0 Always change desired_capacity for node_delete a716e7f Adjust desired_capacity updating in NODE_CREATE action e28cc03 api-ref doc for profile validation c85809a Clean imports in code 7020aba Tweak cluster recover workflow f644ec9 Health policy support to CLUSTER_RESIZE 6d41feb Update api-ref configuration f69d659 Fix reraise issue 7bc5c3c Add version support to schema and spec 1f0771c Updated from global requirements c80cd83 Rework receiver delete c03b417 Fix policy command example 3242ea9 Fix api version mismatch return code f2b740e Fix docs about autoscaling 7b8f063 TrivialFix: Remove logging import usused 7178b3b Updated from global requirements a59311f api-ref: OpenStack-Request-Id and location 6303d71 Faithful dump nova server addresses property 08eb7da Revise tools/setup-service to make it work with keystone v3 d78c920 A spec for container cluster service bd3bbc7 Some new typos need to be fixed c2884f1 Add eval_status operation to cluster 20d6aa8 Release note for Zaqar resource support 8513da7 Updated from global requirements ff2fbd5 Remove 'description' from Action class e010110 Imported Translations from Zanata 434f35e Enable health policy to handle CLUSTER_SCALE_IN 27d4bbc Close health manager loop 0f63981 Improve server metadata format 79cc006 Reorganize receivers directory 06e938a Add new api for policy validation c167430 Add policy_validate function to engine 4a00726 Fix do_validate in heat profile cf1885a Add new api for profile validation 3d4a0ca Remove usage of mox/mox3 58eb443 Get ready for os-api-ref sphinx theme change 9163a4f py3:Remove six.iteritems/iterkeys da08bc1 Fix nova_v2 fake driver 82ea6fe Fix stack status wait 60fd247 Remove garbage parameters at db layer a46e5e3 Fix DB setup for unit tests b7ed63a Fix node join behavior 038229e Support Fencing by Health Policy and Cluster Action 1ae2d9f Make server delete operation back compatible f73b9d5 Add zaqar v2 driver interfaces for claim resource 8d9c1d9 Allow health check to be enabled/disabled 5a68ced Fix health manager initialization ad8a538 Fix service filtering when claiming clusters 701ce2f Add function to perform profile validation cd6c8ee Fix service list status report 74c9609 Fix endpoint href for v1 api faf9e01 Add unit tests for _update_flavor bd37d6d Updated from global requirements a4bc4fe Rework version negotiation da40df0 Prepare v1 controller for version negotiation d653cce Throw and catch EResourceDeletion properly ac6d308 Move profile validation logic into a function. 6b82f0c Optimize version negotiation f1b3f26 Throw and catch EResourceUpdate properly 9046e39 Fix object serialization about metadata e3b153b Refactor version negotiation middleware 51a8ba1 Throw and handle EResourceCreation properly fec6955 Rework constructor of InternalError exception 1b51b85 Fix api-ref for version related samples 290d60b Replication version info into v1 d92830c Rename ResourceUpdateFailure and ResourceDeletion Failure 8ae82d0 Rename ResourceCreationFailure f28f72f Rename 'ResourceBusyError' to 'EResourceBusy' d767e75 Add a 'help' link into version list response dce41dd Use constraints in tox.ini a2c436f Trivial: Fix some typos in testing dev doc 82380ff Fix stack profile waiting operation c9a2ec5 Add 'stack_check' operation to heat driver 08c3c21 Add zaqar v2 driver for subscription resource 0456a0a Add status code tables to api-ref doc 40639c2 Add fencing support into Driver and Profile cdea70b Fix redundancy api-ref index bdc4457 Fix cluster-collect API documentation 3147753 Developer doc for testing 77d7733 Add Apple OS X ".DS_Store" to ".gitignore" file 610d75b Updated from global requirements 88eca76 Fix unit tests for stack profile 861b45c Use SDK status wait when creating stacks 5dc12c3 Fix some typos in the doc e4f22d3 Improve api-ref docs generation 5d2667e Updated from global requirements 9e38609 Minior revise pre/post_test_hook 36d680b Add wait_for_stack call to heat driver 82d390a Refactor rally plugin 8410ade Fix some typos in the files 2c5a4b9 Correct the installation doc 9d05ed0 Updated from global requirements 72d53a1 Add get_schema() method to Json field type e39eabf Implement two operations for nova server profile d0d7421 Update topic name to listen versioned notices of nova 81a5a0b Add 'reboot' and 'change_password' ops for nova server 3a8e76a Template for specs 2935313 Remove TODO item related to node-create/delete 27abf0b Documentation for Aodh Scaling Scenario 833941f Zaqar v2 driver for message resource a035db2 Remove discover from test-requirements 1120911 Fix tox.ini for docs venv dbd3ff2 command in doc is incorrect 4ff266e Move some config options into senlin_api group 10dc6c7 User scenario documentation for autoscaling (1) cfb8513 Updated from global requirements f8fb7ff Doc for affinity and affinity policy c7bde3a Tutorial doc code is out of date de233ff Make lb timeout configurable 981d9ab Documentation for builtin policies 6323b18 Integration test for heat stack cluster 0912cba Integration test for nova server cluster 057e70e Revise affinity policy doc for developer 9c20545 Revise zone placement policy doc for developer 3b32a76 Revise region placement policy doc for developer a0c65a9 Revise LB policy doc for developer 680618b Revise deletion policy doc for developer 725771b Fix affinity policy for node create ad1a604 Use assertEqual() instead of assertDictEqual() e0032cd Add some release notes about recent changes 0b63af7 Initial work for integration test 39b7e69 Typo! e533635 [Trivial] Remove executable privilege of doc/source/conf.py f6f82d3 Update the home-page info with the developer documentation 91341e6 Add hacking check to ensure LOG.warn is not used cccdf92 Add docs for configuration options b2c5a2c Consolidate configuration options c1d0127 Make sure service password not leaked into logs 1145b5a Fix listener setup in health manager 2052787 Enable zone placement to handle NODE_CREATE 415800b Enable region policy to handle NODE_CREATE 82a0fa1 Enable LB policy to handle NODE_CREATE f315d91 Enable affinity policy to handle NODE_CREATE 0b00306 Fix docstring for affinity policy 69480fc Make NODE_DELETE operation respect grace_period 36f36cc Improve coverage test d14cb83 Fix test cases for orphan node operations 99d3e99 Enable LB policy to handle NODE_DELETE e8e6261 Updated from global requirements 865f13d Refactor lbaas driver be6b93f Add 'NODE_DELETE' support to deletion policy 148ff8b Updated from global requirements c09463e TODO Item for integration with Glare 780ddbe TODO: Add OSProfiler support d24aed7 Fix node action execution logic 4691081 Fix coverage test 8c2197d Introduce microversion-parse package e1fc67e Fix the typo in the files 82dba4e Trivial: use stripped path when doing collect 6ff946b Spelling errors need to be fixed eab725b Fix some spelling mistakes in the files 48a41ed The typo in the file need to be fixed d2707bb Simplify context tests to senlin only attributes 0c561d4 Change "senlin profile-create" to "openstack cluster profile create" 6f95ee9 Updated from global requirements f11fe2e Replace deprecated LOG.warn with LOG.warning 406598c Add a TODO item about documentation 175958d Add some release notes for some important patches 30fbdd6 Prepare context tests for new to_dict() attributes 04a4a7d Cleanup i18n marker functions to match Oslo docs ebd9715 Add Python 3.5 classifier and venv b42f9be Revert "Add debug information for engine workflow" f3ad8bc Fix delete API of profile/policy/receiver resources 920d41a Fix lb healthmonitor delay/timeout unit 5518ee6 Add driver for Zaqar v2 API 0f0c104 Fix context comparison problem 85239b1 Minor typo fixes and grammar adjustments 3d7d88d Revise nova server profile spec example b71337b Updated from global requirements 4fbf315 Imported Translations from Zanata ba73a1e Updated from global requirements e907826 Twist the Tutorial for composition of ceilometer, Aodh, and Gnocchi df5b2b8 Define api test in tox.ini 2cb8e39 Updated from global requirements 540bffa Remove deprecated functional test code 82c3067 Imported Translations from Zanata ada0732 Add tempest functional test for cluster resize 05afcaa Release note for tempest functional test abf9719 Add tempest functional test for webhook receiver b1ab1b0 Add tempest functional test for lb policy 7fee971 Add tempest functional test for scaling policy 59d9b0c Add missing negative tempest API test cases fac12d3 Fix cluster-resize API 0b2aef7 Add Container create/delete driver 85f0bae Add tempest functional test for cluster scale in/out a3139c0 Add tempest functional test for node basic operations 1332faf Don't create network during API and functional tests caf5654 Updated from global requirements 0dfd3b2 Rework some util functions for tempest test 1c4f3a2 Add tempest functional test for cluster membership c571923 Add tempest functional test for basic cluster operations 5baf23e Fix cluster next_index updating a827bda Make tempest utils available for both api and functional tests c5e8bc7 Initial work for tempest functional test b86bee2 Updated from global requirements ab4d6bc Add debug information for engine workflow 33548aa Fix NoSuchOptError when using senlin-manage service list d3c4e23 Fix oslo.config.opts in setup.cfg aade87e Releasenote for tempest API test f0464b1 Relocate openstack_test driver f5e6f30 Add negative tempest API test for cluster check/recover 3c808f4 Add negative tempest API test for cluster-policy-update f0ba4db Add negative tempest API test for cluster policy attach/detach 65b2622 API layer support for cluster-collect 416a9c4 Add negative tempest API test for cluster-del-nodes d15f6af Add negative tempest API test for cluster-add-nodes 6da001d Add negative tempest API test for cluster scale in/out 5470fbb Add fake heat_v1 driver 0b643ac Add unittest for node recover with unsupported operations 5bb2234 Add negative tempest API test for cluster resize e9443b3 Common negative tempset API test for cluster action f4031bb Add rally plugin for cluster-size cb04dd9 RPC support for cluster-collect 6459cb0 Updated from global requirements a3653bc Add API test for cluster policy_update action aa2afd9 Add API test for cluster policy_detach action ea5a921 Add API test for cluster policy_attach action af27a33 Add API test for cluster recover action 3212b3a Add API test for cluster check action ec1bf32 Add API test for cluster del_nodes action 2bf66dc Fix usage of NotImplemented da15902 Add API test for cluster add_nodes action d386a30 Engine level cluster-collect call 1d70286 Util function for parsing JsonPath cfafea4 Remove an unnecessary log info ffe025b Imported Translations from Zanata 37c3689 Add negative tempset API test for node actions b3ddf3e Add negative tempset API test for api-version ebe3854 Updated from global requirements ef13545 Fix some errors in API doc 86bda7b Add negative tempset API test for resource delete ad2ee27 Add two negative tempest API tests for cluster_policy 7065e5f Add negative tempest API test for receiver create 641c418 Updated from global requirements 5ee2afa Add negative tempest API test for profile create 0279163 Add negative tempest API test for policy-create b61df5f Minor fix for action/event API doc e037a29 Add negative tempest API test for cluster_policy show 3a2003f Add API test for node recover action 10c8220 Fix cluster-policies list API b7febc6 Reorg cluster_polcy related tempest API test 5e3cfb6 Add negative tempest API test for all resource list APIs 0779b30 Fix an error in action API doc ccffe85 Add first rally-gate job for Senlin 6bc9a08 Add a db_api interface for deleting actions 6f3007f Remove event config option and fix prune api 6c89099 Add API test for cluster scale_in action ba5fe42 Add API test for cluster scale_out action 33ffd41 Revise cluster resize test fe66908 Add negative tempest API test for profile/policy update ea7688e Minor revise cluster_update and profile_update a1d6959 Minor revise profile_update API ce6b931 Initialize docker driver e8d7a8a Replace 'format_time' with 'isotime' b80fcb7 Add basic schema support for profile operations f7a7546 Add negative tempest API test for node update 38b34d9 Improve DB sorting 21f9b1b Remove 'readonly' from property schema definition 89811a5 Add negative tempest API test for cluster update 1353593 Add negative tempest API test for resource show 33357bd Minor tweak negative tempest API test 7bbab37 Revise some neutron_v2 driver interfaces 842dd66 Initial framework for health manager listener eb1f7d4 Updated from global requirements a81816f Add negative tempest API test for cluster create 87e3e56 Add negative tempest API test for node create 5d04122 Add negative tempest API test for resource get 8f9ddb9 Release notes for newton-1 d4278b4 Add negative tempest API test for delete notfound 4f43133 Fix nova_v2 driver 3f826b7 Unify the naming of tempest API test cases 547ba3f Fix typo in tutorial about removing node 8fb6ab6 Minor tweak versioned object implementation 4f3a25c Remove duplicated logic about oslo notifier 3b1b9ff Fix TZAwareDateTime 3366a00 Optimize unit tests 6238567 Unit tests for versioned notification 4b518fe Simplify ovo fields/base import e032d84 RPC notifier infra a61798b Add Json comparison method for test case 13f03c8 Updated from global requirements 266a999 Unit test for objects fields 2200cf5 Fix event unit test 9eaa382 Fix policy unit test 2b90285 Fix scaling policy unit test ea91ea2 Fix receiver unit tests 85e7f5c Fix engine service unit test 556aca7 Fix unit tests for action module ac07d48 Revise cluster and cluster_policy unit test b93de1d Tune node unit test e1473c8 Fix a tiny defect of API ref 1def001 Improvement to oslo.versionedobject support f2893e6 Updated from global requirements 2a064c7 Rename event table columns 5aa0d57 Updated from global requirements ce39e4a Add 'host_node' and 'host_cluster' properties to container profile 5d98dae Rework tempest policy functions into utils 8105362 Rework node utility functions in tempest 563789b Fix tempest runs d922f0f Revise receiver util function calls d09c774 Remove 'get_test_cluster' function fdb7c64 Make create_a_cluster return a UUID 704ce31 Further tune the tempest api tests 31bda17 Further tune tempest api tests cc97c74 Further tune tempest api tests 4919424 Move test cluster creation into a util module bb89fc8 [trivial] Tune tox.ini 62a922d Move build info api test to its own directory c0d98d5 Add negative tempest API test for cluster_delete 3c854cd Minor revise cluster_delete engine service call 6f52de1 ovo - switch action calls 61acc57 ovo - swith cluster-policy calls 882defe ovo - switch cluster calls a76e43f ovo - switch credential calls b1501cd ovo - switch dependency calls 10a5a77 ovo - switch event calls bd01d15 Add tempest test for API event show 2307235 ovo - switch health registry calls ee96afa Updated from global requirements c1bfe68 ovo - switch cluster lock and node lock calls de15589 ovo - switch node calls 172e7b1 ovo - switch receiver calls f534b1a ovo - switch policy calls 3c10ef1 ovo - switch profile calls 2ce1f3a ovo - switch service calls fe48e09 Add negative tempest API test for http conflict cases 0531464 Fix links to API reference docs 5fabf15 Fix typos in tempest API tests for profile_delete 028342c Fix senlin-dashboard install 22e96db Updated from global requirements 2cd226e Tune health manager module 7c35887 versioned object -- credential e3cfa6c versioned object -- service f2b2dc5 versioned object -- event 6919c8e versioned object -- action 6662235 versioned object -- receiver da8d34e versioned object -- action dependency 5f3707a versioned objects -- health_registry 416a494 Remove unnecessary executable permissions b208ed1 versioned objects -- cluster lock and node lock fe562ac versioned object -- cluster_policy 7321631 versioned object -- node aeceb45 versioned object - cluster 135c487 versioned object - policy 110ff83 versioned object - profile 2619182 Initialization of versioned objects bc00783 Add release note about DB deadlock fix 0cc0fd6 Release note for scheduler batch control 6c820df Add tempest API test for API version show e0ea64e Minor fix for API document of API versions 9e0acc7 Add negative test for cluster show 3f7f23e Fix parameters 'required' status f6d5891 Updated from global requirements f15121a Updated from global requirements 52e78a3 Reorg profile_type and policy_type tempest API tests 053a62d Add tempest API test for API versions list 54233ce Tutorial documentation for receivers 7c77cf0 Reorder parameters to make os-api-ref happy 0661e50 Add batch control for node action scheduling de2689e Add tutorial doc for policies f7930f5 Add tempest tests for events list API 04a8fba Trivial fix to README doc 3a23528 Tune health manager options 8a1f253 Add basic section to tutorial doc 928327e Rename container profile dcd2ef6 Migrate to os-api-ref upstream library 1b16ba7 Add DB retry decorator for DeadLock problem b11f1d4 Updated from global requirements 705b529 Revert "Allow parameter location to be specified in rst" 2a99338 Fix functional tests b24bbf0 Tune DB API for session sync 070577b Add tempest tests for build-info API e997427 Add API tests for action list/show 33d4811 Add API test for cluster policies list/show f3afeb4 Add create_test_policy function to base test class b2aee33 Bump cirros version to 0.3.4 53c7dc2 Updated from global requirements 35f3aa0 Add API test for receiver show 8ef4bb6 Add API test for receiver list 0028236 Remove emacs magic line 8b17bf3 Fix typo in API docs abf644b Add API document for build_info d0d46c7 Add gate scripts for tempest a3a361a Action APIs doc 2a84245 Nodes API doc 1acca02 Add API document for receiver 0525c28 Add API document for webhook 081eff7 Add API document for event 6677fc2 Clusters API doc (3) 9bd4341 Fix minor issues of profiles tests 1b6853b Add API test for policy show 71334eb Add API test for policy list 7c05fdb Clusters API doc (2) e4e7419 Add support for container profile 6fcfd60 Revert "Fix minor issues of profiles tests" 45a46be Add API test for profile type show/list b01bcf4 Fix minor issues of profiles tests e8f8ad2 Minor tweaks to policies API docs ffad377 Clusters API doc (1) dda447c Add API test for profile list 00f3394 Add API test for profile show f9815ac Add API test for profile update c87e206 Add API tests for profile delete aec21cb Add API tests for profile create d989180 Add API tests for policy type list/show 54b1202 Fix nits found in profiles API doc 05182ab Fix nits in policies api doc a29fb28 Add API document for cluster_policies 0974664 Remove the useless run_tests.sh 3d62aa1 Fix links in tutorials doc b2ae5e5 Allow parameter location to be specified in rst d2133bf Migrate DS action items into TODO/FEATURES 68f34b6 Add tempest API test for Node show/list a7e43fc Add tempest API test for cluster show/list 5312297 [TrivialFix] Add missing `help` in README.rst 75352a6 API documentation for policies ecbb83f Improve parameter parsing in api-ref 04de351 Updated from global requirements 86abb9a Add API tests for node action 523c0e7 Release note for scheduler rework 1aaf48f Add API tests for cluster action 711cd04 Updated from global requirements bb82c4f Remove mitaka release notes data 3db0a3e Rework engine scheduler a5a7ed4 Add tempest tests for policy create/delete/update API 03687aa Add tempest test cases for node create/delete/update API 22482fd Profile API doc part 2 91ffe86 API documentation for profiles (1) 6870cc7 Add tempest tests for receiver create/delete API 2e0cb2e replace logging with oslo.log 9cefbbc Added missing brackets in api microversion docs 23a20a0 Reorg existing tempeset test cases 82ffed9 Updated from global requirements b509e27 API documentation for policy types c572f7e Revert "Add Rally plugin for Senlin tempest" 8d79ba2 Fix cluster scaling operations 9b30710 Add a profile example 897734b Fix warnings in current documentation tree a0e4a4e Fix ref links in user reference docs 16d88ef Add API doc content (1) 7aeef7d api-ref docs site for senlin 24fb363 Updated from global requirements d9df44a Add Rally plugin for Senlin tempest 559904d Fix problems in glossary 25e58fa Clarify some guidelines on contribution 7ac89f9 Initial framework for user tutorial doc 2c488fc Reorg user documentation to be references f955807 Release note for the event generation bug fix f66b028 Release note for trust creation concurrency 3d6e77e Release note for API versioning e4e3095 Use with_for_update in cluster_next_index db call 3b04d37 Rename tempest_tests to tempest 09ab723 Catch DBDuplicateEntry Error during cred_create 1937b50 Updated from global requirements 14960bf Add a tutorial for creation of senlin cluster from heat template df6cab9 Add a TODO item (unexpected attribute) 09db3f1 Add unit test for event module (1) 519987f Remove duplicated keys in the dict e6856b2 Fixed typos in the Mitaka Series Release Notes 188799b Reorganize profile example dir d166833 Initial tempest plugin framework bac99f7 Updated from global requirements d89910d Define context.roles with base class 232c830 [doc] Removed the invalid link for Module Index 06b51d5 Add senlin-dashboard in doc/source/overview.rst c153bc4 Fix event generation 5866a18 Remove concurrency constraint for functional tests 8973ef6 Updated from global requirements 2fae4eb Correct test case test_profile_create_with_bad_type abcca1a Remove duplicated keys in the dict c7a438e Updated from global requirements 956b7e8 Use the new enginefacade from oslo.db 38adbe4 Fix create profile API interface f2cd784 Add NoneType protection for ex.response in sdk.py 40cc0db Developer doc for API microversioning c6d31be Re-enable E402 check 5cac375 Fix minor typo in senlin project cf56ff4 Support security_groups in nova profile 092434c Refactor do_create for nova profile d6c96d0 More test case for method with diff versions 9742996 Add hacking rule for api_version 5a2c385 Fix typos in Senlin files e0e5250 Add support to 'latest' version 0487c1f Modify location to point to action a482de0 Rework senlin docs based on CLI changes b40ec20 Refactor API version range support 668d2a6 Add API version header in responses 933dff7 Add global API version check for micronversion 5043f88 Add versioned method support 7b4be88 Make version resource a subclass of Controller 73d0b13 Set API version request on request objects c7ca07e Move middleware filter resources cfe732b Add version request object 54b749d Add health policy example 05667bb Reorg unit tests for API 4c4357c Complete functional test of cluster_membership ab8ced2 Update reno for stable/mitaka Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 + CONTRIBUTING.rst | 67 +- FEATURES.rst | 68 +- HACKING.rst | 2 + TODO.rst | 34 +- api-ref/source/actions.inc | 137 ++ api-ref/source/build_info.inc | 50 + api-ref/source/cluster_policies.inc | 111 + api-ref/source/clusters.inc | 885 ++++++++ api-ref/source/conf.py | 232 +++ api-ref/source/events.inc | 125 ++ api-ref/source/index.rst | 21 + api-ref/source/nodes.inc | 419 ++++ api-ref/source/parameters.yaml | 1233 +++++++++++ api-ref/source/policies.inc | 341 ++++ api-ref/source/policy_types.inc | 92 + api-ref/source/profile_types.inc | 92 + api-ref/source/profiles.inc | 337 +++ api-ref/source/receivers.inc | 242 +++ api-ref/source/samples/action-get-response.json | 21 + api-ref/source/samples/actions-list-response.json | 46 + api-ref/source/samples/build-show-response.json | 10 + .../source/samples/cluster-add-nodes-request.json | 8 + .../samples/cluster-attach-policy-request.json | 6 + .../samples/cluster-attrs-list-response.json | 16 + api-ref/source/samples/cluster-check-request.json | 3 + api-ref/source/samples/cluster-create-request.json | 11 + .../source/samples/cluster-create-response.json | 24 + .../source/samples/cluster-del-nodes-request.json | 8 + .../samples/cluster-detach-policy-request.json | 5 + api-ref/source/samples/cluster-list-response.json | 26 + .../samples/cluster-policies-list-response.json | 22 + .../samples/cluster-policy-show-response.json | 11 + .../source/samples/cluster-recover-request.json | 3 + api-ref/source/samples/cluster-resize-request.json | 9 + .../source/samples/cluster-scale-in-request.json | 5 + .../source/samples/cluster-scale-out-request.json | 5 + api-ref/source/samples/cluster-show-response.json | 24 + .../samples/cluster-update-policy-request.json | 6 + api-ref/source/samples/cluster-update-request.json | 8 + .../source/samples/cluster-update-response.json | 24 + api-ref/source/samples/clusters-list-response.json | 30 + api-ref/source/samples/event-show-response.json | 16 + api-ref/source/samples/events-list-response.json | 18 + api-ref/source/samples/node-check-request.json | 3 + api-ref/source/samples/node-create-request.json | 9 + api-ref/source/samples/node-create-response.json | 22 + api-ref/source/samples/node-list-response.json | 24 + api-ref/source/samples/node-recover-request.json | 5 + api-ref/source/samples/node-show-response.json | 22 + api-ref/source/samples/node-update-request.json | 5 + api-ref/source/samples/policy-create-request.json | 17 + api-ref/source/samples/policy-create-response.json | 26 + api-ref/source/samples/policy-list-response.json | 26 + api-ref/source/samples/policy-show-response.json | 26 + .../source/samples/policy-type-show-response.json | 55 + .../source/samples/policy-types-list-response.json | 25 + api-ref/source/samples/policy-update-request.json | 5 + api-ref/source/samples/policy-update-response.json | 24 + api-ref/source/samples/profile-create-request.json | 24 + .../source/samples/profile-create-response.json | 31 + api-ref/source/samples/profile-list-response.json | 30 + api-ref/source/samples/profile-show-response.json | 28 + .../source/samples/profile-type-show-response.json | 61 + .../samples/profile-types-list-response.json | 10 + api-ref/source/samples/profile-update-request.json | 6 + .../source/samples/profile-update-response.json | 28 + .../source/samples/receiver-create-request.json | 11 + .../source/samples/receiver-create-response.json | 25 + api-ref/source/samples/receiver-show-response.json | 25 + .../source/samples/receivers-list-response.json | 27 + api-ref/source/samples/version-show-response.json | 23 + api-ref/source/samples/versions-list-response.json | 27 + api-ref/source/status.yaml | 61 + api-ref/source/versions.inc | 98 + api-ref/source/webhooks.inc | 43 + devstack/README.rst | 11 +- devstack/lib/senlin | 17 +- .../user/scenarios/autoscaling_ceilometer.rst | 272 +++ etc/senlin/api-paste.ini | 10 +- etc/senlin/policy.json | 4 + examples/policies/WIP/health_policy_poll.yaml | 28 - examples/policies/deletion_policy.yaml | 4 +- examples/policies/health_policy_poll.yaml | 28 + examples/policies/lb_policy.yaml | 16 +- examples/profiles/README.rst | 28 + examples/profiles/cirros_basic/nova_server.yaml | 9 - .../profiles/docker_container/docker_basic.yaml | 11 + .../nova_server/heat_stack_nova_server.yaml | 9 + .../nova_server/nova_server_template.yaml | 56 + .../random_string/heat_stack_random_string.yaml | 7 + .../random_string/random_string_template.yaml | 13 + examples/profiles/nova_server/cirros_basic.yaml | 14 + examples/profiles/simple_stack/README.rst | 23 - examples/profiles/simple_stack/env.yaml | 2 - .../simple_stack/heat_stack_random_string.yaml | 9 - .../profiles/simple_stack/random_string_stack.yaml | 13 - examples/profiles/simple_stack/test_script.sh | 3 - rally-jobs/README.rst | 11 + rally-jobs/plugins/senlin_plugin.py | 106 + rally-jobs/senlin-senlin.yaml | 62 + .../notes/404-return-code-e3cf3b6fb47a56fe.yaml | 3 - .../abandon-soft-delete-bb739b497ceeecce.yaml | 7 - .../action-filter-status-156542bfcb54e0e5.yaml | 3 - .../action-multi-tenancy-8d2f4e462b3d0c9b.yaml | 3 - .../action-status-check-fe5d7ccbc18e317e.yaml | 4 - .../notes/affinity-attach-e98079133d46ba78.yaml | 3 - .../notes/affinity-policy-c7dcb2e5fca6354b.yaml | 4 - .../affinity-policy-fix-72ae92dc8ffcff00.yaml | 3 + .../api-endpoint-tenant-ad58b556855e2806.yaml | 4 - .../notes/api-ref-fixes-19bc963430c32ecf.yaml | 4 + .../notes/batch-scheduling-ca5d98d41fc72973.yaml | 6 + .../capacity-calculation-4fd389ff12107dfb.yaml | 6 + .../check-recover-actions-27eef16643b23f47.yaml | 3 - .../notes/check-recover-apis-ea751a9c52736d67.yaml | 3 - .../notes/cluster-collect-90e460c7bfede347.yaml | 3 + .../cluster-delete-conflict-94261706eb29e9bb.yaml | 5 + .../cluster-desired-capacity-d876347f69b04b4f.yaml | 6 + .../cluster-node-dependents-3bdbebd773d276d1.yaml | 4 + .../cluster-node-status-e7fced162b415452.yaml | 3 + .../notes/cluster-quota-ab3dc57d61ea88bb.yaml | 3 - .../cluster-resizing-status-ca19571502cc0958.yaml | 3 - .../cluster-status-update-dd9133092aef05ab.yaml | 5 + .../compute-instance-fencing-63b931cdf35b127c.yaml | 4 + .../notes/config-doc-cb8b37e360422301.yaml | 4 + .../notes/container-profile-152bf2908c70ffad.yaml | 5 + .../notes/db-isolation-level-3d61148ffdd3a91c.yaml | 4 - .../notes/default-min-max-5d047c7cf9d98b71.yaml | 4 - .../delete-x-region-zone-fccfa2a35a05caad.yaml | 4 - .../deletion-policy-doc-e7e95f260b7a2470.yaml | 3 - ...letion-policy-node-delete-dc70da377b2a4f77.yaml | 4 + releasenotes/notes/doc-fixes-cd8c7006f8c66387.yaml | 3 + .../engine-service-race-ba9f2f403b88f587.yaml | 3 - .../engine-service-status-d573e021c4f09ed6.yaml | 3 - .../notes/event-filter-level-7d9fd969e4018d77.yaml | 3 - .../event-multi-tenancy-4b2269ae2bbf29c5.yaml | 3 - .../notes/event-table-change-dcb42c8b6d145fec.yaml | 4 + ...xplicit-plugin-versioning-f6dd44ba6bc07ae3.yaml | 4 - .../notes/fix-api-return-202-b9d31250c4d7c624.yaml | 3 - .../notes/fix-cluster-index-ae0060b6337d6d55.yaml | 3 + .../notes/fix-cluster-index-f09523055c286fc7.yaml | 4 - .../notes/fix-cluster-list-32007bfc8354c101.yaml | 5 - .../notes/fix-db-deadlock-1d2bdb9ce785734a.yaml | 4 + .../notes/fix-delete-apis-bf9f47b5fcf8f3e6.yaml | 4 + ...ix-network-error-handling-e78da90b6bc2319c.yaml | 3 + .../notes/fix-node-recover-5af129bf0688577d.yaml | 4 + .../notes/fix-policy-attach-d4c97babcd65e32e.yaml | 3 - .../notes/fix-setup-service-e6207fdc9647e1de.yaml | 3 - .../forbid-cluster-deletion-a8b0f55aaf0aa106.yaml | 4 + .../notes/health-check-3d0f1bcd8e76c9cd.yaml | 4 - .../health-manager-listener-8ddbe169e510031b.yaml | 5 + .../health-policy-properties-056d5b4aa63312c9.yaml | 3 + .../health-policy-suspend-7aa33fc981c0f2c9.yaml | 5 + .../notes/improved-scheduler-579c0cd237f4d792.yaml | 4 - .../notes/lb-based-health-d628938567f5824f.yaml | 3 - .../notes/lb-node-actions-95545338ae622f5c.yaml | 5 + .../notes/lb-timeout-option-990ba1f359b5daab.yaml | 4 + .../notes/lock-breaker-e4c45b2a5d851cef.yaml | 3 - .../notes/message-receiver-3432826515f8e70c.yaml | 4 + .../metadata-query-profile-9c45d99db7b30207.yaml | 4 + .../more-policy-validation-ace6a4f890b2a500.yaml | 4 + .../notes/multi-tenancy-bb6a7288c9c55fd0.yaml | 4 - .../multi-tenancy-in-find-cd1d07daec460b93.yaml | 4 - .../notes/name-uniqueness-d560c2cc2514c24d.yaml | 3 - .../notes/new-api-doc-f21eb0a9f53d7643.yaml | 4 + .../new-sorting-support-f523c272bbec8484.yaml | 3 - .../notes/node-action-logic-4d3e94818cccaa3e.yaml | 5 + .../node-create-affinity-ec126ccd3e9e0957.yaml | 4 + .../notes/node-create-az-d886dea98a25229f.yaml | 4 + .../notes/node-create-region-0cbac0918c703e27.yaml | 4 + .../notes/nova-bdm2-support-e817d5775e466459.yaml | 3 - .../notes/nova-metadata-fix-89b7a2e06c3ce59f.yaml | 3 + .../nova-server-addresses-fd8afddc3fb36a0c.yaml | 5 + .../notes/nova-server-name-c045ba7e72ba0a50.yaml | 3 - .../notes/nova-server-update-1a976bd06b8884c7.yaml | 4 - .../nova-server-validation-60612c1185738104.yaml | 4 + .../nova-server-validation-d36dbcf64fb90a43.yaml | 5 + .../notes/nova-update-opt-7372e4d189e483aa.yaml | 4 + .../nova-update-validation-dca7de984c2071d1.yaml | 4 + .../notes/options-shuffled-29c6cfac72aaf8ff.yaml | 5 + ...-versioned-object-support-cc9463490306c26f.yaml | 4 + .../notes/parameter-checking-d1fc14aee55ba484.yaml | 3 - .../policy-create-check-86bd9b623ee44fcc.yaml | 3 - .../policy-detach-check-5fe6292ec264b24c.yaml | 3 - .../notes/policy-doc-89cfc7288a790379.yaml | 4 - .../policy-update-check-71d71fefe352eaa4.yaml | 3 - .../notes/policy-validate-04cbc74d2c025fcc.yaml | 4 + .../notes/policy-validation-477a103aa83835f9.yaml | 4 + .../notes/profile-updatable-6ee3f9a22f1b81ec.yaml | 3 - .../notes/profile-validate-45a9bc520880bc6b.yaml | 4 + .../notes/publish-api-doc-cc155e01fd66443b.yaml | 3 - .../purge-deleted-support-91ad29b09d75b35a.yaml | 3 - .../receiver-abstraction-e04b40e56c01c15b.yaml | 11 - .../receiver-create-check-2225f536f5150065.yaml | 5 + .../receiver-create-trust-bd5fdeb059e68330.yaml | 3 + .../region-placement-policy-743f8363846567b5.yaml | 3 - .../notes/remove-bdm-v1-4533677f3bca3c5d.yaml | 4 + .../remove-node-actions-eed0c6517ac9bb55.yaml | 3 - .../remove-policy-enable-3ce697e21dec7542.yaml | 4 - .../remove-priority-level-2b0c088f75ca3cf7.yaml | 3 - ...remove-profile-permission-f1257ea4303cb9ac.yaml | 4 - .../remove-trigger-support-c2f36b9b3c08ca99.yaml | 3 - .../removed-show-deleted-83f4b6886b24090e.yaml | 5 - .../rename-timestamp-fields-0921c426cbf13903.yaml | 4 - .../resource-name-underscore-29936ac9026e9c35.yaml | 4 - .../revise-profile-update-59fdf617e51f7927.yaml | 4 - .../rework-action-dependency-da689dfeccd14e17.yaml | 6 - .../scheduler-enhancement-09f86efe4dde4051.yaml | 3 + .../script-entry-points-85e225cc2cea7b68.yaml | 3 - .../notes/secure-password-e60243ae2befbbf6.yaml | 4 + .../senlin-manage-service-c86fca39fd1467b0.yaml | 5 - .../notes/service-cleanup-afacddfacd7b4dcd.yaml | 4 + .../service-status-report-625bc25b89907e07.yaml | 4 + ...age-update-of-nova-server-bb2f7cdaa7fe883b.yaml | 3 - .../support-network-update-7d576a52e4f894d6.yaml | 3 - .../support-nova-image-find-8f66ea48e127873c.yaml | 4 - .../tempest-api-test-support-c86091a7ba5fb789.yaml | 4 + .../tempest-functional-test-383dad4d9acff97e.yaml | 3 + .../notes/template-url-19075b68d9a35a80.yaml | 3 + .../notes/tools-setup-d73e3298328c5355.yaml | 4 + .../notes/trust-id-usage-ca1196ae51b7fa04.yaml | 4 - .../notes/user-doc-added-b06635d9f6757dab.yaml | 3 - .../user-docs-published-84bae5b780e6cb52.yaml | 3 - .../notes/zaqar-support-470e824b7737e939.yaml | 4 + releasenotes/source/index.rst | 2 + releasenotes/source/mitaka.rst | 6 + releasenotes/source/newton.rst | 6 + requirements.txt | 34 +- senlin/api/common/serializers.py | 4 +- senlin/api/common/util.py | 3 +- senlin/api/common/version_request.py | 100 + senlin/api/common/versioned_method.py | 34 + senlin/api/common/wsgi.py | 178 +- senlin/api/middleware/__init__.py | 37 + senlin/api/middleware/fault.py | 16 +- senlin/api/middleware/trust.py | 11 +- senlin/api/middleware/version_negotiation.py | 147 +- senlin/api/openstack/__init__.py | 46 - senlin/api/openstack/history.rst | 30 + senlin/api/openstack/v1/cluster_policies.py | 8 + senlin/api/openstack/v1/clusters.py | 21 +- senlin/api/openstack/v1/nodes.py | 3 +- senlin/api/openstack/v1/policies.py | 16 + senlin/api/openstack/v1/profiles.py | 30 +- senlin/api/openstack/v1/receivers.py | 24 +- senlin/api/openstack/v1/router.py | 27 +- senlin/api/openstack/v1/version.py | 70 +- senlin/api/openstack/versions.py | 39 +- senlin/cmd/engine.py | 4 +- senlin/cmd/manage.py | 17 +- senlin/common/config.py | 143 +- senlin/common/consts.py | 21 +- senlin/common/context.py | 22 +- senlin/common/exception.py | 146 +- senlin/common/messaging.py | 43 +- senlin/common/scaleutils.py | 44 +- senlin/common/schema.py | 146 +- senlin/common/utils.py | 78 +- senlin/db/api.py | 40 +- senlin/db/sqlalchemy/api.py | 1007 +++++---- senlin/db/sqlalchemy/migrate_repo/manage.py | 13 + .../migrate_repo/versions/001_first_version.py | 14 +- .../migrate_repo/versions/005_event_column_name.py | 23 + .../versions/006_node_cluster_dependents_column.py | 28 + senlin/db/sqlalchemy/models.py | 22 +- senlin/db/sqlalchemy/types.py | 20 + senlin/db/sqlalchemy/utils.py | 20 +- senlin/drivers/base.py | 3 +- senlin/drivers/container/__init__.py | 0 senlin/drivers/container/docker_v1.py | 32 + senlin/drivers/openstack/__init__.py | 2 + senlin/drivers/openstack/heat_v1.py | 18 + senlin/drivers/openstack/keystone_v3.py | 67 +- senlin/drivers/openstack/lbaas.py | 46 +- senlin/drivers/openstack/neutron_v2.py | 63 +- senlin/drivers/openstack/nova_v2.py | 162 +- senlin/drivers/openstack/sdk.py | 8 +- senlin/drivers/openstack/zaqar_v2.py | 45 + senlin/engine/actions/base.py | 100 +- senlin/engine/actions/cluster_action.py | 507 +++-- senlin/engine/actions/node_action.py | 159 +- senlin/engine/cluster.py | 190 +- senlin/engine/cluster_policy.py | 51 +- senlin/engine/dispatcher.py | 5 +- senlin/engine/environment.py | 8 +- senlin/engine/event.py | 98 +- senlin/engine/health_manager.py | 294 ++- senlin/engine/node.py | 290 +-- senlin/engine/receiver.py | 208 -- senlin/engine/receivers/__init__.py | 0 senlin/engine/receivers/base.py | 253 +++ senlin/engine/receivers/message.py | 279 +++ senlin/engine/receivers/webhook.py | 61 + senlin/engine/registry.py | 17 +- senlin/engine/scheduler.py | 73 +- senlin/engine/senlin_lock.py | 57 +- senlin/engine/service.py | 828 +++++--- senlin/hacking/checks.py | 27 + senlin/locale/senlin.pot | 2009 ------------------ .../zh_CN/LC_MESSAGES/senlin-log-critical.po | 19 + .../locale/zh_CN/LC_MESSAGES/senlin-log-error.po | 191 ++ .../locale/zh_CN/LC_MESSAGES/senlin-log-warning.po | 64 + senlin/objects/__init__.py | 33 + senlin/objects/action.py | 125 ++ senlin/objects/base.py | 87 + senlin/objects/cluster.py | 88 + senlin/objects/cluster_lock.py | 40 + senlin/objects/cluster_policy.py | 85 + senlin/objects/credential.py | 53 + senlin/objects/dependency.py | 40 + senlin/objects/event.py | 64 + senlin/objects/fields.py | 214 ++ senlin/objects/health_registry.py | 47 + senlin/objects/node.py | 93 + senlin/objects/node_lock.py | 39 + senlin/objects/notification.py | 137 ++ senlin/objects/policy.py | 73 + senlin/objects/profile.py | 73 + senlin/objects/receiver.py | 66 + senlin/objects/requests/__init__.py | 0 senlin/objects/requests/clusters.py | 35 + senlin/objects/service.py | 58 + senlin/policies/affinity_policy.py | 72 +- senlin/policies/base.py | 171 +- senlin/policies/batch_policy.py | 2 +- senlin/policies/deletion_policy.py | 30 +- senlin/policies/health_policy.py | 122 +- senlin/policies/lb_policy.py | 122 +- senlin/policies/region_placement.py | 56 +- senlin/policies/scaling_policy.py | 9 +- senlin/policies/zone_placement.py | 55 +- senlin/profiles/base.py | 234 ++- senlin/profiles/container/__init__.py | 0 senlin/profiles/container/docker.py | 299 +++ senlin/profiles/os/heat/stack.py | 246 ++- senlin/profiles/os/nova/server.py | 1000 +++++---- senlin/rpc/client.py | 51 +- .../functional/drivers/openstack/neutron_v2.py | 37 - .../api/actions/test_action_list_negative.py | 27 + .../api/actions/test_action_show_negative.py | 27 + .../api/api_versions/test_api_version_show.py | 31 + .../api_versions/test_api_version_show_negative.py | 26 + .../api/api_versions/test_api_versions_list.py | 35 + .../tempest/api/build_info/test_build_info.py | 29 + .../cluster_policies/test_cluster_policy_list.py | 49 + .../test_cluster_policy_list_negative.py | 38 + .../cluster_policies/test_cluster_policy_show.py | 48 + .../test_cluster_policy_show_negative.py | 99 + .../tempest/api/clusters/test_cluster_action.py | 324 +++ .../api/clusters/test_cluster_action_negative.py | 1003 +++++++++ .../tempest/api/clusters/test_cluster_create.py | 70 + .../api/clusters/test_cluster_create_negative.py | 81 + .../tempest/api/clusters/test_cluster_delete.py | 39 + .../api/clusters/test_cluster_delete_negative.py | 78 + .../tempest/api/clusters/test_cluster_list.py | 48 + .../api/clusters/test_cluster_list_negative.py | 27 + .../tempest/api/clusters/test_cluster_show.py | 43 + .../api/clusters/test_cluster_show_negative.py | 49 + .../tempest/api/clusters/test_cluster_update.py | 55 + .../api/clusters/test_cluster_update_negative.py | 148 ++ .../api/clusters/test_cluster_update_profile.py | 62 + .../tempest/api/events/test_event_list_negative.py | 27 + .../tempest/api/events/test_event_show_negative.py | 27 + .../tempest/api/nodes/test_node_action_negative.py | 93 + .../tempest/api/nodes/test_node_create_negative.py | 104 + .../tempest/api/nodes/test_node_delete_negative.py | 50 + .../tempest/api/nodes/test_node_list_negative.py | 27 + .../tempest/api/nodes/test_node_show_negative.py | 47 + .../tempest/api/nodes/test_node_update_negative.py | 148 ++ .../tempest/api/nodes/test_node_update_profile.py | 60 + .../tempest/api/policies/test_policy_create.py | 47 + .../api/policies/test_policy_create_negative.py | 94 + .../tempest/api/policies/test_policy_delete.py | 31 + .../api/policies/test_policy_delete_negative.py | 73 + .../api/policies/test_policy_list_negative.py | 27 + .../api/policies/test_policy_show_negative.py | 45 + .../tempest/api/policies/test_policy_update.py | 42 + .../api/policies/test_policy_update_negative.py | 68 + .../tempest/api/policies/test_policy_validate.py | 44 + .../api/policies/test_policy_validate_negative.py | 74 + .../api/policy_types/test_policy_type_list.py | 29 + .../api/policy_types/test_policy_type_show.py | 30 + .../policy_types/test_policy_type_show_negative.py | 28 + .../api/profile_types/test_profile_type_list.py | 34 + .../api/profile_types/test_profile_type_show.py | 30 + .../test_profile_type_show_negative.py | 28 + .../tempest/api/profiles/test_profile_create.py | 45 + .../api/profiles/test_profile_create_negative.py | 94 + .../tempest/api/profiles/test_profile_delete.py | 31 + .../api/profiles/test_profile_delete_negative.py | 65 + .../tempest/api/profiles/test_profile_list.py | 41 + .../api/profiles/test_profile_list_negative.py | 27 + .../tempest/api/profiles/test_profile_show.py | 37 + .../api/profiles/test_profile_show_negative.py | 45 + .../tempest/api/profiles/test_profile_update.py | 44 + .../api/profiles/test_profile_update_negative.py | 66 + .../tempest/api/profiles/test_profile_validate.py | 39 + .../api/profiles/test_profile_validate_negative.py | 76 + .../tempest/api/receivers/test_receiver_create.py | 55 + .../api/receivers/test_receiver_create_negative.py | 103 + .../tempest/api/receivers/test_receiver_delete.py | 38 + .../api/receivers/test_receiver_delete_negative.py | 56 + .../tempest/api/receivers/test_receiver_list.py | 48 + .../api/receivers/test_receiver_list_negative.py | 27 + .../tempest/api/receivers/test_receiver_show.py | 44 + .../api/receivers/test_receiver_show_negative.py | 55 + .../tempest/api/receivers/test_webhook_trigger.py | 48 + .../tempest/functional/test_cluster_membership.py | 92 + .../tempest/functional/test_cluster_scaling.py | 241 +++ .../tempest/functional/test_scaling_policy.py | 130 ++ .../tempest/integration/test_heat_stack_cluster.py | 53 + .../integration/test_nova_server_cluster.py | 70 + .../unit/api/middleware/policy/check_admin.json | 3 + .../unit/api/middleware/policy/notallowed.json | 10 + .../unit/api/middleware/test_middleware_filters.py | 93 + .../api/middleware/test_version_negotiation.py | 243 +++ .../unit/api/openstack/v1/test_cluster_policies.py | 181 ++ .../unit/api/openstack/v1/test_policy_types.py | 113 ++ .../unit/api/openstack/v1/test_profile_types.py | 115 ++ .../unit/engine/actions/test_cluster_action.py | 2144 ++++++++++---------- .../unit/engine/service/test_cluster_policies.py | 63 +- .../unit/engine/service/test_profile_types.py | 6 +- .../unit/middleware/test_context_middleware.py | 123 -- .../unit/middleware/test_openstack_filters.py | 101 - .../unit/middleware/test_version_middleware.py | 140 -- .../unit/middleware/test_webhook_middleware.py | 167 -- .../unit/policies/test_region_placement_policy.py | 383 ---- .../unit/policies/test_zone_placement_policy.py | 370 ---- .../unit/profiles/test_nova_server_validate.py | 679 +++++++ setup.cfg | 13 +- test-requirements.txt | 21 +- tools/config-generator.conf | 4 +- tools/cover.sh | 78 + tools/setup-service | 22 +- tox.ini | 39 +- 700 files changed, 46135 insertions(+), 22010 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a53586c..7929138 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +6,2 @@ pbr>=1.6 # Apache-2.0 -Babel>=1.3 # BSD +Babel>=2.3.4 # BSD +docker-py<1.8.0,>=1.6.0 # Apache-2.0 @@ -8,5 +9,7 @@ eventlet!=0.18.3,>=0.18.2 # MIT -keystonemiddleware!=4.1.0,>=4.0.0 # Apache-2.0 -openstacksdk>=0.8.1 # Apache-2.0 -oslo.config>=3.7.0 # Apache-2.0 -oslo.context>=0.2.0 # Apache-2.0 -oslo.db>=4.1.0 # Apache-2.0 +jsonpath-rw<2.0,>=1.2.0 # Apache-2.0 +keystonemiddleware!=4.5.0,>=4.2.0 # Apache-2.0 +microversion-parse>=0.1.2 # Apache-2.0 +openstacksdk>=0.9.7 # Apache-2.0 +oslo.config>=3.14.0 # Apache-2.0 +oslo.context>=2.9.0 # Apache-2.0 +oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0 @@ -14,2 +17,2 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.log>=1.14.0 # Apache-2.0 -oslo.messaging>=4.0.0 # Apache-2.0 +oslo.log>=3.11.0 # Apache-2.0 +oslo.messaging>=5.2.0 # Apache-2.0 @@ -17 +20 @@ oslo.middleware>=3.0.0 # Apache-2.0 -oslo.policy>=0.5.0 # Apache-2.0 +oslo.policy>=1.14.0 # Apache-2.0 @@ -19,2 +22,3 @@ oslo.serialization>=1.10.0 # Apache-2.0 -oslo.service>=1.0.0 # Apache-2.0 -oslo.utils>=3.5.0 # Apache-2.0 +oslo.service>=1.10.0 # Apache-2.0 +oslo.utils>=3.16.0 # Apache-2.0 +oslo.versionedobjects>=1.13.0 # Apache-2.0 @@ -25,3 +29,3 @@ qpid-python;python_version=='2.7' # Apache-2.0 -requests!=2.9.0,>=2.8.1 # Apache-2.0 -Routes!=2.0,!=2.1,>=1.12.3;python_version=='2.7' # MIT -Routes!=2.0,>=1.12.3;python_version!='2.7' # MIT +requests>=2.10.0 # Apache-2.0 +Routes!=2.0,!=2.1,!=2.3.0,>=1.12.3;python_version=='2.7' # MIT +Routes!=2.0,!=2.3.0,>=1.12.3;python_version!='2.7' # MIT @@ -31 +35 @@ sqlalchemy-migrate>=0.9.6 # Apache-2.0 -stevedore>=1.5.0 # Apache-2.0 +stevedore>=1.16.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 05f5b50..7accf98 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7,2 +7 @@ coverage>=3.6 # Apache-2.0 -discover # BSD -flake8<2.6.0,>2.4.1 # MIT +flake8<2.6.0,>=2.5.4 # MIT @@ -10,4 +9,2 @@ hacking<0.11,>=0.10.2 -mock>=1.2 # BSD -mox>=0.5.3 # Apache-2.0 -mox3>=0.7.0 # Apache-2.0 -openstackdocstheme>=1.0.3 # Apache-2.0 +mock>=2.0 # BSD +openstackdocstheme>=1.5.0 # Apache-2.0 @@ -15,2 +12,3 @@ oslotest>=1.10.0 # Apache-2.0 -os-testr>=0.4.1 # Apache-2.0 -PyMySQL>=0.6.2 # MIT License +os-testr>=0.7.0 # Apache-2.0 +PyMySQL!=0.7.7,>=0.6.2 # MIT License +tempest>=12.1.0 # Apache-2.0 @@ -22,3 +20,4 @@ testtools>=1.4.0 # MIT -oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD -reno>=0.1.1 # Apache2 +os-api-ref>=1.0.0 # Apache-2.0 +oslosphinx>=4.7.0 # Apache-2.0 +sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +reno>=1.8.0 # Apache2