.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

..      ===================================
..      * * *    GUILIN  MAINTENANCE  * * *
..      ===================================


Version: 7.0.1
==============

Abstract
--------

This document provides the release notes for the Guilin Maintenance release


Summary
-------

This maintenance release is primarily to resolve bugs identified during Guilin release testing.


Release Data
------------

+--------------------------------------+--------------------------------------+
| **Project**                          | DCAE                                 |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | onap/org.onap.dcaegen2.collectors    |
|                                      |   .hv-ves.hv-collector-main:1.5.1    |
+--------------------------------------+--------------------------------------+
| **Release designation**              | Guilin Maintenance Release           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2021/04/19                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+

New features
------------

None

**Bug fixes**

- `DCAEGEN2-2516 <https://jira.onap.org/browse/DCAEGEN2-2516>`_ HV-VES Pod recovery when config-fetch fails
- `OOM-2641 <https://jira.onap.org/browse/OOM-2641>`_ Fix DCAEMOD paths based on Guilin ingress template

**Known Issues**

Same as Guilin Release
