summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Allow scale-down of ASG as part of update" into stable/queensqueens-eolstable/queensZuul2020-07-274-39/+54
|\
| * Allow scale-down of ASG as part of updateRabi Mishra2020-05-294-39/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When user wants to do manual scale-up of ASG by increasing the desired_capacity and also update some member properties as part of a stack update, if it fails due to insufficient resources when resizing, trying to manually scale-down by decreasing the desired_capacity won't work, as it would always expect to update the group with the earlier size before scaling down. This patch uses the target_size when building the batches. Conflicts: heat/engine/resources/openstack/heat/instance_group.py heat/tests/openstack/heat/test_instance_group_update_policy.py Task: 39867 Change-Id: Id851530b424f68b5e0e967fe34431483bfffd852 (cherry picked from commit 26d8f64fc90ed9b3ad0413ed0c932fb91b51d666)
* | Merge before/after 'requires' list on update failureZane Bitter2020-07-242-41/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an update of a resource fails, its 'requires' should be set to a union of the previous and new requires lists. This is because if the resource depends on a resource that has been replaced in this stack update, we can't know if the current resource now depends on the new or old version of the replaced resource if the current resource failed. This is achieved by splitting up the setting of 'requires' and 'current_template_id', and changing them directly in the update() method instead of via a callback. When the resource state is changed to UPDATE_IN_PROGRESS, the new requirements are added to the old ones. When the state is changed to UPDATE_COMPLETE, the new requirements replace the old ones altogether. If the update fails or handle_update() raises UpdateReplace, the union of the requirements is kept. If _needs_update() raises UpdateReplace, the old requirements are kept. The current_template_id is updated when the state is changed to either UPDATE_COMPLETE or UPDATE_FAILED, or when no update is required (_needs_update() returns False). This also saves an extra database write when the update fails. Change-Id: If70d457fba5c64611173e3f9a0ae6b155ec69e06 Closes-Bug: #1663388 (cherry picked from commit e649574d4751ffd8578f63787621c3a26d383a34)
* | [stable/queens] Fix py35 job by pinning gnocchi versionRabi Mishra2020-07-241-0/+3
|/ | | | | | | | | | | | | | Ceilometer uses gnocchi as the default backend and the ceilometer devstack plugin installs gnocchi from master. This results in conflict as upper-constraints for pbr for stable/queens is very old. Let's workaround this by setting GNOCCHI_GIT_PATH to unlblock gate. Task: 40437 Change-Id: Iab53f4c2a14757e5ceea85c15bade4581385616a
* Merge "Handle OS::Mistral::Workflow resource replacement properly" into ↵Zuul2020-03-103-23/+87
|\ | | | | | | stable/queens
| * Handle OS::Mistral::Workflow resource replacement properlyRabi Mishra2020-03-053-23/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OS::Mistral::Workflow resource creates a mistral workflow with a unique name (resource_id). We replace FAILED resources by default and replace wont work in this case as it will try to use the same workflow name for the replacement resouce, if the 'name' property is provided. If the workflow does not exist/deleted using mistral api directly, it would create a replacement resource, but it would delete the workflow when cleaning up the old resource. So we would endup with a replacement resource without any backing workflow. This adds a new resource attribute ``always_replace_on_check_failed`` and overrides needs_replace_failed() for OS::Mistral::Workflow. Note: This also removes the mocking of mistra_base, that was removed from stable/rocky with 714d9eea4c871cfc979664cc8fc846cc02fba798. Task: 38855 Change-Id: Ia0812b88cae363dfa25ccd907ecbe8b86f5b1a23 (cherry picked from commit 9e80518b900a1f14a80ee05ddeef4b250433febd)
* | Merge "Ignore Not Found when deleting Keystone role assignment" into ↵Zuul2020-03-091-2/+4
|\ \ | |/ |/| | | stable/queens
| * Ignore Not Found when deleting Keystone role assignmentZane Bitter2020-02-271-2/+4
| | | | | | | | | | | | | | | | | | If the project has already been deleted, don't let that prevent role assignments on it from being deleted. Change-Id: I56aede8209e425ee6c2d762a44db8cda5416e69b Task: 30955 (cherry picked from commit 8c67437378ca505c5752cee0d862d806ca11c3a0)
* | Use stable constraint and update fedora mirrorricolin2020-02-275-15/+56
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | Stable branches till stable/rocky is using python version <py3.6. Tempest test those branch in venv but Tempest tox use the master upper-constraint[1] which block installation due to dependencies require >=py3.6. For exmaple, oslo.concurrency 4.0.0 is not compatible for <py3.6. As we pin Tempest for EM stable brach, we should be able to use stable constraint for Tempest installation as well as while running during run-tempest playbook. tox.ini is hard coded to use master constraint[1] which force run-tempest to recreate the tox env and use the master constraint. Fix for that- https://review.opendev.org/#/c/705870/ [1] https://opendev.org/openstack/tempest/src/commit/bc9fe8eca801f54915ff3eafa418e6e18ac2df63/tox.ini#L14 Update pre-upgrade tests set to alias with ocata grenade tests Also update Fedora image ref for test jobs. Fedora-Cloud-Base-29-1.2.x86_64 is removed from openstack local mirro. Update to use Fedora-Cloud-Base-30-1.2.x86_64 for test jobs. Change-Id: I12e52dcbe306fda7d3b8f28d3b3a25c4c741884f
* Merge "Correct availability_zone to be non-mandatory in heat" into stable/queensZuul2020-01-142-1/+8
|\
| * Correct availability_zone to be non-mandatory in heatDavid J Peacock2020-01-142-1/+8
| | | | | | | | | | | | | | | | | | | | | | As per CLI and GUI, availability_zone is not mandatory. In templates, it is. This is incorrect. This patch corrects behaviour to match CLI and GUI. Change-Id: Ice37340f084ea65bd4b46562145e82ede6bc0df5 Story: 2006586 (cherry picked from commit 2799a5fcd76639a202092ea1b6fc242a8886dc56)
* | Correct BRANCH_OVERRIDE for stable/queensricolin2020-01-091-0/+1
| | | | | | | | | | | | | | Story: #2007061 Task: #37918 Change-Id: Ie98f182b8d92136f39f1855b95232d368232363a
* | Merge "Add retries when loading keystone data and fetching endpoints" into ↵Zuul2019-11-152-0/+15
|\ \ | | | | | | | | | stable/queens
| * | Add retries when loading keystone data and fetching endpointsRabi Mishra2019-10-232-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We may end up loading lots of nested stacks concurrently with convergence and those would try to discover endpoints and fetch access info objects from keystone. This at times results in ConnectTimeout errors from keystone. We can avoid these errors by adding some retries. Also adds retries to client_plugin get_endpoint() calls, which has simillar issue. Change-Id: I18cde971248eff5783f97c9e7a60316d7dd93431 Task: 36349 (cherry picked from commit 6fb8ac250ae27810516b89f273923d6b786606b5)
* | | Do deepcopy when copying templatesrabi2019-10-311-3/+4
|/ / | | | | | | | | | | | | | | | | test_template is defined as a dict, so do a deepcopy instead. Change-Id: I0f7d222d5f95aa8e8ed73ae0d7a100470271e113 Closes-Bug: #1766448 (cherry picked from commit 685f95b49de6800d8ed6eebeb32ea3a1dc64fc26)
* | Merge "Use connect_retries when creating clients" into stable/queensZuul2019-10-1513-1/+26
|\ \
| * | Use connect_retries when creating clientsRabi Mishra2019-08-2813-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When creating session clients we should use 'connect_retries' for clients that use Adapter interface. This will allow retries when we get ConnectTimeout errors. Task: 36331 Change-Id: Ic526c8039c91353e772eee7b55f1d263470c86bb (cherry picked from commit 364716725a4767f8d9e3e5e1c76ecf4f969a6613 and c7cc740f307ce8ffdf36c29094c9cbce5a6c8d14)
* | | Add entry_point for oslo policy scriptsRabi Mishra2019-09-262-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the setup.cfg entry it can be called directly from oslo.policy. $oslopolicy-policy-generator --namespace heat This will get the effective policy that’s being executed. Change-Id: Iad2e71819f4847f47dd17d3cd4afa78e6b3f52a7 Story: #2005055 Task: 29573 (cherry picked from commit 5bdcaeff018782a956fd8228e04ddd2169c353c6)
* | | Unlimited cinder quotas throws exceptionNakul Dahiwade2019-09-232-2/+22
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | Cinder-quota-resource is supposed to support a value of -1 to indicate an unlimited quota for a particular key (volumes, gigabytes or snapshots). However the implementation had an iterator error (you cannot modify a dict as you are iterating over it) and no unit tests to expose that bug. This commit fixes the issue. Change-Id: Iea28fdc38c51df5e87e6957a6e4797feea9057ee Story: 2002550 Task: 22112 (cherry picked from commit 5c2627af9e9ae02ea09de2d9eae285402ccae8cd)
* | Add retry for sync_point_update_input_dataRabi Mishra2019-08-201-0/+2
|/ | | | | | | | | update_input_data in sync_point.sync() at times fails with DBDeadlock. Let's add retry like sync_point_create() Change-Id: Id4468801bcffa7a704d90d2e190ec8dbb9a0a00b Task: 36299 (cherry picked from commit ba9c42b9eb33b98ef68bea8d47852cfe54977b4d)
* Merge "Do not perform the tenant stack limit check for admin user" into ↵Zuul2019-08-081-5/+7
|\ | | | | | | stable/queens
| * Do not perform the tenant stack limit check for admin userNakul Dahiwade2019-07-261-5/+7
| | | | | | | | | | | | | | | | | | | | | | Removing stack creation limit for admin since admin can view all stacks, and stacks created by other tenants would have been counted in the limit check. Change-Id: Ie2e9251245e7e16309661154e17724e5984c21e6 Story: 2003487 Task: 24756 (cherry picked from commit 22b14ff975f885c26b861d4d1b22577cca189e04)
* | Merge "Show an engine as down if service record is not updated twice" into ↵Zuul2019-08-082-14/+10
|\ \ | | | | | | | | | stable/queens
| * | Show an engine as down if service record is not updated twiceRabi Mishra2019-07-292-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use the same periodic_interval to update the service record and compare it with current time when doing 'service list'. So, It's possible there will be a small window where 'service list' would show the engine as down. Tools that use service list for monitoring would wrongly assume the service as down. Let's change service list to report the service as down if it's not updated in 2*periodic_interval. Change-Id: I0f6a30e06bb214bb673930b31a2db946600926b0 Task: 35946 (cherry picked from commit fd23308f6ec20e4441d8da486a4f6930a2ba366d)
* | | Merge "Allow update of previously-replaced resources" into stable/queensZuul2019-08-052-9/+1
|\ \ \
| * | | Allow update of previously-replaced resourcesZane Bitter2019-07-292-9/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The convergence prototype ignored checks of resources that had previously been replaced by another resource. However, it turns out that this was unnecessary in the final version of the prototype: https://github.com/zaneb/heat-convergence-prototype/commit/e9d2f833a53de1ab09e7d936a4826d36ed7bb68d Keeping this limitation prevents us from allowing users to roll back to a previously-existing resource if creating the replacement fails, other than by using the automated rollback mechanism (which is special-cased). Since the graph for the traversal is calculated at the start of the update, there's no need to limit which nodes are allowed to be checked. Only the selected resource will have an is_update=True node in the traversal graph. Removing this additional restriction allows us to improve the algorithm that chooses which resource to update. Since a new traversal ID is stored before we calculate the traversal graph, we can guarantee that no new resource checks will start (though some may still be happening) while the algorithm is choosing, so there's no danger of it picking a resource that later gets replaced. Since we're no longer treating automatic rollback as a special case, reset the replaced_by field whenever we update a previously-replaced resource. Change-Id: I04e7ad90944c2d03ce0e59ba16af9d60d6e01222 Story: #2003579 Task: 26197 (cherry picked from commit e34da892901dbba709d3854f8979eee32594d916)
* | | Merge "Use no-op drivers for Octavia in gate" into stable/queensZuul2019-08-053-7/+4
|\ \ \
| * | | Use no-op drivers for Octavia in gateZane Bitter2019-08-043-7/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | Continue to test Heat's interaction with the Octavia API without relying on Octavia's interaction with Nova, Neutron &c. which is known to be unstable. Change-Id: I8765aceee09ada3086abc704b7f73ce240e21847 (cherry picked from commit 866864f7e5973053edcd9de59caab05790729964 and 82e30159b59d719b1654c7f138f4e52fe8fee1c6)
* | | Fix Designate Zone lookup by nameZane Bitter2019-07-291-4/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Zones are a concept of the Designate v2 API. Since v1 is still the default, we need to explicitly use v2 when doing anything to do with Zones. We were doing this when looking up a zone directly, but not when falling back to listing all zones and going through them by name. This meant that designate.zone constraint validation would fail (including on the 'zone' property of OS::Designate::RecordSet) when the zone was specified by name rather than UUID. Change-Id: Id4194a74398488813f901b255f312f7ac962a426 Task: #29162 (cherry picked from commit 8c79ae0aeb8f937f45d94f5f549de344d7ea5817)
* | Merge "Retry on DB deadlock in event_create()" into stable/queensZuul2019-07-261-0/+2
|\ \ | |/ |/|
| * Retry on DB deadlock in event_create()Zane Bitter2019-07-111-0/+2
| | | | | | | | | | | | Change-Id: I50c106a2b80a707ba8296efed86194526d6e5da6 Task: 30196 (cherry picked from commit 41b9a650dfd9a78614272a1fd8f23c617261266a)
* | Add local bindep.txt and limit bandit versionElod Illes2019-07-043-1/+54
|/ | | | | | | | | | | | | | | | | | | | | | | | As it was announced [1] global bindep-fallback.txt was removed and now projects need to have a local bindep.txt to be able to install binary dependencies for testing. In test jobs the script tools/test-setup.sh is called which requires mysql and postgres servers and clients to be installed. [1] http://lists.openstack.org/pipermail/openstack-discuss/2019-June/007272.html (cherry picked from commit d116b216965bbfc80840f5bfc994b731e2d29d81) Note(elod.illes): patch was modified so that the test-requires files are kept. An upper constraint was also added for bandit. This actually freezes requirements (required by bandit) on stable branch. Conflicts: tox.ini Change-Id: If9befe4115c64c2fda52321002ba5fe1124eaf7c (cherry picked from commit 916fd05627dddce33a577038f983e17295cc44e8) (cherry picked from commit ec50bb8fa46f909d642f1f3af4f3c3d558d11de8)
* Merge "Return None for attributes of sd with no actions" into stable/queensZuul2019-06-012-7/+9
|\
| * Return None for attributes of sd with no actionsRabi Mishra2019-05-312-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | If the 'actions' property of a deployment is [], we don't create a software deployment in heat and resource_id of the software deployment is None. However, there is a possibility that we access the attributes of the sd in the template and that results in TypeError as we try to make an rpc call to show the software deployment for None. Change-Id: Iefd3cdd20bb51c63e7267ae0628e0f15544c0427 Task: 33516 (cherry picked from commit ee061103477ed7c9b4692a8b90817a127064fbcd)
* | Fix regression with SW deployments when region not configuredZane Bitter2019-05-311-3/+5
|/ | | | | | | | | | | | | | | | | | The region name eventually has to pass through an os-collect-config.conf file, the format of which is unable to distinguish between the JSON null (equivalent to None in Python) and the string "null". This means that Story 2002781 caused a regression for users who didn't have the region_name_for_services config option explicitly set in heat.conf. To avoid this, only specify the region when we know what it is. Change-Id: I23493b1c477d082c478f87167de2c1859ba5ace7 Story: #2005797 Task: 33527 Task: 33528 (cherry picked from commit d580565abff2997002eff856535bdfd2ddb44da7)
* Blacklist bandit 1.6.0 and cap Sphinx on Python2gao.hanxiang2019-05-301-2/+3
| | | | | | | | | | | | | | | | | There's a regression[0] in bandit 1.6.0 which causes bandit to stop respecting excluded directories, and our tests throw a bunch of violations. Blacklist this version, but allow newer versions as there is already a pull request[1] to fix it, and I expect it will be included in the next release. Also fix the requirements job which was broken by https://review.opendev.org/657890 adding a cap on Sphinx on Python 2. [0] https://github.com/PyCQA/bandit/issues/488 [1] https://github.com/PyCQA/bandit/pull/489 Change-Id: Ieabcd4e8c5e5354125a63e89b9b60931c760858a (cherry picked from commit 011fa22c42506e63229cca7e5fc65f81b6e0aabf)
* Merge "Load existing resources using correct environment" into stable/queensZuul2019-04-262-2/+47
|\
| * Load existing resources using correct environmentZane Bitter2019-04-032-2/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In convergence we were loading resources from the database using the current environment. This is incorrect when a previous update has failed, meaning the resources in the database were created with a non-current template and environment. If an attempt was made to change the type of a resource but that resource was never updated, this will result in us loading a resource with the wrong type. If the type has been removed then it can result in errors just trying to show the stack. Note that the Resource.load() method used during a convergence traversal already does the Right Thing - it only uses the new type if it is a valid substitution for the old type, and UpdateReplace is later raised in Resource.update_convergence() if the type does not match in that specified in the new environment. So we don't see any problems with stack updates, just with API calls. Since we cannot change the signature of Resource.__new__() without also modifying the signature of __init__() in every resource plugin that has implemented it (many of which are out of tree), instead substitute the stack definition for the duration of creating the Resource object. This will result in stack.env returning the environment the resource was last updated with. Change-Id: I3fbd14324fc4681b26747ee7505000b8fc9439f1 Story: #2005090 Task: 29688 (cherry picked from commit aa58fbcacfdc14bb2e8d5a4ff1ef7a47fe9268d0)
* | OpenDev Migration PatchOpenDev Sysadmins2019-04-194-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit was bulk generated and pushed by the OpenDev sysadmins as a part of the Git hosting and code review systems migration detailed in these mailing list posts: http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html Attempts have been made to correct repository namespaces and hostnames based on simple pattern matching, but it's possible some were updated incorrectly or missed entirely. Please reach out to us via the contact information listed at https://opendev.org/ with any questions you may have.
* | Merge "Replace openstack.org git:// URLs with https://" into stable/queensIan Wienand2019-04-102-9/+9
|\ \ | |/ |/|
| * Replace openstack.org git:// URLs with https://Ian Wienand2019-03-242-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a mechanically generated change to replace openstack.org git:// URLs with https:// equivalents. This is in aid of a planned future move of the git hosting infrastructure to a self-hosted instance of gitea (https://gitea.io), which does not support the git wire protocol at this stage. This update should result in no functional change. For more information see the thread at http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html Change-Id: Icaf2669f87f7a8de574065b2157993cf46167374
* | Merge "Don't translate event reason when adding hook event" into stable/queensZuul2019-03-271-1/+1
|\ \ | |/ |/|
| * Don't translate event reason when adding hook eventRabi Mishra2019-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | We don't seem to do it anywhere else. TripleO uses hook reason string comparsion which does not work if internationalized. Story: #2005035 Task: 29524 Change-Id: I3e8f4587966969084cbf1e38406cd3cff23eb9a6 (cherry picked from commit 1cd8ce37c038ed79371da60527de35bb75bdfab5)
* | Fix SoftwareDeployment on DELETE actionEthan Lynn2019-03-221-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | When we specify a sd on delete action, os-collect-config will not get authentication because we didn't load access_allowed_handlers after stack enter stack delete phrase. This patch will make sure we load necessary access_allowed_handlers even if in stack delete phrase. Change-Id: I43c1a865f507f7cb7757e26ae5c503ce484ee280 Story: #2004661 Task: #28628 (cherry picked from commit 0e1ed1a4b23142ff379e01a3574fef771f703915)
* | Merge "Use application_url in API version document" into stable/queensZuul2019-03-201-1/+1
|\ \
| * | Use application_url in API version documentPavlo Shchelokovskyy2019-02-071-1/+1
| |/ | | | | | | | | | | | | | | | | | | this handles the possible vhost in Heat API path correctly (like http://mucloud.com/heat-api) contrary to host_url. Change-Id: I2f4dbb7d98fbdf5314d5771309919c5b25a72f94 Story: 2002531 Task: 22075 (cherry picked from commit b2fa516a47c2278238df92ef9d7846decdce98e0)
* | Merge "Catch socket.timeout for connectivity error when streaming" into ↵Zuul2019-03-201-1/+3
|\ \ | |/ |/| | | stable/queens
| * Catch socket.timeout for connectivity error when streamingRabi Mishra2019-02-011-1/+3
| | | | | | | | | | | | | | | | | | | | While fetching remote templates, if there is network issue while reading data chunks socket.timeout is raised. Change-Id: I4ebb495706ea3c505a92254b1f03e326b0fa34b6 Story: #2004686 Task: 28694 (cherry picked from commit e3d54b74fad45d786f4c80fff8af5245ecdd1713)
* | Delete db resources not in templatequeens-em10.0.3rabi2019-01-211-1/+10
|/ | | | | | | | | | | | When migrating stacks to convergence, if there are resources in the database that are not in the current_template_id of the stack, they are possibly of no isue, so it would better to delete those resources from db to avoid any future update issues. Change-Id: Ica99cec6765d22d7ee2262e2d402b2e98cb5bd5e Story: #2004071 Task: 27092 (cherry picked from commit 43583b4a323e15b13e288b3a6f78500e442b7402)
* Add heat-agents as required projectRabi Mishra2019-01-083-1/+3
| | | | | | | | | We removed[1] these scripts from heat-templates. [1] https://review.openstack.org/#/c/584777/ Change-Id: I6f0989a5cf4cf6253ff64a8c3c1ea023dd8b6db7 (cherry picked from commit a2f74772e19ea5b3a1ffc7f2fb7ecfabe41e4450)