Commit Graph

42 Commits

Author SHA1 Message Date
Al Bailey a425fa6626 Support newer version of yaml
yaml.load will report a warning in pyyaml 5 and an error
in pyyaml 6 if it is called without a Loader argument.

The no-member pylint error was being suppressed due to
legacy http code, so now that is un-suppressed globally
and the yaml.load is replaced with yaml.safe_load

Test Plan:
  PASS: tox
  PASS: yaml.load('events.yaml') returns the same content
       as yaml.safe_load('events.yaml')

Story: 2010642
Task: 48157
Signed-off-by: Al Bailey <al.bailey@windriver.com>
Change-Id: Ibac118cd9555f3334251b10a6b3e0a5986285854
2023-05-31 16:36:27 +00:00
Al Bailey 60ab3f6b45 Update debian package versions to use git commits
The Debian packaging has been changed to reflect all the
git commits under the directory, and not just the commits
to the metadata folder.

This ensures that any new code submissions under those
directories will increment the versions.

All packages have a higher version than before the change.

Test Plan:
  PASS: build-pkgs -c -p fm-api
  PASS: build-pkgs -c -p fm-common
  PASS: build-pkgs -c -p fm-doc
  PASS: build-pkgs -c -p fm-mgr
  PASS: build-pkgs -c -p fm-rest-api
  PASS: build-pkgs -c -p python-fmclient

Story: 2010550
Task: 47226

Signed-off-by: Al Bailey <al.bailey@windriver.com>
Change-Id: I65e881ba96512d2eaba25c44332d5ae82efea502
2023-02-09 18:06:57 +00:00
Enzo Candotti ca8be6b866 Fix fm command bash dynamic completion
For dynamic bash completion, instead of using the legacy
/etc/bash_completiond.d, the current bash-completion can use a
dynamic mechanism in which the customized completion is called
upon completion activation.
The new location that is already pointed by the .bashrc file,
also engaged by the /etc/bash_completion, is
/usr/share/bash-completion/completions.

However, the bash file was placed under a subfolder with the
name of the command which is not necessary since the file already
contains the command name.
Also, the proper file name shall contain .bash extension.

Closes-Bug: 2001553

Test Plan:
PASS: Build python-fmclient package.
PASS: Build Debian image and install it successfully.
Verify fm.bash is installed under /usr/share/bash-completion/completions
PASS: Verify bash completion is working as expected:

Signed-off-by: Enzo Candotti <enzo.candotti@windriver.com>
Change-Id: I3b796d26633459b98d7555e48e0bf5ea01c630d3
2023-01-04 19:56:25 +00:00
Zuul 8596fc8fc5 Merge "Add stx-fm-rest-api loci image" 2022-10-31 19:08:24 +00:00
Enzo Candotti cd0f5c38c2 Add stx-fm-rest-api loci image
This change reorganizes the source directories of the stx-fm-rest-api
container to be reused by both CentOS and Debian Dockerfiles in order
to build the images having the corresponding OS-specic base.

As part of this, the fm-api, fm-rest-api, fm-common and
python-fmclient packages have been ported in order to generate deb
files that contain .whl.

Test plan:
PASS: Build debian iso and perform fresh install. Verify fm commands are
working as expected.
PASS: Build python3 wheels tarball on Debian. Verify fm, fm_api, fm_core
and fmclient .whl files are added.
PASS: Build Debian-based container and push it to a public registry.
Apply openstack application and update the fm-rest-api url to pull
this new image. Verify that:
    - pods are up and running with the new image/tag specified.
    - the container is running on Debian.
    - from inside the container, fm querys are working as expected.

Story: 2009831
Task: 46634

Depends-On: https://review.opendev.org/c/starlingx/config/+/862498

Signed-off-by: Enzo Candotti <enzo.candotti@windriver.com>
Change-Id: I2b35139f8775141e39f97a5a6037c5de2b4d5d76
2022-10-27 15:29:06 +00:00
Joao Victor Portal 277c64bed7 Fix FM error messages for forbidden requests
The CLI error messages for users with reader role were not clear to the
operator and this change fixes this.

Test Plan:

PASS: In an AIO-SX with this change present, create a new openstack user
with reader role and through this user execute the commands:
fm alarm-list
fm alarm-delete <uuid>
fm event-suppress --alarm_id <alarm_id>
and check that the "alarm-list" command is executed without errors and
that the error message of the other commands changes from:
"HTTP Client Error (HTTP 403) (Request-ID: req-<req_id>)"
to:
"Error: Forbidden."

Story: 2010149
Task: 46620

Signed-off-by: Joao Victor Portal <Joao.VictorPortal@windriver.com>
Change-Id: I45007a7f5319ef0a0238a07d671a859b5081660a
2022-10-20 20:47:13 -03:00
Joao Victor Portal 99eba3afb8 Implement access control for FM API
This commit implements the access control for all FM APIs. An incomplete
list of FM APIs can be found at
"https://docs.starlingx.io/api-ref/fault/api-ref-fm-v1-fault.html". Unit
tests will be created in other task.

All access control rules can be overwritten through file
"/etc/fm/policy.yaml". Any change in file "/etc/fm/policy.yaml" is
automatically detected by policy engine and the rules are updated.

Differently from other APIs, which have as default rule to enforce that
all users using the API are present in either project "admin" or
"services", all read-only actions (GET requests) of FM API are allowed
for any user, so it only requires "reader" role (that is the lowest
role). Other actions require the user to have "admin" role and to be
present in either project "admin" or "services".

As all system users of StarlingX have "admin" role and are present in
either project "admin" or "services", the default rules for FM API
allows any system users to execute any action, so there should be no
regression with the change introduced here.

To test the access control of FM API, the following commands will be
used:
fm alarm-list
fm alarm-show <uuid>
fm alarm-summary
fm alarm-delete <uuid>
fm event-list
fm event-show <uuid>
fm event-suppress --alarm_id <alarm_id>
fm event-suppress-list
fm event-unsuppress --alarm_id <alarm_id>
fm event-unsuppress-all
On test plan, these commands will be reffered as "test commands".

Note: there is one FM API that is not tested by the commands above,
that is the creation of alarms ("fm_api:alarm:create"). This API will
be tested indirectly by observing the system successfully creating
alarms in the deployed environment.

Test Plan:

PASS: Successfully deploy an AIO-SX using an Debian image with this
commit present. Successfully create, through openstack CLI, the users:
'testreader' with role 'reader' in project 'admin',
'adminsvc' with role 'admin' in project 'services' and
'otheradmin' with role 'admin' in project 'notadminproject'.
Create openrc files for all new users. Note: the other user that will be
used is the already existing 'admin' with role 'admin' in project
'admin'.
PASS: In the deployed AIO-SX, check the behavior of test commands
through different users: for "admin" and "adminsvc" users, all commands
are successful; for users "testreader" and "otheradmin", only the
commands "alarm-delete", "event-suppress", "event-unsuppress" and
"event-unsuppress-all" fail. Observe also that the system is able to
create alarms during its operation.
PASS: In the deployed AIO-SX, add the following lines in file
"/etc/fm/policy.yaml":
fm_api:alarm:create: role:admin
fm_api:alarm:delete: role:admin
fm_api:alarm:get: role:admin
fm_api:alarm:modify: role:admin
fm_api:event_log:get: role:admin
fm_api:event_suppression:get: role:admin
fm_api:event_suppression:modify: role:admin
and check that all test commands are successful through user
"otheradmin" and that all test commands fail through user "testreader".
Observe also that the system is able to create alarms during its
operation.
PASS: In the deployed AIO-SX, to assert that public API works without
authentication, execute the commands:
"curl -v http://<MGMT_IP>:18002/" and
"curl -v http://<MGMT_IP>:18002/v1/" and
verify that they are accepted and that the HTTP response is 200,
and execute the commands:
"curl -v http://<MGMT_IP>:18002/v1/alarms" and
"curl -v http://<MGMT_IP>:18002/v1/event_log" and
verify that they are rejected and that the HTTP response is 401.
PASS: In the deployed AIO-SX, check through Horizon interface that Fault
Management works correctly (showing alarms and events, allowing events
to be suppressed).
PASS: Repeat all tests above changing the deploy to AIO-DX using an
CentOS image.

Story: 2010149
Task: 46123

Signed-off-by: Joao Victor Portal <Joao.VictorPortal@windriver.com>
Change-Id: I3db6d0464d8d53c4dfbc761663be1712141b8b93
2022-08-26 10:54:39 -03:00
Chuck Short 30e9761ede debian: Fix python3 syntax warning
From https://docs.python.org/3/whatsnew/3.8.html#changes-in-python-behavior:

The compiler now produces a SyntaxWarning when identity
checks (is and is not) are used with certain types of
literals (e.g. strings, numbers). These can often work
by accident in CPython, but are not guaranteed by the
language spec. The warning advises users to use
equality tests (== and !=) instead.

Test Plan:
PASS Apply patch test the output of fm alarm-list on Debian 11.
PASS Apply patch test the output of fm alarm-list on Centos 7.

Closes-Bug: 1960958

Signed-off-by: Chuck Short <charles.short@windriver.com>
Change-Id: I12c43f336a449876fab8592e34eace674518d0da
2022-03-25 18:47:55 +00:00
Giana Francisco f0b7677999 Add support to --insecure parameter in fmclient
current fmclient does not support --insecure parameter
and this cause that fm command doesn't work when
endpoint is configured with private signed certificates.

Closes-Bug: 1958262

Test Plan:

PASS: configure endpoint with private signed certificates
and run rm command with --insecure to get the alarm-list.
PASS: set FMCLIENT_INSECURE=true environment variable and
run fm alarm-list.

Signed-off-by: Giana Francisco <francisco.giana@windriver.com>
Change-Id: I2c2a33d24fb544147bd02fda2e0a89eafd48c818
2022-01-20 11:56:43 -03:00
Zuul 0e7b7df5b1 Merge "Re-enable important py3k checks for fault" 2021-11-09 21:14:52 +00:00
Bernardo Decco 8b64e53985 Re-enable important py3k checks for fault
Re-enabling some of the disabled tox warnings present on
the pylint.rc file

Re-enabling:

W1641: eq-without-hash
W1619: old-division

Test Plan: Sanity test run on AIO-SX:

PASS: test_system_health_pre_session[pods]
PASS: test_system_health_pre_session[alarms]
PASS: test_system_health_pre_session[system_apps]
PASS: test_wr_analytics[deploy_and_remove]
PASS: test_horizon_host_inventory_display
PASS: test_lock_unlock_host[controller]
PASS: test_pod_to_pod_connection
PASS: test_pod_to_service_connection
PASS: test_host_to_service_connection

Story: 2006796
Task: 43429
Signed-off-by: Bernardo Decco <bernardo.deccodesiqueira@windriver.com>
Change-Id: I333a936bd2ee10c19e5d9e6dae23a0b9be6fc2a1
2021-11-09 14:09:17 -03:00
Charles Short 37e0e3f4b2 Fix Lintian errors
Fix lintian errors when building python3-fmclient
for Debian.

Story: 2009101
Task: 43050

Signed-off-by: Charles Short <charles.short@windriver.com>
Change-Id: I852c9ff0e38bb0387015886d060d51fe6de28749
2021-11-02 14:00:41 -04:00
Charles Short 9c636ed5c2 Add debian packaging for python-fmclient
Add packaging infrastructure for python-fmclient.

Story: 2009101
Task: 43050

Signed-off-by: Charles Short <charles.short@windriver.com>
Change-Id: I0691edccd28199e0cdb17994da68d4f4bb80eed7
2021-09-27 10:51:22 -04:00
Zuul 98b26187b3 Merge "python3: Fix compatibility issues" 2021-08-16 12:47:50 +00:00
Charles Short 78384fe7e1 py3: Fix hashlib usage
Python3 bytes object needs to be encoded before the md5 hash
operation otherwise an a TypeError exception will be raised.

Story: 2006796
Task: 42811

Signed-off-by: Charles Short <charles.short@windriver.com>
Change-Id: I58bc974c1a7420e7824b025faccc39927f4d1c9e
(cherry picked from commit 86f90e0f12)
2021-08-16 01:26:18 +00:00
Charles Short 24efa2b9aa python3: Fix compatibility issues
- use absolute path imports to compat python3
- Replace dict.keys() with list(dict.keys()) to get a list on Python
  3. On Python 3, dict.keys() now returns a view.
- Fix iteritems to use items for python3.

Testing:
1. Built packaging with new python3 packaging.
2. Built resulting ISO with new python-fmclient package.
3. Ran "fm" under python3. Verifified that no tracebacks
   happened because it could not find common_wrappers.py.
4. Ran fm alarm-list to verify that output was displayed.
5. Ran fm event-list to display the events.
6. Ran fm alarm-show to show an active alarm.

Story: 2006796
Task: 42257

Signed-off-by: Charles Short <charles.short@windriver.com>
Change-Id: I5081d0685c7ad200076a76b7709cbe4f39c7b456
(cherry picked from commit 5d2dfab5f9)
2021-08-16 01:25:57 +00:00
albailey 42a9cfa882 Use newer flake8 on python3.8 zuul systems
flake8 2.5.5 fails on ubuntu-focal zuul machines running python3.8
with the following error:
AttributeError: 'FlakesChecker' object has no attribute 'CONSTANT'

Fixed:
 E117 over-indented
 E741 ambiguous variable name
 F841 local variable is assigned to but never used

Per-Line-Suppressed:
 E402 module level import not at top of file
 F632 use ==/!= to compare constant literals

Global Suppress:
 W504 line break after binary operator
 W605 invalid escape sequence

The suppressed errors can be fixed by later submissions.

Change-Id: I2df3ece427f0c84ce16c1a82f4d9f0c9a5a6982b
Partial-Bug: 1895054
Signed-off-by: albailey <Al.Bailey@windriver.com>
2020-11-16 13:35:31 -06:00
Teresa Ho 679475b06f Add auto-versioning to starlingx/fault packages
This update changed the TIS_PATCH_VER to use the PKG_GITREVCOUNT
variable to auto-version the packages.

Adds an upper constraint to fm-rest-api to pass zuul.

Story: 2006740
Task: 39842

Change-Id: I4a180f1395ff9764ecc9d617a514e265db670b9c
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2020-05-27 15:19:34 -04:00
Erich Cordoba d235681165 Add missing Requires to fault components for opensuse
Some of the fault components rely on having all the dependencies
installed in the StarlingX ISO so having missing dependencies listed
in the spec files is not an issue. However, when we take those compo-
nents and run them in a non StarlingX installation these problems
started to arise.

This patch is the result of the analysis of all imports and a manual
execution of the fault components in opensuse. This is a summary of
the findings:

- fm-api: This component imports `fm_core` which is provided by
          `fm-common` but not listed in the dependencies. Same
          case for `six` module.
- fm-mgr: `fmManager` links to `libfmcommon` but is not listed in the
          requirements. Also, it expects to find the `/etc/fm/events.yaml`
          file which is provided by `fm-doc`.
- fm-rest-api: A set of imports that are missing. This component also
               depends on other StarlingX compoments.
- python-fmclient: Missing python imports.

Story: 2006684
Task: 36971

Change-Id: I6719ab8a8d9a35d105be1c6f7dac57b855da543e
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-10-08 18:24:30 -05:00
Zuul fb8dc46a59 Merge "Adding %fdupes macro to python-fmclient and fm-rest-api in opensuse" 2019-10-08 13:43:05 +00:00
Erich Cordoba 4e6ed39d61 Adding %fdupes macro to python-fmclient and fm-rest-api in opensuse
The rpmlint tool complains about having duplicated files in these
two packages. The %fdupes macro helps to remove these duplicated
files and thus pass rpmlint checks.

Story: 2006508
Task: 36867

Change-Id: I031352e06c74da65dc62b9a6c51dbb87371432d1
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-10-01 11:43:25 -05:00
Erich Cordoba 61d9addb2c Delete _service files from git.
These files are part of OBS infrastructure and shouldn't be part of
this repository.

Story: 2006508
Task: 36862

Change-Id: I8cc056a49a888352d8dbb03b2a55e86549e6a45a
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-09-30 13:27:21 -05:00
Zuul c0c901620a Merge "Adding rpmlintrc files for opensuse building" 2019-09-30 15:51:07 +00:00
Erich Cordoba 6da9811491 Set version to 1.0.0 in opensuse specfiles
All opensuse version are being standardize with the same format,
this requires that all components will change from 1.0 to 1.0.0.

Story: 2006508
Task: 36811

Change-Id: I301759895e4ed816633daa6595d5f60f2f1d59c7
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-09-25 15:35:15 -05:00
Erich Cordoba c9755220c3 Adding rpmlintrc files for opensuse building
The rpmlintrc files helps to configure the behavior of the rpm linter
executed by the opensuse build system. This patch adds the rpmlintrc
files that were defined in the opensuse build system.

Story: 2006508
Task: 36799

Change-Id: If75264e809bb78bbcff1dd474b1a5fc1819ac193
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-09-25 06:16:04 -05:00
Erich Cordoba 6f0ec9c4fc Change %autosetup for opensuse specfiles
As the tarballs are now created by the _service definition in the
opensuse build system, it requires now to include the specfiles
within the tarballs. This means that the `-n` option needs to be
set for `%autosetup`.

Story: 2006508
Task: 36780

Change-Id: Ib89a440d4911200ead2a3a35d731564e86b0b447
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-09-24 15:17:28 -05:00
Erich Cordoba 79b32861f0 Change tarball extension from xz to gz in opensuse specfiles.
In the opensuse build system (OBS) the `_service` files are being
standardized to generate tarballs with gz compression. The fault's
specfiles were created before this decision, therefore an update
in the extension is required.

Story: 2006508
Task: 36670

Change-Id: I96cb185a9a0e089e4f8e184e8fdeaa709f77915e
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
2019-09-17 17:30:00 -05:00
Saul Wold 59aa18cf57 Add openSUSE spec files
This commit adds the RPM specfile that supports openSUSE, these
include the _service file which creates the tarball, the changes
files and specfile itself.

These are all built via the OpenBuildService (OBS) and can be
found here:

https://build.opensuse.org/project/show/Cloud:StarlingX:2.0

Change-Id: I676aae8cb9554eab2740232fd0dd77e0ed876506
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2019-06-20 15:53:29 -07:00
Zuul bc4a5ef2f9 Merge "fm-rest-api: Fix LICENSE Permissions" 2019-06-13 20:47:42 +00:00
Saul Wold 04e2c32864 fm-rest-api: Fix LICENSE Permissions
Change-Id: Ifaf3ea9af03105685e26622d01cc9a7c280842d9
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2019-06-13 10:25:41 -07:00
Saul Wold 85f6ec6ea3 fault: Clean-up /usr/bin/env instances
The dependency resolver for RPM relies on the shebang to have the
interperter that will be used in order to get things right, so
change shebang to /usr/bin/python.

In other cases, the shebang is not needed at all as these are not
really executable python files, they are part of the python package.
RPMLINT finds these and complains that a non-executable has a shebang.

Change-Id: Ie90a846d6addffca1225e59fd8b6f3753d2991a4
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2019-06-12 15:28:41 -07:00
Eric Barrett 8142803bfd Enable Python3 Compatibility
Flake8 currently ignores the following errors:
H233: Python 3.x incompatible use of print operator
H236: Python 3.x incompatible __metaclass__
H238: Old style class declaration, use new style
Enable them for python3 compability

Change-Id: I8959f3a78ce683eb93a16234908662189dd7c8a5
Story: 2004515
Task: 29304
Signed-off-by: Eric Barrett <eric.barrett@windriver.com>
2019-06-07 13:35:58 +00:00
Dean Troyer 91fb95eae5 Use DevStack's setup_*() functions for Python packages
These functions do a number of things, specifically they handles the
DevStack USE_PYTHON3 switch transparently so we can run both major
Python versions.

The new setup.cfg files are only used by setup_*() right now, making
the switch to use pbr is beyond what I want to do here.

Change-Id: Ib9753119235b1ce23030a2b3de0169ed6f8819e0
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
2019-05-17 13:11:58 -05:00
Kristine Bujold 9ee0149bfe Remove remote-clients SDK Module from StarlingX
Spec files no longer requires specific remote-clients SDK actions.

With the StarlingX move to supporting pure upstream OpenStack, the
majority of the SDK Modules are related to functionality no longer
supported. The remaining SDK Modules will be moved to StarlingX
documentation.

Story: 2005275
Task: 30154

Change-Id: I6ed8de0f8ba438088aff27b1d1947c428e79fb4b
Signed-off-by: Kristine Bujold <kristine.bujold@windriver.com>
2019-03-25 09:51:49 -04:00
Shuicheng Lin 1faff551f2 catch the correct exception for alarm not found case
Issue:
for the alarm_show/alarm_delete/event_show api, if the input UUID
string is not valid, http server side will return error code 500
(Internal Server Error), due to the error code is not set correctly.
Solution:
Correct the error code in server, and add client code to handle
"HTTP 404 - Not Found" error code correctly.

Test:
Run "fm alarm-show/alarm-delete/event-show" with valid/invalid
UUID, and the response is correct. For invalid UUID, response
string will like below. "xxx" for the invalid UUID string.
"Alarm not found: xxx"
"Event log not found: xxx"

Closes-Bug: 1806927

Change-Id: I8d17c5bc55733f269d875ae835ab6295fed4d899
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
2019-03-18 20:10:37 +08:00
Kristine Bujold 80a9ad661f Enhance get list APIs for alarms and events
Include the optional “expand” option to the get list for alarms and
events so the entire set of data can be returned and not just a
subset. “expand” is and optional parameter and defaults to False.

Story: 2004818
Task: 29096

Change-Id: Ife3b900d90c56564e9aeaa820e57f69d15194eb3
Signed-off-by: Kristine Bujold <kristine.bujold@windriver.com>
2019-01-25 10:43:57 -05:00
ZhijunWei cb0c7c68b1 Change openstack-dev to openstack-discuss
Signed-off-by: ZhijunWei <wzj334965317@outlook.com>

Change-Id: Ibad2a3fd9899ec69cc5291d930d6315b02ecc011
2018-12-07 02:10:10 +00:00
Don Penney 4d82104ecf Add hooks for python wheel generation
This update adds hooks to the spec files for the following packages
to generate wheels for the python modules:
- fm-api
- fm-common
- fm-rest-api
- python-fmclient

Change-Id: I0542650b52b9c5b0627023a2ce1996176135411d
Story: 2003907
Task: 27525
Signed-off-by: Don Penney <don.penney@windriver.com>
2018-10-24 17:12:50 +00:00
Tao Liu 994aef7216 Remove version from fmclient setup.cfg
This update removes the version from fmclient setup metadata.
The fmclient setup will use the build tag instead

Change-Id: Iee2d1ffab867279a6700325b46a79decdbb97b7a
Signed-off-by: Tao Liu <tao.liu@windriver.com>
2018-09-12 16:35:28 -04:00
Tao Liu 66d6e6eca8 Update the License in FM packages
The fm-rest-api and python-fmclient packages have incorrect License
in the PKG-INFO and spec files.

This update changes the license to Apache-2.0 in the PKG-INFO and
spec files.

Change-Id: I012c87818d87d1f55032241cd15ff90ad82ef661
Signed-off-by: Tao Liu <tao.liu@windriver.com>
2018-09-05 14:54:00 -04:00
Tao Liu a384dbbef3 Decouple Fault Management from stx-config
Add bash completion script for FM shell.

Story: 2002828
Task: 22747

Change-Id: I3ac3262573d198ab5b9cfe8bcfd5e52dd9910ebd
Signed-off-by: Tao Liu <tao.liu@windriver.com>
2018-08-20 15:00:38 -05:00
Tao Liu c8159ea6cb Decouple Fault Management from stx-config
Create fault management REST API service
Create fault management client and CLI shell
Add a python extension for fault management application APIs
Update fault management python APIs to use the python extension
Update fault manager to retrieve the SNMP configuration from the config file

Story: 2002828
Task: 22747

Depends-On: https://review.openstack.org/#/c/592176/
Change-Id: I888d8d23edf75d05d51594ccca55570ae366c848
Signed-off-by: Tao Liu <tao.liu@windriver.com>
2018-08-16 13:23:33 -04:00