Commit Graph

2146 Commits

Author SHA1 Message Date
Zuul
885ec20c94 Merge "Add call_retry for ModelBuilder for error recovery" 2019-07-20 02:58:10 +00:00
Zuul
1f9abe6785 Merge "Replace human_id with name in grafana doc" 2019-07-20 02:31:19 +00:00
Dantali0n
cadc000f32 Add call_retry for ModelBuilder for error recovery
Add call_retry method for ModelBuilder classes along with configuration
options. This allows ModelBuilder classes to reattempt any failed calls
to external services such as Nova or Ironic.

Change-Id: Ided697adebed957e5ff13b4c6b5b06c816f81c4a
2019-07-19 16:09:18 +02:00
Zuul
1af7ac107c Merge "Baseclass for ModelBuilder with audit scope" 2019-07-19 13:34:42 +00:00
Zuul
3a1e83dd9d Merge "Move datasources folder into decision_engine" 2019-07-19 13:27:10 +00:00
Zuul
375ae32fad Merge "Fix watcher/conf/applier.py default worker value" 2019-07-18 03:08:56 +00:00
chenke
d5126174c0 Fix watcher/conf/applier.py default worker value
The default value of worker should be int type.

Change-Id: Ie2aa0c34ffbb7fa86154cc5c8ce2c365579d3fb1
2019-07-17 13:34:56 +08:00
chenke
904720b020 Remove useless _opts.py
This file has not been used.

Change-Id: Ie53dca6673f87bfeded74e336f3d60fbf500caf8
2019-07-16 19:36:16 +08:00
Zuul
4b8fe2745d Merge "Remove redundant human_id fields when creating and updating datamodel" 2019-07-16 11:11:26 +00:00
Dantali0n
933bc59b39 Baseclass for ModelBuilder with audit scope
This lets all the ModelBuilder classes use one baseclass and forces
ClusterDataModelCollector's to pass the scope.

The scopes are still unused in the case of Ironic and Cinder.

The idea is to do several follow ups to this and in the end have a
similar method to query_retry in the datasources baseclass.

Change-Id: Ibbdedd3087fef5298d7f4c9d3abdba05d1fbb2f0
2019-07-15 22:32:14 +02:00
Zuul
7cc5aef03f Merge "Add get_compute_node_by_uuid" 2019-07-13 08:42:08 +00:00
Dantali0n
433eabb8d1 Move datasources folder into decision_engine
The datasources are only used by the decision_engine, however, they
are placed in a directory one level higher. This patch moves the
datasources code into the decision_engine folder.

Change-Id: Ia54531fb899b79a59bb77adea079ff27c0d518fa
2019-07-12 08:54:09 +02:00
licanwei
3009716ded Add get_compute_node_by_uuid
We want to set the value of uuid field of Watcher ComputeNode
to hypversion id(as uuid). So we need to get hypervisor
information by uuid.

Change-Id: I752fbfa560313e28e87d83e46431c283b4db4f23
Related-Bug: #1835192
2019-07-12 10:27:47 +08:00
Zuul
233a2b5585 Merge "Releasenote for grafana datasource" 2019-07-12 02:19:17 +00:00
Zuul
2365418e1b Merge "Grafana proxy datasource to retrieve metrics" 2019-07-12 02:19:16 +00:00
Zuul
cd70ad0d01 Merge "Add reource_name for zone_migration in action input parameter field" 2019-07-12 02:19:15 +00:00
Zuul
3bc426a590 Merge "remove baremetal nodes when building CDM" 2019-07-12 02:18:25 +00:00
Zuul
a4cbe69d57 Merge "Add get_node_by_name" 2019-07-12 02:18:24 +00:00
Dantali0n
80e8d0002a Resolve aggregate error in workload_stabilization
This error is caused because the condition "is not '':" is not always
true. Sometimes self.aggregation_method['node'] is u'' instead of ''.
This patch ensures that in both cases the behavior is the same.

Change-Id: I7453678cc76892ebeacca23c3501a10a08725d1d
Closes-bug: #1836195
2019-07-11 14:54:04 +02:00
Zuul
5259e5b332 Merge "Add marker option for get_instance_list()" 2019-07-11 09:21:17 +00:00
chenke
6dd35a0058 Remove redundant human_id fields when creating and updating datamodel
For the reason, please see:
[1]. http://eavesdrop.openstack.org/irclogs/%23openstack-watcher/%23openstack-watcher.2019-06-19.log.html
[2]. http://eavesdrop.openstack.org/meetings/watcher/2019/watcher.2019-06-19-08.00.log.html#l-47

Change-Id: I4284397aa987565f4cfc2697907a879d7d6492e9
Related-Bug: #1833665
2019-07-10 15:21:40 +08:00
chenke
8cb7158790 Replace human_id with name in grafana doc
This patch does two things:

1. replace instance's human_id with name.
2. remove ComputeNode human_id.

Now name field in Watcher Compute Data Model is availible.
Use name is better than human_id. For the reason, please see[1].

[1]. https://bugs.launchpad.net/watcher/+bug/1833665

Change-Id: I04f40e7d2a2bda48e9a362f9d0b23f449c40324e
2019-07-10 15:10:59 +08:00
Zuul
a01b4ddc81 Merge "Add reource_name in action input parameter field" 2019-07-10 06:57:36 +00:00
chenke
502ed741d6 Add marker option for get_instance_list()
Change-Id: Iee31369876052a22e5f3263cd5e7fad5d068f68d
2019-07-10 14:42:45 +08:00
licanwei
256104a38a remove baremetal nodes when building CDM
aggregate list and availability_zone list may return ironic type
compute nodes. When building compute data model we should check
the hypervisor_type and remove ironic compute nodes.

Change-Id: Idf404c104c30368baf95ef7d05ad8fc3e7adca38
Related-Bug: #1835183
2019-07-10 14:03:31 +08:00
chenke
612fc12af1 Add reource_name for zone_migration in action input parameter field
(Partial implement)
Implements: blueprint add-resource-name-in-action-input-parameter-field

Depends-on: I708cf63ff1d9a989604e1d5b834c8b7e5b087892
Change-Id: I5428fb7a1195a39f15f36509997ff5ad6fda4bb7
2019-07-10 09:57:42 +08:00
Dantali0n
0541d8c25b Grafana proxy datasource to retrieve metrics
New datasource to retrieve metrics that can be configured in a
flexible way depending on the deployment. Current implemenation only
works with InfluxDB. Slight changes to datasource manager were
necessary because grafana metric_map can only be built at runtime.

The yaml configuration file can still be used to define metrics
but will require that five different attributes are specified per
metric.

Specific databases accesible through grafana can be defined by
creating 'translators' for these specific databases. This patch
introduces a base class for these translators and their methods.

In addition the first translator specific for InfluxDB is
created.

Depends-on: I68475883529610e514aa82f1881105ab0cf24ec3
Depends-on: If1f27dc01e853c5b24bdb21f1e810f64eaee2e5c
Implements: blueprint grafana-proxy-datasource
Change-Id: Ib12b6a7882703e84a27c301e821c1a034b192508
2019-07-09 16:22:00 +02:00
chenke
dc2c361d04 Add reource_name in action input parameter field
(Partial implement)
Implements: blueprint add-resource-name-in-action-input-parameter-field

Depends-on: I51d879e31dee03652ee9d0d94a7f3168012cc060
Change-Id: I708cf63ff1d9a989604e1d5b834c8b7e5b087892
2019-07-09 18:40:49 +08:00
Zuul
de38a171fe Merge "remove baremetal nodes from hypversior list" 2019-07-09 08:38:46 +00:00
Zuul
5b12642c1d Merge "Remove notifier_driver option in Watcher devstack" 2019-07-09 08:24:50 +00:00
licanwei
a3c49cf8a4 Add get_node_by_name
We want to set the value of uuid field of Watcher ComputeNode
to hypversion id(as uuid). We need a method to get compute
node by name.

Change-Id: I0975500f359de92b6d6fdea2e01614cf0ba73f05
Related-Bug: #1835192
2019-07-09 07:03:29 +00:00
Zuul
46cc09f00e Merge "Reduce the query time of the instances when call get_instance_list()" 2019-07-09 03:54:20 +00:00
Zuul
651988448b Merge "Add name field for test data" 2019-07-08 02:36:46 +00:00
chenke
1e8b17ac46 Reduce the query time of the instances when call get_instance_list()
The problem is that watcher is passing limit=-1 to novaclient when
listing servers which will always make at least two API calls to be
sure it's done paging:

https://github.com/openstack/python-novaclient/blob/13.0.1/novaclient/v2/servers.py#L896

If we can determine before we list servers that there are only a
certain number where the number of servers is less than 1000. For
example: 4, we should just pass the limit=len(servers) to novaclient
and avoid the second call for paging which takes extra time and
yields no results.

Change-Id: I797ad934a0f8496dbcbf65798e28b0443f238137
Closes-Bug: #1834679
2019-07-08 09:58:01 +08:00
licanwei
ac53dbf005 remove baremetal nodes from hypversior list
openstack hypervisor list contains ironic nodes. we should
filter out baremetal nodes when get compute node list.

Change-Id: I4ab3e1a63dc6f61cdc3e99fa2cae749a711459cc
Closes-Bug: #1835183
2019-07-04 16:40:01 +08:00
Zuul
242c7feca7 Merge "Blacklist sphinx 2.1.0 (autodoc bug)" 2019-07-04 06:34:40 +00:00
licanwei
8bddafbdc3 Remove notifier_driver option in Watcher devstack
According to https://review.opendev.org/#/c/251791/,
watcher_messaging group and notifier_driver option
were deprecated.

Change-Id: I2cd114060d1960f77dfa8f4fe0a6d0fc05de5d4c
2019-07-04 01:59:57 +00:00
Zuul
e01382cd12 Merge "Add Python 3 Train unit tests" 2019-07-03 15:14:53 +00:00
Zuul
fd2885932d Merge "Improve logging in building of nova data model" 2019-07-03 14:14:07 +00:00
Zuul
daa70cf6b2 Merge "improve OptGroup consistency across configuration" 2019-07-03 11:45:00 +00:00
Dantali0n
052fae4b62 Improve logging in building of nova data model
Improves logging during the building of the nova data model

Change-Id: Ieff571a6ee2d1a2ced9776a8e4800d5d6f2d95eb
2019-07-03 11:25:20 +02:00
Zuul
8ccee88296 Merge "Configure nova notification_format for grenade" 2019-07-02 16:49:51 +00:00
Dantali0n
a45f5abe48 Releasenote for grafana datasource
This is the releasenote for the new grafana datasource it refers to
the documentation on configuring grafana.

Depends-on: Ib12b6a7882703e84a27c301e821c1a034b192508
Change-Id: Icb3939d772f06ad2d66eeba9a59fa8b60822ece0
2019-07-02 10:20:49 +02:00
Dantali0n
cebee2c4d7 improve OptGroup consistency across configuration
This is a follow-up to: https://review.opendev.org/#/c/666897/
and makes sure titles and help information get rendered in
the configuration documentation and configuration samples.

The options for the placement_client group are already changed
and left untouched as a result. The changes to grafana_client
are already done in another patch and also untouched.

Change-Id: Ia33cd4576e4b55e651f3f3779a01f2867126138d
2019-07-01 09:29:14 +02:00
pengyuesheng
dd1800fbc1 Blacklist sphinx 2.1.0 (autodoc bug)
See https://github.com/sphinx-doc/sphinx/issues/6440 for upstream details
Depend-On: https://review.opendev.org/#/c/663060/

Change-Id: I1a5b87b5771b9fd8f7ccdd6fd83f7ed0d7bfef64
2019-07-01 14:59:18 +08:00
pengyuesheng
148ae3688d Add Python 3 Train unit tests
See the Train python3-updates goal document for details:
https://governance.openstack.org/tc/goals/train/python3-updates.html

Change-Id: I11f7aafdfb3a45569b021df748ea32ebddc4ba6b
2019-07-01 14:57:27 +08:00
Zuul
4d35aabfdf Merge "Fix invalid assert states" 2019-07-01 06:24:53 +00:00
zhufl
8fc4a9cbee Fix invalid assert states
"self.assertTrue(action.state, objects.action.State.SUCCEEDED)"
and "self.assertTrue(action.state, objects.action.State.FAILED)"
should use assertEqual.

Co-Authored-By: Canwei Li <li.canwei2@zte.com.cn>
Change-Id: I8e28d651938ca6ed8d12e8a6f5ecf775cf01a39c
2019-07-01 03:20:19 +00:00
chenke
0a435f0b5e Add name field for test data
Change-Id: I51d879e31dee03652ee9d0d94a7f3168012cc060
2019-06-29 14:55:58 +08:00
Zuul
1b41d92b9e Merge "Add uWSGI support" 2019-06-28 02:29:16 +00:00