Commit Graph

2238 Commits

Author SHA1 Message Date
Dantali0n
2b6ee38327 General purpose threadpool for decision engine
Implements the singleton general purpose threadpool for the decision
engine and associated tests.

A threadpool is a collection of one or more threads typically called
'workers' to which tasks can be submitted. These submitted tasks will
be scheduled by the threadpool and subsequently executed. How many
tasks will be executed concurrently is managed by the underlying
threadpool and its configuration. In Python the submission of tasks
to a threadpool returns an object called a 'future'. Futures provide
a method to interface with the task being executed that allows to
retrieve information about its state. Such as if it currently is being
executed, if it is waiting on a condition and if it has completed
succesfully. Finally, futures allow to retrieve what has been returned
by the submitted task.

In the case of most OpenStack projects instead of interfacing with native
Python concurrency the futurist library is used. This library provides
very similar interfaces to native concurrency with some extras such as
the wait_for_any method.

For more information about futurist or Python concurrency the following
references can be consulted:
https://docs.python.org/3/library/concurrent.futures.html
https://docs.openstack.org/futurist/latest/reference/index.html#executors

Partially Implements: blueprint general-purpose-decision-engine-threadpool

Change-Id: I94bd9a17290967f011762f2b9c787ee7c46ff930
2019-11-01 11:33:59 +01:00
OpenStack Release Bot
e835efaa3f Update master for stable/train
Add file to the reno documentation build to show release notes for
stable/train.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/train.

Change-Id: I0d5ae49a33583514925ad966de067afaa8881ff3
Sem-Ver: feature
2019-09-25 08:46:33 +00:00
Zuul
d13adb4e3c Merge "Fix damodel list return None error When has a compute node" 3.0.0.0rc1 2019-09-23 08:46:56 +00:00
Zuul
d11f43638c Merge "Fix misspelling" 2019-09-23 06:52:51 +00:00
chenke
2b63a35e86 Fix damodel list return None error When has a compute node
Reason:
When there is a compute node but no virtual machine,
the command 'watcher datamodel list' should display
the information of the compute node instead of return None.

Change-Id: Id5ff7f08ac8a9883af9f0313785b756d813ed5a2
Closes-Bug: #1844948
2019-09-23 14:04:16 +08:00
licanwei
4869449211 Fix misspelling
Depends-on: Ifa21645e19b8311de35cb9b0b8f39371b8713a2f
Depends-on:Ic2ae4cb758eba32f1b1529a24d12a57ca93a2a82
Change-Id: Ia1ea9814b8293e2bed989d700c7a813a97052f04
2019-09-23 04:29:47 +00:00
licanwei
42c1babfa4 skip deleted instance when creating datamodel
Change-Id: Ic2ae4cb758eba32f1b1529a24d12a57ca93a2a82
Closes-Bug: #1844949
2019-09-22 21:26:31 -07:00
licanwei
519ca2c9fb Fix unit test failed
ironic removed 'os_endpoint_type' and instead with 'interface'

Change-Id: Ifa21645e19b8311de35cb9b0b8f39371b8713a2f
2019-09-21 14:39:45 +08:00
Zuul
cca74f4698 Merge "Watcher planner slector releasenote" 2019-09-19 02:25:23 +00:00
Zuul
511a24e011 Merge "Set strategy planner" 2019-09-19 02:25:22 +00:00
Zuul
594a0d9b01 Merge "Get planner from solution" 2019-09-19 02:21:23 +00:00
licanwei
a88e076646 Watcher planner slector releasenote
Change-Id: I632a59d9e3cb6f5d0dad8987b1b01934d9ce0b42
Implements: bp watcher-planner-selector
2019-09-18 01:59:01 -07:00
licanwei
0559cd7a04 Set strategy planner
The default planner can not create actions with right order,
The node_resouce_consolidation strategy needs to use its
own planner.
Partially Implements: blueprint node-resource-consolidation
Depends-on: I586e67f782e2965234826634ba3ff51681af4df8
Change-Id: I05b02905a3335a73b6926966de6331c632842293
2019-09-17 19:42:32 -07:00
licanwei
0c191a2da9 Get planner from solution
support Strategy select different planner
Implements: bp watcher-planner-selector

Change-Id: I586e67f782e2965234826634ba3ff51681af4df8
2019-09-17 19:36:07 -07:00
Zuul
0b21ae333f Merge "Build pdf docs" 2019-09-18 02:00:24 +00:00
Zuul
62020cac30 Merge "Watcher Planner Selector" 2019-09-17 07:42:44 +00:00
Zuul
f5f9c95945 Merge "correct watcher project for oslo_config" 2019-09-17 06:57:22 +00:00
licanwei
ffd8e27bd1 Build pdf docs
Add a new pdf-docs environment to enable PDF build.
 sphinxcontrib-svg2pdfconverter is used to handle SVG properly.

Change-Id: I1563579486da8912ba8a220bb08a5331e7df910b
2019-09-16 23:09:25 -07:00
Zuul
004a46a98a Merge "Add node resource consolidation planner" 2019-09-17 04:44:21 +00:00
Zuul
3edd7f63c4 Merge "Add node_resource_consolidation doc" 2019-09-16 14:44:53 +00:00
Zuul
67e9e16d62 Merge "node resource consolidation" 2019-09-16 14:44:50 +00:00
licanwei
31460ac412 update test about cinderclient v1
Cinderclient removed support for Cinder v1 API
Closes-Bug: #1844094
https://review.opendev.org/#/c/653813/

Change-Id: I58c026f66ff210983367d0c98096347f7207c9fd
2019-09-16 15:18:32 +08:00
Guang Yee
86af6ab8a2 correct watcher project for oslo_config
It should've been "watcher" instead of "python-watcher" as the
config files are expected to be in /etc/watcher/. Though this is
unlikely to cause problems as this patch corrected the default
config dir.

https://review.opendev.org/#/c/658348/

Nevertheless, we should be using the correct name.

Change-Id: If6b58133eecf2fcc37e11d8c45eaa58f238ea2a8
2019-09-13 15:48:27 -07:00
Zuul
696d5d1fb5 Merge "Add releasenote about bp show-datamodel-api" 2019-09-12 05:57:42 +00:00
licanwei
605d7f228f Add node resource consolidation planner
Used for node resource consolidation strategy

Partially Implements: blueprint node-resource-consolidation

Change-Id: I7a51ddace86d512f2416dfd8af0bd3a31ca2d5c4
2019-09-12 11:03:59 +08:00
Egor Panfilov
aa2a084d22 Watcher Planner Selector
This component is responsible for selecting an appropriate Planner based
on predefined property value passed to concrete Strategy.

Change-Id: I86de95886df5d7e9558512569601e9ea3babb0e9
Implements: bp watcher-planner-selector
Co-Authored-By: Canwei Li <li.canwei2@zte.com.cn>
2019-09-12 11:01:47 +08:00
Zuul
e1b1d795a3 Merge "Fix misspell word" 2019-09-11 11:35:01 +00:00
Zuul
c356568fbe Merge "Remove redundant word 'strategy'" 2019-09-10 09:59:18 +00:00
Zuul
f274ef87ed Merge "Implement watcher datamodel list in watcher-api" 2019-09-10 07:34:13 +00:00
Zuul
0732485467 Merge "Implement watcher datamodel list in watcher-decision-engine" 2019-09-10 07:33:34 +00:00
Zuul
7d1b179d32 Merge "Add api-ref doc for data model api" 2019-09-10 07:02:10 +00:00
Zuul
0e40e72b45 Merge "add audit parameter to do_execute" 2019-09-10 07:02:09 +00:00
chenke
03a6216da0 Add releasenote about bp show-datamodel-api
Partially Implements:blueprint show-datamodel-api

Change-Id: I2f8a41cd8f9f805bd3796cbd639bec233546b521
2019-09-10 09:39:10 +08:00
licanwei
f1fe4b6c62 node resource consolidation
This strategy is used to centralize VMs to as few nodes as possible
by VM migration. User can set a input parameter to decide how to
select the destination node.

Implements: blueprint node-resource-consolidation
Closes-Bug: #1843016
Change-Id: I104c864d532c2092f5dc6f0c8f756ebeae12f09e
2019-09-06 18:03:43 -07:00
Q.hongtao
944fda338b Fix misspell word
Change-Id: I10e55a3305f7dbf3d4f5a35f61ba07783b49cc06
2019-09-06 16:49:33 +08:00
licanwei
020a99f077 Remove redundant word 'strategy'
Most of strategies have word 'strategy' in their display name.

Change-Id: I72504ba760c13685b5058524d202f00e01361403
2019-09-05 20:46:51 -07:00
licanwei
10d8a5fbc2 Add node_resource_consolidation doc
Partially Implements: blueprint node-resource-consolidation
Depends-on: Ia979781b32202c1821aa1cb91d24253fe6d7bd2d
Depends-on: I104c864d532c2092f5dc6f0c8f756ebeae12f09e

Change-Id: I8fa33a6559c9821e730f8e0babd8438ef45d7338
2019-09-05 00:58:58 -07:00
Zuul
845a9187e3 Merge "Add watcher-specs link to readme.rst" 2019-09-02 07:49:19 +00:00
liushuobj
3c0ee0caa6 Add watcher-specs link to readme.rst
Change-Id: Ie01f060846cd3876f39b0698879928abe4f504e7
2019-08-30 16:35:57 +08:00
licanwei
7eb10eee01 Add get node used and free resources
Many strategies need get node used or free resources, we define
two new method for the purpose in ModelRoot class.

Change-Id: I8cb41fd560dbac9a78d25bfdba51799533db83c2
2019-08-29 09:23:44 +08:00
Zuul
cdb81e43f6 Merge "improve strategies tempest" 2019-08-26 12:52:22 +00:00
chenke
d0a20fb072 Implement watcher datamodel list in watcher-api
1. Add datamodel api and policy_enfoce file.
2. Add related unittest for data_model api and policy.

Partially Implements:blueprint show-datamodel-api

Change-Id: I1654685d8cf04db5dd132d43a8640ddf91893cad
2019-08-26 20:09:23 +08:00
chenke
49fba60ecd Implement watcher datamodel list in watcher-decision-engine
1. Add datamodel list endpoint and rpc process.
2. Add datamodel list parased and return.
3. Add related unittest.

Partially Implements:blueprint show-datamodel-api

Change-Id: I758b7ca2bc3d8d596d3457277744336c6629bc4e
2019-08-26 18:46:27 +08:00
chenke
5aa4637fcf Add api-ref doc for data model api
Change-Id: I7d2203f35623ac6b0649ba5d99a04e9d6ca4430f
2019-08-26 17:31:06 +08:00
licanwei
b4a02a6d31 add audit parameter to do_execute
The new bp need to get audit type from audit,
so we need to add an audit parameter to do_execute

Partially Implements: blueprint node-resource-consolidation

Change-Id: Ia979781b32202c1821aa1cb91d24253fe6d7bd2d
2019-08-23 18:17:56 -07:00
licanwei
8ca5d65501 improve strategies tempest
watcher-tempest-strategies includes all strategies tempest,
we add it and remove all other individual strategy tempest.

Depends-on: I3e45d4a66a6e1bf55499def8550da38ddf01b638

Change-Id: I182bf0ddc528099f5115098b825e9bddae3b187a
2019-08-23 09:12:08 +00:00
licanwei
6ac6ab2444 add placement min_microversion
for tempest test

Change-Id: Ie98e2c000568ecac63e8981a8b7087029c0d3705
2019-08-22 23:48:11 -07:00
Zuul
7289243624 Merge "[train][goal] Define new 'watcher-tempest-functional-ipv6-only' job" 2019-08-23 03:05:20 +00:00
Zuul
1be3516d36 Merge "set compute min_microversion" 2019-08-22 08:01:23 +00:00
licanwei
d6fbc79742 set compute min_microversion
The min microversion that Watcher needed is 2.56.[1]

[1]:https://github.com/openstack/watcher/blob/master/watcher/common/clients.py

Change-Id: If21b0df50e2f2cc2884f531cb40084e95a688026
2019-08-20 14:18:08 +08:00