Age | Commit message (Collapse) | Author | Files | Lines |
|
Since we are now building inside docker containers, it is no longer
necessary to use `python-debian` from pip repo instead of Ubuntu.
Also drop repeating the repo mirror build in case of failure.
NOTE: This cherry-pick DOES NOT remove Ubuntu mirror blacklists,
as it does on armband/master, since Fuel@OPNFV/stable/colorado
still uses the old mirror selection mechanism.
Change-Id: I62890b6ae7977cd8a39c06ce17c8964e6cb1dddb
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
While at it, also upstream:
"build: Use OPNFV_GIT_SHA for ISO preparer ID"
JIRA: ARMBAND-98
JIRA: ARMBAND-146
Conflicts:
patches/opnfv-fuel/0004-Fuel-VM-for-the-Enea-Armband-lab.patch
patches/opnfv-fuel/0046-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch
Change-Id: Ifcd7b3041d172aa492e26477c0872cd96efd90ba
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Merge "deploy: templates: Fuel VM for Enea Armband lab" into stable/colorado
- deploy: templates: Fuel VM for Enea Armband lab
This is the initial VM description fit for spawning Fuel Master
VMs in Enea's Pharos lab (Armband lab) [1, 2].
[1] http://www.enea.com/pharos-lab
[2] https://wiki.opnfv.org/display/pharos/Enea-pharos-lab
Change-Id: Ia89f9728fff0ab1c279f6200fd558d9643cf4ea5
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit f3f4e1608b8d9b5dd7435b43d2512b9d981757f1)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Merge "build: Use OPNFV_GIT_SHA for ISO preparer ID" into stable/colorado
- build: Use OPNFV_GIT_SHA for ISO preparer ID
isoinfo -i lists the following information for Fuel@OPNFV ISO:
"Data preparer id: 86aafaf5454a846c417848bb94f264c4420160f3"
where the SHA hash is Fuel git repo HEAD SHA.
For Armband's build system, using only the Fuel commit ID is not
enough to fully describe the state of the source code, as patches
are also applied to other fuel modules (as git submodules).
Instead, a pointer to a valid Armband commit ID should be used.
However, Armband overrides OPNFV_GIT_SHA to the Armband git repo
commit hash, so the ISO metadata should also reflect this.
While at it, allow product name to be overriden, to signal the
commit ID should be looked up inside the Armband repository.
Change-Id: I33ad490f1afe28c1d439dda40e39cee1955e0ac2
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 94ea115c36d5f5c79823692ac80626cf8959b35d)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- [ODL] Use OpenDaylight Boron
ODL Boron will be used in all scenarios except bgpvpn beacuse vpnservice
was removed in this release, we still will use Beryllium for this
scenario.
This change only replace Beryllium with Boron, it does not use any new
features like odl-netvirt-openstack.
Change-Id: I95264cc97f5b9e922ab3fb7dc024724d9fb83e9c
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit e1314e2e599cfff5625b8e4694832b731a663887)
|
|
JIRA: ARMBAND-143
Conflicts:
armband-fuel-config.mk
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Change-Id: I388e324b39aa2cec015bc65559f4c363bc37abdd
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Merge "[odl] Get latest changes" into stable/colorado
- [odl] Get latest changes
* Fix setting bgpd password with puppet
* Enable G1 garbage collector
* Adding caching possiblity
* Add firewall resource that opens BGP ports
Change-Id: I8f779ba7356acf52967e594a1a213edf192962fc
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 1d4f96facadd5458a87a4d68b0b5298ca47cd1fd)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Merge "Use tacker plugin in SFC scenario" into stable/colorado
- Use tacker plugin in SFC scenario
JIRA: FUEL-205
verify: no-cache
Change-Id: I37746bf3e490f6b707de8fe56af10f1df932908c
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit 40ddf04b3b28a6b5ffa5b74c1e3140c976ca1612)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- deploy: Fix: remove storage files explicitly
Previous change [1] tried to move the responsibility of removing
storage files (raw, iso) from our python scripts to libvirt.
Although this works as expected for non-root invocations, like
Armband deploys, it fails to remove raw files in Fuel@OPNFV deploys.
Work around this by keeping both mechanisms (libvirt managed +
python explicit handling).
Related-bug: ARMBAND-128
[1] https://gerrit.opnfv.org/gerrit/#/c/22447
Change-Id: Ib846cd6071705b71d98824385835d724c729fd78
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit aa912dc6691fba23c0827108f6a20296942e1ac0)
|
|
Change-Id: If6a3472a2f8fe64db2469536fe4d12d88e7a61f0
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 15aac10c6b474790aedfd88d80c5e9d86a7f36b2)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Support different format of fuel task info
As described in this bug: https://bugs.launchpad.net/fuel/+bug/1625518
json output of the task can be in different format: single dict or list
of dicts. During tests of https://gerrit.opnfv.org/gerrit/21807 only the
later one was visible, try to support both types of output.
Change-Id: I7d3e12270c8246b03bdc6c73d3be77a039df469f
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit b2a63bfe5746729b4731a14d98c50fb7f59d875e)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Merge "Change the way how we track deployment" into stable/colorado
- Change the way how we track deployment
Use fuel2 for start deployment. Since it does not return progress
use deployment task to provide this information. Currently used
'deploy-changes' will behave the same:
https://bugs.launchpad.net/fuel/+bug/1565026
Try to handle situation when nodes temporary go offline. With
deploy-changes environment still was in 'new' state in this situtation
which causes timeouts from jenkins.
JIRA: FUEL-196
Change-Id: I6548a5ec807551388e845044c282b7af32eb9100
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit b73526033c5c5b93ca96f411a1d90dc5c49b9228)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- build/docker: CI: no tag reuse on env var change
The previous change adding support for OPNFV build tag reuse
added the get/put-cache functionality to `build/docker` just
for detecting env var changes between tag creation and current build.
Obviously, when building outside CI, it is up to the end user to
force a docker rebuild when env vars change (this was the behavior
before the tag reuse support too).
An alternative approach would be removing get/put-cache completely,
if we consider the env vars (http proxy related) never change for
CI cached builds (seems to be true, worst case we wait 1 day for
the tag to expire when it happens).
This change just fixes the original intended behavior in tag reuse.
JIRA: FUEL-204
Change-Id: I14666994bc334012a5198a64a4a24cd4962e4bd6
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 1c7eb680b34fdcd83b92c43a4c78db3c54bf567b)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- build/docker: Reuse tagged image for OPNFV build
During CI build loops, the workspace is freshly fetched,
so '.docker' make target is built each time.
Reuse existing 'opnfv.org/ubuntu-builder:14.04' tag if present, but
enforce a configurable lifespan for this tag (currently 1 day), so
it does not get stale.
JIRA: FUEL-204
Change-Id: I8d1bd81f3e5e81068e9586c9bea9f43b3327eb38
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 638d832527012531b506ec0ba40b297c41bfda0e)
|
|
Change-Id: I6a6a80bf58ae453485431ecc35eab8cb553c29e0
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 12656ace377504c90431d21cc7e3e9594e7ecf0d)
|
|
Change-Id: Idedf6905cf5cf715b3d428b63c2e1ac2b2469632
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 4d2bd7a7bafd429610dea5cfdb477acdf9d30747)
|
|
Some eth drivers, such as those for APM X-Gene Mustang Board's NICs, do
not advertise operstate properly in sysfs, ie. it is advertised as
"unknown" whereas ethtool shows the NIC as fully functional with link
detected. This further affects "ip link show" output which is parsed
within _check_iface_ready() method.
Replace "ip link show" command with "ethtool" in order to obtain proper
results when operstate is unknown.
Launchpad bug: https://bugs.launchpad.net/fuel/+bug/1618480
Closes-bug: ARMBAND-140
Change-Id: If8e28d3720161d9ffe897b875af235561cf1062d
Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com>
(cherry picked from commit 42050fe09821b29b4879f77411eb558c57c302cc)
|
|
* Update upstream/fuel from branch 'stable/colorado'
- Integration of fuel-plugin-tacker
JIRA: FUEL-205
This change integrates https://github.com/openstack/fuel-plugin-tacker
to the Fuel project.
Change-Id: I51b1bdeeb678e55b85393f6a9f8180fc79322e8f
Signed-off-by: George Paraskevopoulos <geopar@intracom-telecom.com>
(cherry picked from commit d91a7fc7cc9d853a9e5c56f87b6cd22ca11ab9a2)
|
|
Project: fuel 8e501a8589db2c5f29a43b5fb2d253c431397b4f
deploy: fix: remove storage files during cleanup
Remove old disks through virsh instead of calling os.delete()
methods so that the cleanup phase would succeed within a non-root
setup. [1]
Related-bug: ARMBAND-128
[1] https://gerrit.opnfv.org/gerrit/#/c/19491/
Change-Id: I90007edf014c7e15a68b9a334fcaffaa127ee4ab
Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com>
(cherry picked from commit d4f9612475a07773af182f244bcd597d25bf4cd8)
|
|
Closes-bug: ARMBAND-50
Change-Id: I9812066f2954cc02a49bfa19dbe9fc74b055e78d
Signed-off-by: Matei Valeanu <Matei.Valeanu@enea.com>
(cherry picked from commit cc19a840d7bd6826ffaf3a2bf8e84d492dacc4c9)
|
|
Project: fuel d53f15a6dacb5e3d3fd58002692f9c08256ff1e9
Enable ci off-line deployment
Updated dea_base to use locak repo mirrors for off-line deployment
NOT TO BE PART OF COLORADO.1
Change-Id: Ia8e2d716570267ed9a9e06e253b6a7b258ee26eb
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
(cherry picked from commit caee61817eb7f4235ca33a9da12f14a285f9e012)
|
|
Project: fuel 0a76d88bcd02fcfe4678310e7d8a6ffdbabfd48e
Properly handle quotes in argument masking
Use shlex to parse the command line, thus handling quotes and other
special characters.
Change-Id: Icc3a2cd934aac8f67e07d967f76c7679bcb34996
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
(cherry picked from commit bddbf2a740b46d1ad763967b8c8662b1877a4d75)
|
|
Project: fuel d198db7f42da2915f506e7d679d47823eda58b2a
Don't fork a templater process, use the library
Change-Id: I931ba56fe65f2f5d5af483a8bfe654a0ecda1611
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
(cherry picked from commit ff26503f13676b7551afc0633621786edd2811f0)
|
|
Project: fuel c751ac064c2e9ae41caef6e529a3c39d733bfcf5
[OVS-DPDK] Turn off missing options
Get all gcc/compile options to conform to corei7 arch.
JIRA: FUEL-186
Change-Id: I5ce76631aac9174c69362f96f71e26285fc95842
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 861836e6bbd545d3dcee1bd041ff867fb4e3d357)
|
|
Project: fuel 0a4bad20dcca5e0f8b9ab577b0ccdd3e38a3db86
Remove extra empty line
Change-Id: I462a99b42d05b979c4f1904e7309e87ddd94d1bb
Signed-off-by: Peter Barabas <peter.barabas@ericsson.com>
(cherry picked from commit 2c7b9bb6623844eeea95373ec2752b0200cd69e8)
|
|
Project: fuel 60ced1854eaa8c3c8f1211c4b43f2a20b3a58e9d
[performance] Disable keystone token revoke
Change-Id: I6db0bfaab5462a9a8f8de64bc1b088607d407bab
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 5bcac1cf6a0d9367ac31f0ca5c6064d30433377b)
|
|
Project: fuel cb51d993eb0ef2be99fbc06138dfd37e3dfe15ba
Fix: ISO build omits long path files
make iso generates:
libisofs: WARNING : File "/ubuntu/pool/main/libj/\
libjs-twitter-bootstrap-datepicker/libjs-twitter-bootstrap-\
datepicker_1.3.1+dfsg1-1~u14.04+mos1_all.deb" can't be added
to Joliet tree, because its path length is larger than 240
At the end this package is missing in latest ISO.
NOTE: This issue is only triggered on certain kernels during build.
Closes-bug: FUEL-190
Change-Id: I21f7f1cbe3f64317d2feb66e371611a654cf30f8
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 1e380388ee91ae71a7a32122d3942e53f146ccad)
|
|
Project: fuel fcbbd6c796fca5471f29f771e9ea6949c263d795
[KVM] Install plugin in post-deployment
JIRA: FUEL-171
Change-Id: Iead815ba2da76493f108ad71bc32cff265302b55
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit 53e6d97c9157f1e908d99dcca1207de23ea73132)
|
|
Change-Id: I4ec0cf95d714cbc476f73fbc4b90fd039dbd973e
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit f11e43f69af038f99ded659071e9152dbbddaf13)
|
|
Project: fuel cc10e9261f6da77f10ac87e1ff4b86c9e0e44b35
Emergency patch - fixed broken links
Change-Id: I7aea7c06775cac3efeb22d2256c7acf6fbb137d5
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
(cherry picked from commit 61d9f66916fe7cacc1df25438b4060b9f3c9402d)
|
|
Project: fuel d1dd9f9d570e4fa9cc3be53f9072f12efeb474cd
Temporary Hardcoded Ubuntu repo
Meanwhile we're investigating the issues with Ubuntu repo mirror selection,
we will hardcode the Ubuntu repo mirror
Change-Id: I776bd3a8a72dc87e00052e8ff965de1134293c7a
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
(cherry picked from commit 3e506f9248f2a64a8a30c832049df392b01fcb4e)
|
|
|
|
Project: fuel aae10837b3763e9d0a806dda9964abaebb6d8736
Make sure to use only up-to-date mirrors
Whitewash the geographically "close" mirrors against the list of
fully synced mirrors - we've had a few instances of getting bad
mirrors which would break the script.
All credit goes to:
https://askubuntu.com/questions/39922/how-do-you-select-the-fastest-mirror-from-the-command-line
... and we should perhaps use the netselect tool as well somewhere down
the line, but this fixes the most urgent problem.
Change-Id: Ia61a2bd78657b28019f57fc1962d410e754e6d2a
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
(cherry picked from commit e12aec84ef1767d4ba9469dfb12d65d928bf0ed4)
|
|
Project: fuel 4d3783e1afadf7c23a6a96624170906c4cf90f0d
Repo tidy-up + licence scrubing
- Added licences and (c) to files not complying to Licence and (c) policies.
- Removed example templates not having correct licence claims and no longer being rellevant.
- Removed the Vagrant deployment method as it is not used, not rebased/up to date and not holding correct license claims.
Strategies used:
- Machine generated are not assigned an licence text, the licence follow from the source.
- Generated patch files are not assigned an licence text, the licence follow from the source.
Change-Id: I9763f076eae51fbb2d4e5cb8cacfa4bb6cf338cc
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
(cherry picked from commit 65b7cfcd862a75be72fb98777190c49f8b6ea0d3)
|
|
Change-Id: I404791b14603b4ebdd0be1010412ec77cf75a478
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit cfd8c76d1f84874504ca019398787db76cf3c007)
|
|
Upstream change: [1]
Slight rebase of our patches is now needed.
[1] https://gerrit.opnfv.org/gerrit/#/c/20043/
Change-Id: I955ae3c5c304d8c8da6e42680c81e9255487fb68
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 957a16139281785c2a6685428f7b037d6578f08d)
|
|
Project: fuel f9326c161e2e8ed039499d30cced7c2553874e26
build: Move patches to <patch-repos> dir
Decouple main Makefile and repository patches by moving all Fuel
component patches to a subdir, <patch-repo>.
Proposed structure of <patch-repos> dir:
- patch-repos/*.patch are intended for <fuel-main> git repo;
- patch-repos/build/repo/<fuel-module>/*.patch are intended for
<fuel-module>, e.g. "fuel-nailgun";
Full list of Fuel submodules supported by this mechanism at [1].
While at it, replace all occurences of </tmp/fuel-main> with
<FUEL_MAIN_DIR> in main Makefile and rewrite a few git/make calls
to use the "-C" arg.
NOTE: `git -C` is available starting with git 1.8.5.
[1] https://github.com/openstack/fuel-main/blob/stable/mitaka/repos.mk
#L32-L44
Change-Id: I5e4adc7285054777c3898592ed48482ccd2b706f
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 52701ce099ac455aa393aac34d684f5d59b3d2fe)
|
|
Project: fuel 269773ffd3bbd267aeee21b49f83783c064c04c6
Increase number of hugepages allocated for nova
Yardstick is using m1.small flavor for some tests, in case of ovs
scenario it should be possible to allocate 2GB from hugepages.
Change-Id: Ie908d94e63a5055907bb33c69a5e028739f44f2e
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit c64a4063f591c0140509e3edb88d9f0c3cd20928)
|
|
|
|
Project: fuel 983af0184b9c0fbf6deecb2a851f4f89cc362c25
Stop using network transformation
Due the bug in code we did not apply network transformation to created
environments, but still Fuel base on chosen segmentation type and
networks to NICs assigment has been generated network schema itself.
Since we don't use custom network schema we can remove transformation
defintions from dea pod overrides files. However there is a need to
configure NIC properties in case of dpdk deployment.
JIRA: FUEL-192
Change-Id: Ib7dab4d61910ac8c44b6d91e0c486c9693034823
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
This patch adds AArch64 to the hardcoded lists of valid
architectures for hugepage support.
Closes-bug: ARMBAND-90
Change-Id: I3765e6bc314393a58db70590f3890fde206e3feb
Signed-off-by: Veena Lingadahalli <vlingadahalli@mvista.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 2f4a34b88d18f7653934eaec25e99dba3bac5de6)
|
|
Project: fuel 1cead5571d504f5e0525eac22e9b4831867d7c18
Final updates of release notes
-Added filters for fixes, issues and work-arounds
Change-Id: Id76545fd7837c83145bd8d87b309c23849da6f7e
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
(cherry picked from commit 7dc64e4f8813a1cef9697074326698bc27a85937)
|
|
Change-Id: I0059e397d2f6e213e549092601b61a200f5b96a4
Signed-off-by: cristinapauna <cristina.pauna@enea.com>
(cherry picked from commit b886347f4a773f4d9b742920cc3a76751254f8fe)
|
|
The documentationfrom Fuel was introduced to armband project by
https://gerrit.opnfv.org/gerrit/#/c/20679/
This patch updates it with aarch64 specifics
Change-Id: I05eccef015fd399e7d05a0505e85e733a8e95f1d
Signed-off-by: cristinapauna <cristina.pauna@enea.com>
(cherry picked from commit 5bd99052ed055c76efbc479f00edb09b5780cb56)
|
|
There has been some restructuring of the documentation in fuel project.
This commit copies those files, while a subsequent commit will adapt
the documentation with aarch64 specifics.
Change-Id: I56b52d5d16975b88fd5b26099b43046c6a5d5747
Signed-off-by: cristinapauna <cristina.pauna@enea.com>
(cherry picked from commit b832a3e82070e12dff555e2a83d604de7e398acb)
|
|
Remove all suffixes from OVS debian packages, and simplify the
plugin code handling the fetching of said packages.
While at it, enable:
- local mirror caches, by mounting /etc/hosts in the docker
builder
- HACK: mismatch between debian source versions and debian binaries
Related-bug: ARMBAND-89
Change-Id: Ifbf0e11c90cf7b2f76ce72af8ca3469a33bee071
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 6be5639d8ce2f6e282db6f3d19699a341b9b491c)
|
|
Project: fuel b90311bf3240c0f57ee747e6cf3e57e07a6cf5fa
Uplift fuel-plugin-ovs
Pull in "Update flavors mem_page_size"
Change-Id: I3e285cefee561dbbc02eb9ab7d2e9c01eef2742a
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
Project: fuel f8337987d6feab6674ce05508c321ac30ef996a3
Use Boron RC3.5 for sfc scenarion
It should fix problems with vm communication through floating IPs.
Change-Id: Icadc71f2b99c28715c15389e59111272a21440fb
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
(cherry picked from commit ff9c24257a2c62dd981297a92eecf712f6643617)
|
|
OVS-DPDK-NSH is not supported on arm64 for now, see [1]
Closes: ARMBAND-46
[1] https://jira.opnfv.org/browse/ARMBAND-86
Change-Id: I79b33bab7348e297c06ff4bb2bf7cc23f21eb7e3
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 5b49b2f7ea1485b56ebc7815b5a3803363ec29af)
|